diff --git a/38_NFTSwap/NFTSwap.sol b/38_NFTSwap/NFTSwap.sol index 3e6af83e..67dbc683 100644 --- a/38_NFTSwap/NFTSwap.sol +++ b/38_NFTSwap/NFTSwap.sol @@ -65,19 +65,24 @@ contract NFTSwap is IERC721Receiver { IERC721 _nft = IERC721(_nftAddr); require(_nft.ownerOf(_tokenId) == address(this), "Invalid Order"); // NFT在合约中 + // 将order信息缓存到内存变量,遵循 Checks-Effects-Interactions 模式 + address owner = _order.owner; + uint256 price = _order.price; + + // 先删除order,防止重入攻击 + delete nftList[_nftAddr][_tokenId]; + // 将NFT转给买家 _nft.safeTransferFrom(address(this), msg.sender, _tokenId); // 将ETH转给卖家 - payable(_order.owner).transfer(_order.price); + payable(owner).transfer(price); // 多余ETH给买家退款 - if (msg.value > _order.price) { - payable(msg.sender).transfer(msg.value - _order.price); + if (msg.value > price) { + payable(msg.sender).transfer(msg.value - price); } // 释放Purchase事件 - emit Purchase(msg.sender, _nftAddr, _tokenId, _order.price); - - delete nftList[_nftAddr][_tokenId]; // 删除order + emit Purchase(msg.sender, _nftAddr, _tokenId, price); } // 撤单: 卖家取消挂单 @@ -88,9 +93,11 @@ contract NFTSwap is IERC721Receiver { IERC721 _nft = IERC721(_nftAddr); require(_nft.ownerOf(_tokenId) == address(this), "Invalid Order"); // NFT在合约中 + // 先删除order,遵循 Checks-Effects-Interactions 模式 + delete nftList[_nftAddr][_tokenId]; + // 将NFT转给卖家 _nft.safeTransferFrom(address(this), msg.sender, _tokenId); - delete nftList[_nftAddr][_tokenId]; // 删除order // 释放Revoke事件 emit Revoke(msg.sender, _nftAddr, _tokenId); diff --git a/Languages/en/38_NFTSwap_en/NFTSwap.sol b/Languages/en/38_NFTSwap_en/NFTSwap.sol index 532f0b92..719c94de 100644 --- a/Languages/en/38_NFTSwap_en/NFTSwap.sol +++ b/Languages/en/38_NFTSwap_en/NFTSwap.sol @@ -65,18 +65,23 @@ contract NFTSwap is IERC721Receiver { IERC721 _nft = IERC721(_nftAddr); require(_nft.ownerOf(_tokenId) == address(this), "Invalid Order"); // NFT is in the contract + // Cache order info in memory, following Checks-Effects-Interactions pattern + address owner = _order.owner; + uint256 price = _order.price; + + // Delete order first to prevent reentrancy + delete nftList[_nftAddr][_tokenId]; + // Transfer NFT to buyer _nft.safeTransferFrom(address(this), msg.sender, _tokenId); // Transfer ETH to the seller, and refund the excess ETH to the buyer - payable(_order.owner).transfer(_order.price); - if (msg.value > _order.price) { - payable(msg.sender).transfer(msg.value - _order.price); + payable(owner).transfer(price); + if (msg.value > price) { + payable(msg.sender).transfer(msg.value - price); } - - // Release the Purchase event - emit Purchase(msg.sender, _nftAddr, _tokenId, _order.price); - delete nftList[_nftAddr][_tokenId]; // delete order + // Release the Purchase event + emit Purchase(msg.sender, _nftAddr, _tokenId, price); } // Cancellation: The seller cancels the pending order @@ -87,9 +92,11 @@ contract NFTSwap is IERC721Receiver { IERC721 _nft = IERC721(_nftAddr); require(_nft.ownerOf(_tokenId) == address(this), "Invalid Order"); // NFT is in the contract + // Delete order first, following Checks-Effects-Interactions pattern + delete nftList[_nftAddr][_tokenId]; + // Transfer NFT to seller _nft.safeTransferFrom(address(this), msg.sender, _tokenId); - delete nftList[_nftAddr][_tokenId]; // delete order // Release the Revoke event emit Revoke(msg.sender, _nftAddr, _tokenId); diff --git a/out/32_Faucet/IERC20.sol/IERC20.json b/out/32_Faucet/IERC20.sol/IERC20.json index 64f61dfe..ea503e6d 100644 --- a/out/32_Faucet/IERC20.sol/IERC20.json +++ b/out/32_Faucet/IERC20.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file +{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":75} \ No newline at end of file diff --git a/out/33_Airdrop/IERC20.sol/IERC20.json b/out/33_Airdrop/IERC20.sol/IERC20.json index 975fe2ce..8d232db8 100644 --- a/out/33_Airdrop/IERC20.sol/IERC20.json +++ b/out/33_Airdrop/IERC20.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file +{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file diff --git a/out/51_ERC4626/ERC20.sol/ERC20.json b/out/51_ERC4626/ERC20.sol/ERC20.json index 58ba48b1..0f5ff7c0 100644 --- a/out/51_ERC4626/ERC20.sol/ERC20.json +++ b/out/51_ERC4626/ERC20.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bac6399a5a8768b20051fce30c2eaf9bfcd9af5189bbd4bd89a8521b721a97aa64736f6c63430008220033","sourceMap":"141:2015:110:-:0;;;478:2;454:26;;;;;;;;;;;;;;;;;;;;567:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;639:5;632:4;:12;;;;;;:::i;:::-;;663:7;654:6;:16;;;;;;:::i;:::-;;567:110;;141:2015;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;141:2015:110:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bac6399a5a8768b20051fce30c2eaf9bfcd9af5189bbd4bd89a8521b721a97aa64736f6c63430008220033","sourceMap":"141:2015:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;376:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1047:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1328:337;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;454:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1983:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;173:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1738:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;739:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;233:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;376:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1047:209::-;1121:4;1170:6;1137:9;:21;1147:10;1137:21;;;;;;;;;;;;;;;:30;1159:7;1137:30;;;;;;;;;;;;;;;:39;;;;1212:7;1191:37;;1200:10;1191:37;;;1221:6;1191:37;;;;;;:::i;:::-;;;;;;;;1245:4;1238:11;;1047:209;;;;:::o;313:35::-;;;;:::o;1328:337::-;1455:4;1504:6;1471:9;:17;1481:6;1471:17;;;;;;;;;;;;;;;:29;1489:10;1471:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1541:6;1520:9;:17;1530:6;1520:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1581:6;1557:9;:20;1567:9;1557:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1619:9;1602:35;;1611:6;1602:35;;;1630:6;1602:35;;;;;;:::i;:::-;;;;;;;;1654:4;1647:11;;1328:337;;;;;:::o;454:26::-;;;;;;;;;;;;;:::o;1983:170::-;2054:6;2029:9;:21;2039:10;2029:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;2085:6;2070:11;;:21;;;;;;;:::i;:::-;;;;;;;;2135:1;2106:40;;2115:10;2106:40;;;2139:6;2106:40;;;;;;:::i;:::-;;;;;;;;1983:170;:::o;173:53::-;;;;;;;;;;;;;;;;;:::o;412:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1738:170::-;1809:6;1784:9;:21;1794:10;1784:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1840:6;1825:11;;:21;;;;;;;:::i;:::-;;;;;;;;1882:10;1861:40;;1878:1;1861:40;;;1894:6;1861:40;;;;;;:::i;:::-;;;;;;;;1738:170;:::o;739:246::-;816:4;857:6;832:9;:21;842:10;832:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;897:6;873:9;:20;883:9;873:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;939:9;918:39;;927:10;918:39;;;950:6;918:39;;;;;;:::i;:::-;;;;;;;;974:4;967:11;;739:246;;;;:::o;233:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{},\"stateVariables\":{\"allowance\":{\"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.\"},\"balanceOf\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply\":{\"details\":\"Returns the value of tokens in existence.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"src/51_ERC4626/ERC20.sol\":{\"keccak256\":\"0x9fbc4f0c4b8606e1cca6b665e9afaa2f1e9722bf91755ff65de17ac97781e809\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d14569d3e1c2724af86c1002deb42eb226c1b54252aadd61f2ba5681c2bc64\",\"dweb:/ipfs/QmQbSt2US9fSU67K6dYmVy9McA6PfFwYfVHPvxPb9nMZuF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/ERC20.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"src/51_ERC4626/ERC20.sol":{"keccak256":"0x9fbc4f0c4b8606e1cca6b665e9afaa2f1e9722bf91755ff65de17ac97781e809","urls":["bzz-raw://02d14569d3e1c2724af86c1002deb42eb226c1b54252aadd61f2ba5681c2bc64","dweb:/ipfs/QmQbSt2US9fSU67K6dYmVy9McA6PfFwYfVHPvxPb9nMZuF"],"license":"MIT"}},"version":1},"id":110} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bac6399a5a8768b20051fce30c2eaf9bfcd9af5189bbd4bd89a8521b721a97aa64736f6c63430008220033","sourceMap":"141:2015:104:-:0;;;478:2;454:26;;;;;;;;;;;;;;;;;;;;567:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;639:5;632:4;:12;;;;;;:::i;:::-;;663:7;654:6;:16;;;;;;:::i;:::-;;567:110;;141:2015;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;141:2015:104:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bac6399a5a8768b20051fce30c2eaf9bfcd9af5189bbd4bd89a8521b721a97aa64736f6c63430008220033","sourceMap":"141:2015:104:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;376:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1047:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1328:337;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;454:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1983:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;173:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;412:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1738:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;739:246;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;233:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;376:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1047:209::-;1121:4;1170:6;1137:9;:21;1147:10;1137:21;;;;;;;;;;;;;;;:30;1159:7;1137:30;;;;;;;;;;;;;;;:39;;;;1212:7;1191:37;;1200:10;1191:37;;;1221:6;1191:37;;;;;;:::i;:::-;;;;;;;;1245:4;1238:11;;1047:209;;;;:::o;313:35::-;;;;:::o;1328:337::-;1455:4;1504:6;1471:9;:17;1481:6;1471:17;;;;;;;;;;;;;;;:29;1489:10;1471:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1541:6;1520:9;:17;1530:6;1520:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1581:6;1557:9;:20;1567:9;1557:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1619:9;1602:35;;1611:6;1602:35;;;1630:6;1602:35;;;;;;:::i;:::-;;;;;;;;1654:4;1647:11;;1328:337;;;;;:::o;454:26::-;;;;;;;;;;;;;:::o;1983:170::-;2054:6;2029:9;:21;2039:10;2029:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;2085:6;2070:11;;:21;;;;;;;:::i;:::-;;;;;;;;2135:1;2106:40;;2115:10;2106:40;;;2139:6;2106:40;;;;;;:::i;:::-;;;;;;;;1983:170;:::o;173:53::-;;;;;;;;;;;;;;;;;:::o;412:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1738:170::-;1809:6;1784:9;:21;1794:10;1784:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1840:6;1825:11;;:21;;;;;;;:::i;:::-;;;;;;;;1882:10;1861:40;;1878:1;1861:40;;;1894:6;1861:40;;;;;;:::i;:::-;;;;;;;;1738:170;:::o;739:246::-;816:4;857:6;832:9;:21;842:10;832:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;897:6;873:9;:20;883:9;873:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;939:9;918:39;;927:10;918:39;;;950:6;918:39;;;;;;:::i;:::-;;;;;;;;974:4;967:11;;739:246;;;;:::o;233:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{},\"stateVariables\":{\"allowance\":{\"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.\"},\"balanceOf\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply\":{\"details\":\"Returns the value of tokens in existence.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"src/51_ERC4626/ERC20.sol\":{\"keccak256\":\"0x9fbc4f0c4b8606e1cca6b665e9afaa2f1e9722bf91755ff65de17ac97781e809\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d14569d3e1c2724af86c1002deb42eb226c1b54252aadd61f2ba5681c2bc64\",\"dweb:/ipfs/QmQbSt2US9fSU67K6dYmVy9McA6PfFwYfVHPvxPb9nMZuF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/ERC20.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"src/51_ERC4626/ERC20.sol":{"keccak256":"0x9fbc4f0c4b8606e1cca6b665e9afaa2f1e9722bf91755ff65de17ac97781e809","urls":["bzz-raw://02d14569d3e1c2724af86c1002deb42eb226c1b54252aadd61f2ba5681c2bc64","dweb:/ipfs/QmQbSt2US9fSU67K6dYmVy9McA6PfFwYfVHPvxPb9nMZuF"],"license":"MIT"}},"version":1},"id":104} \ No newline at end of file diff --git a/out/ABIEncode.sol/ABIEncode.json b/out/ABIEncode.sol/ABIEncode.json index 93025449..d51d244e 100644 --- a/out/ABIEncode.sol/ABIEncode.json +++ b/out/ABIEncode.sol/ABIEncode.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"decode","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"daddr","type":"address","internalType":"address"},{"name":"dname","type":"string","internalType":"string"},{"name":"darray","type":"uint256[2]","internalType":"uint256[2]"}],"stateMutability":"pure"},{"type":"function","name":"encode","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodePacked","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeWithSelector","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeWithSignature","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600a5f55737a58c0be72be218b41c608b7fe7c5bb630736c7160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816100a0919061032c565b506040518060400160405280600560ff168152602001600660ff16815250600390816100cc91906104ea565b503480156100d8575f5ffd5b5061056e565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061015957607f821691505b60208210810361016c5761016b610115565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610193565b6101d88683610193565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61021c610217610212846101f0565b6101f9565b6101f0565b9050919050565b5f819050919050565b61023583610202565b61024961024182610223565b84845461019f565b825550505050565b5f5f905090565b610260610251565b61026b81848461022c565b505050565b5f5b82811015610291576102865f828401610258565b600181019050610272565b505050565b601f8211156102e457828211156102e3576102b081610172565b6102b983610184565b6102c285610184565b60208610156102cf575f90505b8083016102de82840382610270565b505050505b5b505050565b5f82821c905092915050565b5f6103045f19846008026102e9565b1980831691505092915050565b5f61031c83836102f5565b9150826002028217905092915050565b610335826100de565b67ffffffffffffffff81111561034e5761034d6100e8565b5b6103588254610142565b610363828285610296565b5f60209050601f831160018114610394575f8415610382578287015190505b61038c8582610311565b8655506103f3565b601f1984166103a286610172565b5f5b828110156103c9578489015182556001820191506020850194506020810190506103a4565b868310156103e657848901516103e2601f8916826102f5565b8355505b6001600288020188555050505b505050505050565b5f60029050919050565b5f8190506001806001038301049050919050565b5f819050919050565b5f5b82811015610443576104385f828401610258565b600181019050610424565b505050565b8183101561047f5761045982610405565b61046284610405565b61046b83610419565b81810161047a83850382610422565b505050505b505050565b6801000000000000000082111561049e5761049d6100e8565b5b6104a7816103fb565b6104b2838284610448565b505050565b5f60029050919050565b5f60ff82169050919050565b5f6104d882516104c1565b80915050919050565b5f819050919050565b6104f3826104b7565b67ffffffffffffffff81111561050c5761050b6100e8565b5b6105168183610484565b61051f836104e1565b61052883610419565b600183045f5b81811015610565575f610540856104cd565b61054981610223565b809250602087019650505080828501555060018101905061052e565b50505050505050565b610d4f8061057b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806353d9c50614610059578063bd14598f14610077578063d1bd363d14610095578063e4f2a84a146100b3578063e5c5e9a3146100d1575b5f5ffd5b610061610104565b60405161006e91906103ee565b60405180910390f35b61007f610155565b60405161008c91906103ee565b60405180910390f35b61009d6101a6565b6040516100aa91906103ee565b60405180910390f35b6100bb610266565b6040516100c891906103ee565b60405180910390f35b6100eb60048036038101906100e6919061054b565b610325565b6040516100fb94939291906106e0565b60405180910390f35b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101419493929190610973565b604051602081830303815290604052905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101929493929190610a9a565b604051602081830303815290604052905090565b60607fe87082f1450a46f8f3150d7bda55bda41a2b08d68abde6797ccc68be305673355f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102049493929190610a9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102a39493929190610a9a565b6040516020818303038152906040527fe87082f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b5f5f606061033161035c565b848060200190518101906103459190610c99565b809450819550829650839750505050509193509193565b6040518060400160405280600290602082028036833780820191505090505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103c08261037e565b6103ca8185610388565b93506103da818560208601610398565b6103e3816103a6565b840191505092915050565b5f6020820190508181035f83015261040681846103b6565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61045d826103a6565b810181811067ffffffffffffffff8211171561047c5761047b610427565b5b80604052505050565b5f61048e61040e565b905061049a8282610454565b919050565b5f67ffffffffffffffff8211156104b9576104b8610427565b5b6104c2826103a6565b9050602081019050919050565b828183375f83830152505050565b5f6104ef6104ea8461049f565b610485565b90508281526020810184848401111561050b5761050a610423565b5b6105168482856104cf565b509392505050565b5f82601f8301126105325761053161041f565b5b81356105428482602086016104dd565b91505092915050565b5f602082840312156105605761055f610417565b5b5f82013567ffffffffffffffff81111561057d5761057c61041b565b5b6105898482850161051e565b91505092915050565b5f819050919050565b6105a481610592565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105d3826105aa565b9050919050565b6105e3816105c9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f61060d826105e9565b61061781856105f3565b9350610627818560208601610398565b610630816103a6565b840191505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b61066181610592565b82525050565b5f6106728383610658565b60208301905092915050565b5f602082019050919050565b6106938161063b565b61069d8184610645565b92506106a88261064f565b805f5b838110156106d85781516106bf8782610667565b96506106ca8361067e565b9250506001810190506106ab565b505050505050565b5f60a0820190506106f35f83018761059b565b61070060208301866105da565b81810360408301526107128185610603565b9050610721606083018461068a565b95945050505050565b5f819050919050565b61074461073f82610592565b61072a565b82525050565b5f8160601b9050919050565b5f6107608261074a565b9050919050565b5f61077182610756565b9050919050565b610789610784826105c9565b610767565b82525050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107d357607f821691505b6020821081036107e6576107e561078f565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154610814816107bc565b61081e81866107ec565b9450600182165f8114610838576001811461084d5761087f565b60ff198316865281151582028601935061087f565b610856856107f6565b5f5b8381101561087757815481890152600182019150602081019050610858565b838801955050505b50505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6108ae81610592565b82525050565b5f6108bf83836108a5565b60208301905092915050565b5f815f1c9050919050565b5f819050919050565b5f6108f16108ec836108cb565b6108d6565b9050919050565b5f61090382546108df565b9050919050565b5f600182019050919050565b61091f81610888565b6109298184610892565b92506109348261089c565b805f5b8381101561096b57610948826108f8565b61095287826108b4565b965061095d8361090a565b925050600181019050610937565b505050505050565b5f61097e8287610733565b60208201915061098e8286610778565b60148201915061099e8285610808565b91506109aa8284610916565b60408201915081905095945050505050565b5f81546109c8816107bc565b6109d281866105f3565b9450600182165f81146109ec5760018114610a0257610a34565b60ff198316865281151560200286019350610a34565b610a0b856107f6565b5f5b83811015610a2c57815481890152600182019150602081019050610a0d565b808801955050505b50505092915050565b610a4681610888565b610a508184610645565b9250610a5b8261089c565b805f5b83811015610a9257610a6f826108f8565b610a798782610667565b9650610a848361090a565b925050600181019050610a5e565b505050505050565b5f60a082019050610aad5f83018761059b565b610aba60208301866105da565b8181036040830152610acc81856109bc565b9050610adb6060830184610a3d565b95945050505050565b610aed81610592565b8114610af7575f5ffd5b50565b5f81519050610b0881610ae4565b92915050565b5f610b18826105aa565b9050919050565b610b2881610b0e565b8114610b32575f5ffd5b50565b5f81519050610b4381610b1f565b92915050565b5f67ffffffffffffffff821115610b6357610b62610427565b5b610b6c826103a6565b9050602081019050919050565b5f610b8b610b8684610b49565b610485565b905082815260208101848484011115610ba757610ba6610423565b5b610bb2848285610398565b509392505050565b5f82601f830112610bce57610bcd61041f565b5b8151610bde848260208601610b79565b91505092915050565b5f67ffffffffffffffff821115610c0157610c00610427565b5b602082029050919050565b5f5ffd5b5f610c22610c1d84610be7565b610485565b90508060208402830185811115610c3c57610c3b610c0c565b5b835b81811015610c655780610c518882610afa565b845260208401935050602081019050610c3e565b5050509392505050565b5f82601f830112610c8357610c8261041f565b5b6002610c90848285610c10565b91505092915050565b5f5f5f5f60a08587031215610cb157610cb0610417565b5b5f610cbe87828801610afa565b9450506020610ccf87828801610b35565b935050604085015167ffffffffffffffff811115610cf057610cef61041b565b5b610cfc87828801610bba565b9250506060610d0d87828801610c6f565b9150509295919450925056fea26469706673582212205fbf5a61e8b9f35acc45b10b90f096500ea8ec75a57955691656247c8f9a948864736f6c63430008220033","sourceMap":"58:1037:74:-:0;;;91:2;82:11;;114:42;99:57;;;;;;;;;;;;;;;;;;;;162:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;188:22;;;;;;;;205:1;188:22;;;;;;208:1;188:22;;;;;;;;;;;;:::i;:::-;;58:1037;;;;;;;;;;;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:101::-;5527:6;5555:4;5545:14;;5465:101;;;:::o;6174:201::-;6253:4;6276:6;6268:14;;6366:1;6361;6358;6354:9;6346:6;6342:22;6338:30;6330:38;;6174:201;;;:::o;6380:95::-;6442:4;6465:3;6457:11;;6380:95;;;:::o;6481:215::-;6567:1;6552:138;6577:9;6574:1;6571:16;6552:138;;;6629:51;6678:1;6674;6663:9;6659:17;6629:51;:::i;:::-;6602:1;6599;6595:9;6590:14;;6552:138;;;6556:14;6481:215;;:::o;6952:632::-;7070:3;7058:10;7055:19;7052:525;;;7161:63;7220:3;7161:63;:::i;:::-;7257:70;7316:10;7257:70;:::i;:::-;7362:51;7407:5;7362:51;:::i;:::-;7465:12;7449:14;7445:33;7492:75;7553:12;7539;7535:31;7522:11;7492:75;:::i;:::-;7075:502;;;;7052:525;6952:632;;;:::o;7590:323::-;7681:20;7673:6;7670:32;7667:78;;;7717:18;;:::i;:::-;7667:78;7769:49;7812:5;7769:49;:::i;:::-;7828:78;7899:6;7891;7884:5;7828:78;:::i;:::-;7657:256;7590:323;;:::o;7918:102::-;7981:6;8009:4;7999:14;;7918:102;;;:::o;8026:86::-;8061:7;8101:4;8094:5;8090:16;8079:27;;8026:86;;;:::o;8118:150::-;8159:11;8195:27;8217:3;8211:10;8195:27;:::i;:::-;8256:5;8232:29;;8171:97;8118:150;;;:::o;8274:96::-;8337:4;8360:3;8352:11;;8274:96;;;:::o;8822:981::-;8957:48;9001:3;8957:48;:::i;:::-;9070:18;9062:6;9059:30;9056:56;;;9092:18;;:::i;:::-;9056:56;9121:55;9169:6;9164:3;9121:55;:::i;:::-;9200:50;9246:3;9200:50;:::i;:::-;9274:49;9319:3;9274:49;:::i;:::-;9362:1;9354:6;9350:14;9389:1;9374:422;9399:9;9396:1;9393:16;9374:422;;;9463:1;9516:31;9540:6;9516:31;:::i;:::-;9582:36;9606:11;9582:36;:::i;:::-;9668:9;9635:42;;9717:2;9709:6;9705:15;9695:25;;9478:257;;9773:12;9769:1;9760:7;9756:15;9749:37;9429:367;9424:1;9421;9417:9;9412:14;;9374:422;;;9378:14;8932:871;;;;8822:981;;:::o;58:1037:74:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806353d9c50614610059578063bd14598f14610077578063d1bd363d14610095578063e4f2a84a146100b3578063e5c5e9a3146100d1575b5f5ffd5b610061610104565b60405161006e91906103ee565b60405180910390f35b61007f610155565b60405161008c91906103ee565b60405180910390f35b61009d6101a6565b6040516100aa91906103ee565b60405180910390f35b6100bb610266565b6040516100c891906103ee565b60405180910390f35b6100eb60048036038101906100e6919061054b565b610325565b6040516100fb94939291906106e0565b60405180910390f35b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101419493929190610973565b604051602081830303815290604052905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101929493929190610a9a565b604051602081830303815290604052905090565b60607fe87082f1450a46f8f3150d7bda55bda41a2b08d68abde6797ccc68be305673355f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102049493929190610a9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102a39493929190610a9a565b6040516020818303038152906040527fe87082f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b5f5f606061033161035c565b848060200190518101906103459190610c99565b809450819550829650839750505050509193509193565b6040518060400160405280600290602082028036833780820191505090505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103c08261037e565b6103ca8185610388565b93506103da818560208601610398565b6103e3816103a6565b840191505092915050565b5f6020820190508181035f83015261040681846103b6565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61045d826103a6565b810181811067ffffffffffffffff8211171561047c5761047b610427565b5b80604052505050565b5f61048e61040e565b905061049a8282610454565b919050565b5f67ffffffffffffffff8211156104b9576104b8610427565b5b6104c2826103a6565b9050602081019050919050565b828183375f83830152505050565b5f6104ef6104ea8461049f565b610485565b90508281526020810184848401111561050b5761050a610423565b5b6105168482856104cf565b509392505050565b5f82601f8301126105325761053161041f565b5b81356105428482602086016104dd565b91505092915050565b5f602082840312156105605761055f610417565b5b5f82013567ffffffffffffffff81111561057d5761057c61041b565b5b6105898482850161051e565b91505092915050565b5f819050919050565b6105a481610592565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105d3826105aa565b9050919050565b6105e3816105c9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f61060d826105e9565b61061781856105f3565b9350610627818560208601610398565b610630816103a6565b840191505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b61066181610592565b82525050565b5f6106728383610658565b60208301905092915050565b5f602082019050919050565b6106938161063b565b61069d8184610645565b92506106a88261064f565b805f5b838110156106d85781516106bf8782610667565b96506106ca8361067e565b9250506001810190506106ab565b505050505050565b5f60a0820190506106f35f83018761059b565b61070060208301866105da565b81810360408301526107128185610603565b9050610721606083018461068a565b95945050505050565b5f819050919050565b61074461073f82610592565b61072a565b82525050565b5f8160601b9050919050565b5f6107608261074a565b9050919050565b5f61077182610756565b9050919050565b610789610784826105c9565b610767565b82525050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107d357607f821691505b6020821081036107e6576107e561078f565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154610814816107bc565b61081e81866107ec565b9450600182165f8114610838576001811461084d5761087f565b60ff198316865281151582028601935061087f565b610856856107f6565b5f5b8381101561087757815481890152600182019150602081019050610858565b838801955050505b50505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6108ae81610592565b82525050565b5f6108bf83836108a5565b60208301905092915050565b5f815f1c9050919050565b5f819050919050565b5f6108f16108ec836108cb565b6108d6565b9050919050565b5f61090382546108df565b9050919050565b5f600182019050919050565b61091f81610888565b6109298184610892565b92506109348261089c565b805f5b8381101561096b57610948826108f8565b61095287826108b4565b965061095d8361090a565b925050600181019050610937565b505050505050565b5f61097e8287610733565b60208201915061098e8286610778565b60148201915061099e8285610808565b91506109aa8284610916565b60408201915081905095945050505050565b5f81546109c8816107bc565b6109d281866105f3565b9450600182165f81146109ec5760018114610a0257610a34565b60ff198316865281151560200286019350610a34565b610a0b856107f6565b5f5b83811015610a2c57815481890152600182019150602081019050610a0d565b808801955050505b50505092915050565b610a4681610888565b610a508184610645565b9250610a5b8261089c565b805f5b83811015610a9257610a6f826108f8565b610a798782610667565b9650610a848361090a565b925050600181019050610a5e565b505050505050565b5f60a082019050610aad5f83018761059b565b610aba60208301866105da565b8181036040830152610acc81856109bc565b9050610adb6060830184610a3d565b95945050505050565b610aed81610592565b8114610af7575f5ffd5b50565b5f81519050610b0881610ae4565b92915050565b5f610b18826105aa565b9050919050565b610b2881610b0e565b8114610b32575f5ffd5b50565b5f81519050610b4381610b1f565b92915050565b5f67ffffffffffffffff821115610b6357610b62610427565b5b610b6c826103a6565b9050602081019050919050565b5f610b8b610b8684610b49565b610485565b905082815260208101848484011115610ba757610ba6610423565b5b610bb2848285610398565b509392505050565b5f82601f830112610bce57610bcd61041f565b5b8151610bde848260208601610b79565b91505092915050565b5f67ffffffffffffffff821115610c0157610c00610427565b5b602082029050919050565b5f5ffd5b5f610c22610c1d84610be7565b610485565b90508060208402830185811115610c3c57610c3b610c0c565b5b835b81811015610c655780610c518882610afa565b845260208401935050602081019050610c3e565b5050509392505050565b5f82601f830112610c8357610c8261041f565b5b6002610c90848285610c10565b91505092915050565b5f5f5f5f60a08587031215610cb157610cb0610417565b5b5f610cbe87828801610afa565b9450506020610ccf87828801610b35565b935050604085015167ffffffffffffffff811115610cf057610cef61041b565b5b610cfc87828801610bba565b9250506060610d0d87828801610c6f565b9150509295919450925056fea26469706673582212205fbf5a61e8b9f35acc45b10b90f096500ea8ec75a57955691656247c8f9a948864736f6c63430008220033","sourceMap":"58:1037:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:129;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;218:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;667:202;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:185;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;341:129;385:19;442:1;;445:4;;;;;;;;;;;451;457:5;425:38;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;416:47;;341:129;:::o;218:117::-;256:19;307:1;;310:4;;;;;;;;;;;316;322:5;296:32;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;287:41;;218:117;:::o;667:202::-;717:19;787:51;841:1;;844:4;;;;;;;;;;;850;856:5;757:105;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;748:114;;667:202;:::o;476:185::-;527:19;633:1;;636:4;;;;;;;;;;;642;648:5;567:87;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;558:96;;476:185;:::o;874:219::-;929:7;938:13;953:19;974:21;;:::i;:::-;1047:4;1036:50;;;;;;;;;;;;:::i;:::-;1007:79;;;;;;;;;;;;;;;;874:219;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:98:145:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:168::-;194:11;228:6;223:3;216:19;268:4;263:3;259:14;244:29;;111:168;;;;:::o;285:139::-;374:6;369:3;364;358:23;415:1;406:6;401:3;397:16;390:27;285:139;;;:::o;430:102::-;471:6;522:2;518:7;513:2;506:5;502:14;498:28;488:38;;430:102;;;:::o;538:373::-;624:3;652:38;684:5;652:38;:::i;:::-;706:70;769:6;764:3;706:70;:::i;:::-;699:77;;785:65;843:6;838:3;831:4;824:5;820:16;785:65;:::i;:::-;875:29;897:6;875:29;:::i;:::-;870:3;866:39;859:46;;628:283;538:373;;;;:::o;917:309::-;1028:4;1066:2;1055:9;1051:18;1043:26;;1115:9;1109:4;1105:20;1101:1;1090:9;1086:17;1079:47;1143:76;1214:4;1205:6;1143:76;:::i;:::-;1135:84;;917:309;;;;:::o;1232:75::-;1265:6;1298:2;1292:9;1282:19;;1232:75;:::o;1313:117::-;1422:1;1419;1412:12;1436:117;1545:1;1542;1535:12;1559:117;1668:1;1665;1658:12;1682:117;1791:1;1788;1781:12;1805:180;1853:77;1850:1;1843:88;1950:4;1947:1;1940:15;1974:4;1971:1;1964:15;1991:281;2074:27;2096:4;2074:27;:::i;:::-;2066:6;2062:40;2204:6;2192:10;2189:22;2168:18;2156:10;2153:34;2150:62;2147:88;;;2215:18;;:::i;:::-;2147:88;2255:10;2251:2;2244:22;2034:238;1991:281;;:::o;2278:129::-;2312:6;2339:20;;:::i;:::-;2329:30;;2368:33;2396:4;2388:6;2368:33;:::i;:::-;2278:129;;;:::o;2413:307::-;2474:4;2564:18;2556:6;2553:30;2550:56;;;2586:18;;:::i;:::-;2550:56;2624:29;2646:6;2624:29;:::i;:::-;2616:37;;2708:4;2702;2698:15;2690:23;;2413:307;;;:::o;2726:148::-;2824:6;2819:3;2814;2801:30;2865:1;2856:6;2851:3;2847:16;2840:27;2726:148;;;:::o;2880:423::-;2957:5;2982:65;2998:48;3039:6;2998:48;:::i;:::-;2982:65;:::i;:::-;2973:74;;3070:6;3063:5;3056:21;3108:4;3101:5;3097:16;3146:3;3137:6;3132:3;3128:16;3125:25;3122:112;;;3153:79;;:::i;:::-;3122:112;3243:54;3290:6;3285:3;3280;3243:54;:::i;:::-;2963:340;2880:423;;;;;:::o;3322:338::-;3377:5;3426:3;3419:4;3411:6;3407:17;3403:27;3393:122;;3434:79;;:::i;:::-;3393:122;3551:6;3538:20;3576:78;3650:3;3642:6;3635:4;3627:6;3623:17;3576:78;:::i;:::-;3567:87;;3383:277;3322:338;;;;:::o;3666:507::-;3734:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:119;;;3789:79;;:::i;:::-;3751:119;3937:1;3926:9;3922:17;3909:31;3967:18;3959:6;3956:30;3953:117;;;3989:79;;:::i;:::-;3953:117;4094:62;4148:7;4139:6;4128:9;4124:22;4094:62;:::i;:::-;4084:72;;3880:286;3666:507;;;;:::o;4179:77::-;4216:7;4245:5;4234:16;;4179:77;;;:::o;4262:118::-;4349:24;4367:5;4349:24;:::i;:::-;4344:3;4337:37;4262:118;;:::o;4386:126::-;4423:7;4463:42;4456:5;4452:54;4441:65;;4386:126;;;:::o;4518:96::-;4555:7;4584:24;4602:5;4584:24;:::i;:::-;4573:35;;4518:96;;;:::o;4620:118::-;4707:24;4725:5;4707:24;:::i;:::-;4702:3;4695:37;4620:118;;:::o;4744:99::-;4796:6;4830:5;4824:12;4814:22;;4744:99;;;:::o;4849:169::-;4933:11;4967:6;4962:3;4955:19;5007:4;5002:3;4998:14;4983:29;;4849:169;;;;:::o;5024:377::-;5112:3;5140:39;5173:5;5140:39;:::i;:::-;5195:71;5259:6;5254:3;5195:71;:::i;:::-;5188:78;;5275:65;5333:6;5328:3;5321:4;5314:5;5310:16;5275:65;:::i;:::-;5365:29;5387:6;5365:29;:::i;:::-;5360:3;5356:39;5349:46;;5116:285;5024:377;;;;:::o;5407:104::-;5472:6;5500:4;5490:14;;5407:104;;;:::o;5517:143::-;5614:11;5651:3;5636:18;;5517:143;;;;:::o;5666:98::-;5731:4;5754:3;5746:11;;5666:98;;;:::o;5770:108::-;5847:24;5865:5;5847:24;:::i;:::-;5842:3;5835:37;5770:108;;:::o;5884:179::-;5953:10;5974:46;6016:3;6008:6;5974:46;:::i;:::-;6052:4;6047:3;6043:14;6029:28;;5884:179;;;;:::o;6069:111::-;6137:4;6169;6164:3;6160:14;6152:22;;6069:111;;;:::o;6218:694::-;6354:52;6400:5;6354:52;:::i;:::-;6422:84;6499:6;6494:3;6422:84;:::i;:::-;6415:91;;6530:54;6578:5;6530:54;:::i;:::-;6607:7;6638:1;6623:282;6648:6;6645:1;6642:13;6623:282;;;6724:6;6718:13;6751:63;6810:3;6795:13;6751:63;:::i;:::-;6744:70;;6837:58;6888:6;6837:58;:::i;:::-;6827:68;;6683:222;6670:1;6667;6663:9;6658:14;;6623:282;;;6627:14;6330:582;;;6218:694;;:::o;6918:736::-;7161:4;7199:3;7188:9;7184:19;7176:27;;7213:71;7281:1;7270:9;7266:17;7257:6;7213:71;:::i;:::-;7294:72;7362:2;7351:9;7347:18;7338:6;7294:72;:::i;:::-;7413:9;7407:4;7403:20;7398:2;7387:9;7383:18;7376:48;7441:78;7514:4;7505:6;7441:78;:::i;:::-;7433:86;;7529:118;7643:2;7632:9;7628:18;7619:6;7529:118;:::i;:::-;6918:736;;;;;;;:::o;7660:79::-;7699:7;7728:5;7717:16;;7660:79;;;:::o;7745:157::-;7850:45;7870:24;7888:5;7870:24;:::i;:::-;7850:45;:::i;:::-;7845:3;7838:58;7745:157;;:::o;7908:94::-;7941:8;7989:5;7985:2;7981:14;7960:35;;7908:94;;;:::o;8008:::-;8047:7;8076:20;8090:5;8076:20;:::i;:::-;8065:31;;8008:94;;;:::o;8108:100::-;8147:7;8176:26;8196:5;8176:26;:::i;:::-;8165:37;;8108:100;;;:::o;8214:157::-;8319:45;8339:24;8357:5;8339:24;:::i;:::-;8319:45;:::i;:::-;8314:3;8307:58;8214:157;;:::o;8377:180::-;8425:77;8422:1;8415:88;8522:4;8519:1;8512:15;8546:4;8543:1;8536:15;8563:320;8607:6;8644:1;8638:4;8634:12;8624:22;;8691:1;8685:4;8681:12;8712:18;8702:81;;8768:4;8760:6;8756:17;8746:27;;8702:81;8830:2;8822:6;8819:14;8799:18;8796:38;8793:84;;8849:18;;:::i;:::-;8793:84;8614:269;8563:320;;;:::o;8889:148::-;8991:11;9028:3;9013:18;;8889:148;;;;:::o;9043:141::-;9092:4;9115:3;9107:11;;9138:3;9135:1;9128:14;9172:4;9169:1;9159:18;9151:26;;9043:141;;;:::o;9214:874::-;9317:3;9354:5;9348:12;9383:36;9409:9;9383:36;:::i;:::-;9435:89;9517:6;9512:3;9435:89;:::i;:::-;9428:96;;9555:1;9544:9;9540:17;9571:1;9566:166;;;;9746:1;9741:341;;;;9533:549;;9566:166;9650:4;9646:9;9635;9631:25;9626:3;9619:38;9712:6;9705:14;9698:22;9690:6;9686:35;9681:3;9677:45;9670:52;;9566:166;;9741:341;9808:38;9840:5;9808:38;:::i;:::-;9868:1;9882:154;9896:6;9893:1;9890:13;9882:154;;;9970:7;9964:14;9960:1;9955:3;9951:11;9944:35;10020:1;10011:7;10007:15;9996:26;;9918:4;9915:1;9911:12;9906:17;;9882:154;;;10065:6;10060:3;10056:16;10049:23;;9748:334;;9533:549;;9321:767;;9214:874;;;;:::o;10094:101::-;10156:6;10184:4;10174:14;;10094:101;;;:::o;10201:161::-;10316:11;10353:3;10338:18;;10201:161;;;;:::o;10368:95::-;10430:4;10453:3;10445:11;;10368:95;;;:::o;10469:116::-;10554:24;10572:5;10554:24;:::i;:::-;10549:3;10542:37;10469:116;;:::o;10591:195::-;10668:10;10689:54;10739:3;10731:6;10689:54;:::i;:::-;10775:4;10770:3;10766:14;10752:28;;10591:195;;;;:::o;10792:102::-;10834:8;10881:5;10878:1;10874:13;10853:34;;10792:102;;;:::o;10900:90::-;10950:7;10979:5;10968:16;;10900:90;;;:::o;10996:167::-;11066:5;11091:66;11122:34;11145:10;11122:34;:::i;:::-;11091:66;:::i;:::-;11082:75;;10996:167;;;:::o;11169:145::-;11224:5;11249:58;11301:4;11295:11;11249:58;:::i;:::-;11240:67;;11169:145;;;:::o;11320:108::-;11385:4;11417;11412:3;11408:14;11400:22;;11320:108;;;:::o;11466:757::-;11617:49;11660:5;11617:49;:::i;:::-;11682:102;11777:6;11772:3;11682:102;:::i;:::-;11675:109;;11808:51;11853:5;11808:51;:::i;:::-;11882:7;11913:1;11898:318;11923:6;11920:1;11917:13;11898:318;;;11993:44;12030:6;11993:44;:::i;:::-;12057:71;12124:3;12109:13;12057:71;:::i;:::-;12050:78;;12151:55;12199:6;12151:55;:::i;:::-;12141:65;;11958:258;11945:1;11942;11938:9;11933:14;;11898:318;;;11902:14;11593:630;;;11466:757;;:::o;12229:778::-;12485:3;12500:75;12571:3;12562:6;12500:75;:::i;:::-;12600:2;12595:3;12591:12;12584:19;;12613:75;12684:3;12675:6;12613:75;:::i;:::-;12713:2;12708:3;12704:12;12697:19;;12733:92;12821:3;12812:6;12733:92;:::i;:::-;12726:99;;12835:118;12949:3;12940:6;12835:118;:::i;:::-;12978:2;12973:3;12969:12;12962:19;;12998:3;12991:10;;12229:778;;;;;;;:::o;13037:831::-;13122:3;13159:5;13153:12;13188:36;13214:9;13188:36;:::i;:::-;13240:71;13304:6;13299:3;13240:71;:::i;:::-;13233:78;;13342:1;13331:9;13327:17;13358:1;13353:164;;;;13531:1;13526:336;;;;13320:542;;13353:164;13437:4;13433:9;13422;13418:25;13413:3;13406:38;13497:6;13490:14;13483:22;13477:4;13473:33;13468:3;13464:43;13457:50;;13353:164;;13526:336;13593:38;13625:5;13593:38;:::i;:::-;13653:1;13667:154;13681:6;13678:1;13675:13;13667:154;;;13755:7;13749:14;13745:1;13740:3;13736:11;13729:35;13805:1;13796:7;13792:15;13781:26;;13703:4;13700:1;13696:12;13691:17;;13667:154;;;13850:1;13845:3;13841:11;13834:18;;13533:329;;13320:542;;13126:742;;13037:831;;;;:::o;13906:713::-;14039:49;14082:5;14039:49;:::i;:::-;14104:84;14181:6;14176:3;14104:84;:::i;:::-;14097:91;;14212:51;14257:5;14212:51;:::i;:::-;14286:7;14317:1;14302:310;14327:6;14324:1;14321:13;14302:310;;;14397:44;14434:6;14397:44;:::i;:::-;14461:63;14520:3;14505:13;14461:63;:::i;:::-;14454:70;;14547:55;14595:6;14547:55;:::i;:::-;14537:65;;14362:250;14349:1;14346;14342:9;14337:14;;14302:310;;;14306:14;14015:604;;;13906:713;;:::o;14625:724::-;14862:4;14900:3;14889:9;14885:19;14877:27;;14914:71;14982:1;14971:9;14967:17;14958:6;14914:71;:::i;:::-;14995:72;15063:2;15052:9;15048:18;15039:6;14995:72;:::i;:::-;15114:9;15108:4;15104:20;15099:2;15088:9;15084:18;15077:48;15142:75;15212:4;15203:6;15142:75;:::i;:::-;15134:83;;15227:115;15338:2;15327:9;15323:18;15314:6;15227:115;:::i;:::-;14625:724;;;;;;;:::o;15355:122::-;15428:24;15446:5;15428:24;:::i;:::-;15421:5;15418:35;15408:63;;15467:1;15464;15457:12;15408:63;15355:122;:::o;15483:143::-;15540:5;15571:6;15565:13;15556:22;;15587:33;15614:5;15587:33;:::i;:::-;15483:143;;;;:::o;15632:104::-;15677:7;15706:24;15724:5;15706:24;:::i;:::-;15695:35;;15632:104;;;:::o;15742:138::-;15823:32;15849:5;15823:32;:::i;:::-;15816:5;15813:43;15803:71;;15870:1;15867;15860:12;15803:71;15742:138;:::o;15886:159::-;15951:5;15982:6;15976:13;15967:22;;15998:41;16033:5;15998:41;:::i;:::-;15886:159;;;;:::o;16051:308::-;16113:4;16203:18;16195:6;16192:30;16189:56;;;16225:18;;:::i;:::-;16189:56;16263:29;16285:6;16263:29;:::i;:::-;16255:37;;16347:4;16341;16337:15;16329:23;;16051:308;;;:::o;16365:434::-;16454:5;16479:66;16495:49;16537:6;16495:49;:::i;:::-;16479:66;:::i;:::-;16470:75;;16568:6;16561:5;16554:21;16606:4;16599:5;16595:16;16644:3;16635:6;16630:3;16626:16;16623:25;16620:112;;;16651:79;;:::i;:::-;16620:112;16741:52;16786:6;16781:3;16776;16741:52;:::i;:::-;16460:339;16365:434;;;;;:::o;16819:355::-;16886:5;16935:3;16928:4;16920:6;16916:17;16912:27;16902:122;;16943:79;;:::i;:::-;16902:122;17053:6;17047:13;17078:90;17164:3;17156:6;17149:4;17141:6;17137:17;17078:90;:::i;:::-;17069:99;;16892:282;16819:355;;;;:::o;17180:249::-;17255:4;17345:18;17337:6;17334:30;17331:56;;;17367:18;;:::i;:::-;17331:56;17417:4;17409:6;17405:17;17397:25;;17180:249;;;:::o;17435:117::-;17544:1;17541;17534:12;17576:665;17681:5;17706:79;17722:62;17777:6;17722:62;:::i;:::-;17706:79;:::i;:::-;17697:88;;17805:5;17858:4;17850:6;17846:17;17838:6;17834:30;17887:3;17879:6;17876:15;17873:122;;;17906:79;;:::i;:::-;17873:122;18021:6;18004:231;18038:6;18033:3;18030:15;18004:231;;;18113:3;18142:48;18186:3;18174:10;18142:48;:::i;:::-;18137:3;18130:61;18220:4;18215:3;18211:14;18204:21;;18080:155;18064:4;18059:3;18055:14;18048:21;;18004:231;;;18008:21;17687:554;;17576:665;;;;;:::o;18265:361::-;18345:5;18394:3;18387:4;18379:6;18375:17;18371:27;18361:122;;18402:79;;:::i;:::-;18361:122;18506:4;18528:92;18616:3;18608:6;18600;18528:92;:::i;:::-;18519:101;;18351:275;18265:361;;;;:::o;18632:1055::-;18770:6;18778;18786;18794;18843:3;18831:9;18822:7;18818:23;18814:33;18811:120;;;18850:79;;:::i;:::-;18811:120;18970:1;18995:64;19051:7;19042:6;19031:9;19027:22;18995:64;:::i;:::-;18985:74;;18941:128;19108:2;19134:72;19198:7;19189:6;19178:9;19174:22;19134:72;:::i;:::-;19124:82;;19079:137;19276:2;19265:9;19261:18;19255:25;19307:18;19299:6;19296:30;19293:117;;;19329:79;;:::i;:::-;19293:117;19434:74;19500:7;19491:6;19480:9;19476:22;19434:74;:::i;:::-;19424:84;;19226:292;19557:2;19583:87;19662:7;19653:6;19642:9;19638:22;19583:87;:::i;:::-;19573:97;;19528:152;18632:1055;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"decode(bytes)":"e5c5e9a3","encode()":"bd14598f","encodePacked()":"53d9c506","encodeWithSelector()":"d1bd363d","encodeWithSignature()":"e4f2a84a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"decode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"daddr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"dname\",\"type\":\"string\"},{\"internalType\":\"uint256[2]\",\"name\":\"darray\",\"type\":\"uint256[2]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodePacked\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeWithSelector\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeWithSignature\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/27_ABIEncode/ABIEncode.sol\":\"ABIEncode\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/27_ABIEncode/ABIEncode.sol\":{\"keccak256\":\"0x2c9699f9e7cf8f4e10e6a02212afc868bfbb308817e62ae182b5ef5559fd07b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbc95c6680cdaf2dff1c14ee9128b2d02b490a123f11119f86294e7247f2c18f\",\"dweb:/ipfs/QmTCUE7q3iKNLWWnJbycvzMYLH31se4bSHvU7iQ8iSM6sk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decode","outputs":[{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"address","name":"daddr","type":"address"},{"internalType":"string","name":"dname","type":"string"},{"internalType":"uint256[2]","name":"darray","type":"uint256[2]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encode","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodePacked","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeWithSelector","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeWithSignature","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/27_ABIEncode/ABIEncode.sol":"ABIEncode"},"evmVersion":"prague","libraries":{}},"sources":{"src/27_ABIEncode/ABIEncode.sol":{"keccak256":"0x2c9699f9e7cf8f4e10e6a02212afc868bfbb308817e62ae182b5ef5559fd07b8","urls":["bzz-raw://bbc95c6680cdaf2dff1c14ee9128b2d02b490a123f11119f86294e7247f2c18f","dweb:/ipfs/QmTCUE7q3iKNLWWnJbycvzMYLH31se4bSHvU7iQ8iSM6sk"],"license":"MIT"}},"version":1},"id":74} \ No newline at end of file +{"abi":[{"type":"function","name":"decode","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"dx","type":"uint256","internalType":"uint256"},{"name":"daddr","type":"address","internalType":"address"},{"name":"dname","type":"string","internalType":"string"},{"name":"darray","type":"uint256[2]","internalType":"uint256[2]"}],"stateMutability":"pure"},{"type":"function","name":"encode","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodePacked","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeWithSelector","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeWithSignature","inputs":[],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600a5f55737a58c0be72be218b41c608b7fe7c5bb630736c7160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816100a0919061032c565b506040518060400160405280600560ff168152602001600660ff16815250600390816100cc91906104ea565b503480156100d8575f5ffd5b5061056e565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061015957607f821691505b60208210810361016c5761016b610115565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610193565b6101d88683610193565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61021c610217610212846101f0565b6101f9565b6101f0565b9050919050565b5f819050919050565b61023583610202565b61024961024182610223565b84845461019f565b825550505050565b5f5f905090565b610260610251565b61026b81848461022c565b505050565b5f5b82811015610291576102865f828401610258565b600181019050610272565b505050565b601f8211156102e457828211156102e3576102b081610172565b6102b983610184565b6102c285610184565b60208610156102cf575f90505b8083016102de82840382610270565b505050505b5b505050565b5f82821c905092915050565b5f6103045f19846008026102e9565b1980831691505092915050565b5f61031c83836102f5565b9150826002028217905092915050565b610335826100de565b67ffffffffffffffff81111561034e5761034d6100e8565b5b6103588254610142565b610363828285610296565b5f60209050601f831160018114610394575f8415610382578287015190505b61038c8582610311565b8655506103f3565b601f1984166103a286610172565b5f5b828110156103c9578489015182556001820191506020850194506020810190506103a4565b868310156103e657848901516103e2601f8916826102f5565b8355505b6001600288020188555050505b505050505050565b5f60029050919050565b5f8190506001806001038301049050919050565b5f819050919050565b5f5b82811015610443576104385f828401610258565b600181019050610424565b505050565b8183101561047f5761045982610405565b61046284610405565b61046b83610419565b81810161047a83850382610422565b505050505b505050565b6801000000000000000082111561049e5761049d6100e8565b5b6104a7816103fb565b6104b2838284610448565b505050565b5f60029050919050565b5f60ff82169050919050565b5f6104d882516104c1565b80915050919050565b5f819050919050565b6104f3826104b7565b67ffffffffffffffff81111561050c5761050b6100e8565b5b6105168183610484565b61051f836104e1565b61052883610419565b600183045f5b81811015610565575f610540856104cd565b61054981610223565b809250602087019650505080828501555060018101905061052e565b50505050505050565b610d4f8061057b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806353d9c50614610059578063bd14598f14610077578063d1bd363d14610095578063e4f2a84a146100b3578063e5c5e9a3146100d1575b5f5ffd5b610061610104565b60405161006e91906103ee565b60405180910390f35b61007f610155565b60405161008c91906103ee565b60405180910390f35b61009d6101a6565b6040516100aa91906103ee565b60405180910390f35b6100bb610266565b6040516100c891906103ee565b60405180910390f35b6100eb60048036038101906100e6919061054b565b610325565b6040516100fb94939291906106e0565b60405180910390f35b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101419493929190610973565b604051602081830303815290604052905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101929493929190610a9a565b604051602081830303815290604052905090565b60607fe87082f1450a46f8f3150d7bda55bda41a2b08d68abde6797ccc68be305673355f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102049493929190610a9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102a39493929190610a9a565b6040516020818303038152906040527fe87082f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b5f5f606061033161035c565b848060200190518101906103459190610c99565b809450819550829650839750505050509193509193565b6040518060400160405280600290602082028036833780820191505090505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103c08261037e565b6103ca8185610388565b93506103da818560208601610398565b6103e3816103a6565b840191505092915050565b5f6020820190508181035f83015261040681846103b6565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61045d826103a6565b810181811067ffffffffffffffff8211171561047c5761047b610427565b5b80604052505050565b5f61048e61040e565b905061049a8282610454565b919050565b5f67ffffffffffffffff8211156104b9576104b8610427565b5b6104c2826103a6565b9050602081019050919050565b828183375f83830152505050565b5f6104ef6104ea8461049f565b610485565b90508281526020810184848401111561050b5761050a610423565b5b6105168482856104cf565b509392505050565b5f82601f8301126105325761053161041f565b5b81356105428482602086016104dd565b91505092915050565b5f602082840312156105605761055f610417565b5b5f82013567ffffffffffffffff81111561057d5761057c61041b565b5b6105898482850161051e565b91505092915050565b5f819050919050565b6105a481610592565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105d3826105aa565b9050919050565b6105e3816105c9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f61060d826105e9565b61061781856105f3565b9350610627818560208601610398565b610630816103a6565b840191505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b61066181610592565b82525050565b5f6106728383610658565b60208301905092915050565b5f602082019050919050565b6106938161063b565b61069d8184610645565b92506106a88261064f565b805f5b838110156106d85781516106bf8782610667565b96506106ca8361067e565b9250506001810190506106ab565b505050505050565b5f60a0820190506106f35f83018761059b565b61070060208301866105da565b81810360408301526107128185610603565b9050610721606083018461068a565b95945050505050565b5f819050919050565b61074461073f82610592565b61072a565b82525050565b5f8160601b9050919050565b5f6107608261074a565b9050919050565b5f61077182610756565b9050919050565b610789610784826105c9565b610767565b82525050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107d357607f821691505b6020821081036107e6576107e561078f565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154610814816107bc565b61081e81866107ec565b9450600182165f8114610838576001811461084d5761087f565b60ff198316865281151582028601935061087f565b610856856107f6565b5f5b8381101561087757815481890152600182019150602081019050610858565b838801955050505b50505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6108ae81610592565b82525050565b5f6108bf83836108a5565b60208301905092915050565b5f815f1c9050919050565b5f819050919050565b5f6108f16108ec836108cb565b6108d6565b9050919050565b5f61090382546108df565b9050919050565b5f600182019050919050565b61091f81610888565b6109298184610892565b92506109348261089c565b805f5b8381101561096b57610948826108f8565b61095287826108b4565b965061095d8361090a565b925050600181019050610937565b505050505050565b5f61097e8287610733565b60208201915061098e8286610778565b60148201915061099e8285610808565b91506109aa8284610916565b60408201915081905095945050505050565b5f81546109c8816107bc565b6109d281866105f3565b9450600182165f81146109ec5760018114610a0257610a34565b60ff198316865281151560200286019350610a34565b610a0b856107f6565b5f5b83811015610a2c57815481890152600182019150602081019050610a0d565b808801955050505b50505092915050565b610a4681610888565b610a508184610645565b9250610a5b8261089c565b805f5b83811015610a9257610a6f826108f8565b610a798782610667565b9650610a848361090a565b925050600181019050610a5e565b505050505050565b5f60a082019050610aad5f83018761059b565b610aba60208301866105da565b8181036040830152610acc81856109bc565b9050610adb6060830184610a3d565b95945050505050565b610aed81610592565b8114610af7575f5ffd5b50565b5f81519050610b0881610ae4565b92915050565b5f610b18826105aa565b9050919050565b610b2881610b0e565b8114610b32575f5ffd5b50565b5f81519050610b4381610b1f565b92915050565b5f67ffffffffffffffff821115610b6357610b62610427565b5b610b6c826103a6565b9050602081019050919050565b5f610b8b610b8684610b49565b610485565b905082815260208101848484011115610ba757610ba6610423565b5b610bb2848285610398565b509392505050565b5f82601f830112610bce57610bcd61041f565b5b8151610bde848260208601610b79565b91505092915050565b5f67ffffffffffffffff821115610c0157610c00610427565b5b602082029050919050565b5f5ffd5b5f610c22610c1d84610be7565b610485565b90508060208402830185811115610c3c57610c3b610c0c565b5b835b81811015610c655780610c518882610afa565b845260208401935050602081019050610c3e565b5050509392505050565b5f82601f830112610c8357610c8261041f565b5b6002610c90848285610c10565b91505092915050565b5f5f5f5f60a08587031215610cb157610cb0610417565b5b5f610cbe87828801610afa565b9450506020610ccf87828801610b35565b935050604085015167ffffffffffffffff811115610cf057610cef61041b565b5b610cfc87828801610bba565b9250506060610d0d87828801610c6f565b9150509295919450925056fea26469706673582212205fbf5a61e8b9f35acc45b10b90f096500ea8ec75a57955691656247c8f9a948864736f6c63430008220033","sourceMap":"58:1037:68:-:0;;;91:2;82:11;;114:42;99:57;;;;;;;;;;;;;;;;;;;;162:20;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;188:22;;;;;;;;205:1;188:22;;;;;;208:1;188:22;;;;;;;;;;;;:::i;:::-;;58:1037;;;;;;;;;;;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:101::-;5527:6;5555:4;5545:14;;5465:101;;;:::o;6174:201::-;6253:4;6276:6;6268:14;;6366:1;6361;6358;6354:9;6346:6;6342:22;6338:30;6330:38;;6174:201;;;:::o;6380:95::-;6442:4;6465:3;6457:11;;6380:95;;;:::o;6481:215::-;6567:1;6552:138;6577:9;6574:1;6571:16;6552:138;;;6629:51;6678:1;6674;6663:9;6659:17;6629:51;:::i;:::-;6602:1;6599;6595:9;6590:14;;6552:138;;;6556:14;6481:215;;:::o;6952:632::-;7070:3;7058:10;7055:19;7052:525;;;7161:63;7220:3;7161:63;:::i;:::-;7257:70;7316:10;7257:70;:::i;:::-;7362:51;7407:5;7362:51;:::i;:::-;7465:12;7449:14;7445:33;7492:75;7553:12;7539;7535:31;7522:11;7492:75;:::i;:::-;7075:502;;;;7052:525;6952:632;;;:::o;7590:323::-;7681:20;7673:6;7670:32;7667:78;;;7717:18;;:::i;:::-;7667:78;7769:49;7812:5;7769:49;:::i;:::-;7828:78;7899:6;7891;7884:5;7828:78;:::i;:::-;7657:256;7590:323;;:::o;7918:102::-;7981:6;8009:4;7999:14;;7918:102;;;:::o;8026:86::-;8061:7;8101:4;8094:5;8090:16;8079:27;;8026:86;;;:::o;8118:150::-;8159:11;8195:27;8217:3;8211:10;8195:27;:::i;:::-;8256:5;8232:29;;8171:97;8118:150;;;:::o;8274:96::-;8337:4;8360:3;8352:11;;8274:96;;;:::o;8822:981::-;8957:48;9001:3;8957:48;:::i;:::-;9070:18;9062:6;9059:30;9056:56;;;9092:18;;:::i;:::-;9056:56;9121:55;9169:6;9164:3;9121:55;:::i;:::-;9200:50;9246:3;9200:50;:::i;:::-;9274:49;9319:3;9274:49;:::i;:::-;9362:1;9354:6;9350:14;9389:1;9374:422;9399:9;9396:1;9393:16;9374:422;;;9463:1;9516:31;9540:6;9516:31;:::i;:::-;9582:36;9606:11;9582:36;:::i;:::-;9668:9;9635:42;;9717:2;9709:6;9705:15;9695:25;;9478:257;;9773:12;9769:1;9760:7;9756:15;9749:37;9429:367;9424:1;9421;9417:9;9412:14;;9374:422;;;9378:14;8932:871;;;;8822:981;;:::o;58:1037:68:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806353d9c50614610059578063bd14598f14610077578063d1bd363d14610095578063e4f2a84a146100b3578063e5c5e9a3146100d1575b5f5ffd5b610061610104565b60405161006e91906103ee565b60405180910390f35b61007f610155565b60405161008c91906103ee565b60405180910390f35b61009d6101a6565b6040516100aa91906103ee565b60405180910390f35b6100bb610266565b6040516100c891906103ee565b60405180910390f35b6100eb60048036038101906100e6919061054b565b610325565b6040516100fb94939291906106e0565b60405180910390f35b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101419493929190610973565b604051602081830303815290604052905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516020016101929493929190610a9a565b604051602081830303815290604052905090565b60607fe87082f1450a46f8f3150d7bda55bda41a2b08d68abde6797ccc68be305673355f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102049493929190610a9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b60605f5460015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260036040516024016102a39493929190610a9a565b6040516020818303038152906040527fe87082f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905090565b5f5f606061033161035c565b848060200190518101906103459190610c99565b809450819550829650839750505050509193509193565b6040518060400160405280600290602082028036833780820191505090505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103c08261037e565b6103ca8185610388565b93506103da818560208601610398565b6103e3816103a6565b840191505092915050565b5f6020820190508181035f83015261040681846103b6565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61045d826103a6565b810181811067ffffffffffffffff8211171561047c5761047b610427565b5b80604052505050565b5f61048e61040e565b905061049a8282610454565b919050565b5f67ffffffffffffffff8211156104b9576104b8610427565b5b6104c2826103a6565b9050602081019050919050565b828183375f83830152505050565b5f6104ef6104ea8461049f565b610485565b90508281526020810184848401111561050b5761050a610423565b5b6105168482856104cf565b509392505050565b5f82601f8301126105325761053161041f565b5b81356105428482602086016104dd565b91505092915050565b5f602082840312156105605761055f610417565b5b5f82013567ffffffffffffffff81111561057d5761057c61041b565b5b6105898482850161051e565b91505092915050565b5f819050919050565b6105a481610592565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105d3826105aa565b9050919050565b6105e3816105c9565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f61060d826105e9565b61061781856105f3565b9350610627818560208601610398565b610630816103a6565b840191505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b61066181610592565b82525050565b5f6106728383610658565b60208301905092915050565b5f602082019050919050565b6106938161063b565b61069d8184610645565b92506106a88261064f565b805f5b838110156106d85781516106bf8782610667565b96506106ca8361067e565b9250506001810190506106ab565b505050505050565b5f60a0820190506106f35f83018761059b565b61070060208301866105da565b81810360408301526107128185610603565b9050610721606083018461068a565b95945050505050565b5f819050919050565b61074461073f82610592565b61072a565b82525050565b5f8160601b9050919050565b5f6107608261074a565b9050919050565b5f61077182610756565b9050919050565b610789610784826105c9565b610767565b82525050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107d357607f821691505b6020821081036107e6576107e561078f565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154610814816107bc565b61081e81866107ec565b9450600182165f8114610838576001811461084d5761087f565b60ff198316865281151582028601935061087f565b610856856107f6565b5f5b8381101561087757815481890152600182019150602081019050610858565b838801955050505b50505092915050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6108ae81610592565b82525050565b5f6108bf83836108a5565b60208301905092915050565b5f815f1c9050919050565b5f819050919050565b5f6108f16108ec836108cb565b6108d6565b9050919050565b5f61090382546108df565b9050919050565b5f600182019050919050565b61091f81610888565b6109298184610892565b92506109348261089c565b805f5b8381101561096b57610948826108f8565b61095287826108b4565b965061095d8361090a565b925050600181019050610937565b505050505050565b5f61097e8287610733565b60208201915061098e8286610778565b60148201915061099e8285610808565b91506109aa8284610916565b60408201915081905095945050505050565b5f81546109c8816107bc565b6109d281866105f3565b9450600182165f81146109ec5760018114610a0257610a34565b60ff198316865281151560200286019350610a34565b610a0b856107f6565b5f5b83811015610a2c57815481890152600182019150602081019050610a0d565b808801955050505b50505092915050565b610a4681610888565b610a508184610645565b9250610a5b8261089c565b805f5b83811015610a9257610a6f826108f8565b610a798782610667565b9650610a848361090a565b925050600181019050610a5e565b505050505050565b5f60a082019050610aad5f83018761059b565b610aba60208301866105da565b8181036040830152610acc81856109bc565b9050610adb6060830184610a3d565b95945050505050565b610aed81610592565b8114610af7575f5ffd5b50565b5f81519050610b0881610ae4565b92915050565b5f610b18826105aa565b9050919050565b610b2881610b0e565b8114610b32575f5ffd5b50565b5f81519050610b4381610b1f565b92915050565b5f67ffffffffffffffff821115610b6357610b62610427565b5b610b6c826103a6565b9050602081019050919050565b5f610b8b610b8684610b49565b610485565b905082815260208101848484011115610ba757610ba6610423565b5b610bb2848285610398565b509392505050565b5f82601f830112610bce57610bcd61041f565b5b8151610bde848260208601610b79565b91505092915050565b5f67ffffffffffffffff821115610c0157610c00610427565b5b602082029050919050565b5f5ffd5b5f610c22610c1d84610be7565b610485565b90508060208402830185811115610c3c57610c3b610c0c565b5b835b81811015610c655780610c518882610afa565b845260208401935050602081019050610c3e565b5050509392505050565b5f82601f830112610c8357610c8261041f565b5b6002610c90848285610c10565b91505092915050565b5f5f5f5f60a08587031215610cb157610cb0610417565b5b5f610cbe87828801610afa565b9450506020610ccf87828801610b35565b935050604085015167ffffffffffffffff811115610cf057610cef61041b565b5b610cfc87828801610bba565b9250506060610d0d87828801610c6f565b9150509295919450925056fea26469706673582212205fbf5a61e8b9f35acc45b10b90f096500ea8ec75a57955691656247c8f9a948864736f6c63430008220033","sourceMap":"58:1037:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:129;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;218:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;667:202;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:185;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;341:129;385:19;442:1;;445:4;;;;;;;;;;;451;457:5;425:38;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;416:47;;341:129;:::o;218:117::-;256:19;307:1;;310:4;;;;;;;;;;;316;322:5;296:32;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;287:41;;218:117;:::o;667:202::-;717:19;787:51;841:1;;844:4;;;;;;;;;;;850;856:5;757:105;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;748:114;;667:202;:::o;476:185::-;527:19;633:1;;636:4;;;;;;;;;;;642;648:5;567:87;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;558:96;;476:185;:::o;874:219::-;929:7;938:13;953:19;974:21;;:::i;:::-;1047:4;1036:50;;;;;;;;;;;;:::i;:::-;1007:79;;;;;;;;;;;;;;;;874:219;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:98:139:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:168::-;194:11;228:6;223:3;216:19;268:4;263:3;259:14;244:29;;111:168;;;;:::o;285:139::-;374:6;369:3;364;358:23;415:1;406:6;401:3;397:16;390:27;285:139;;;:::o;430:102::-;471:6;522:2;518:7;513:2;506:5;502:14;498:28;488:38;;430:102;;;:::o;538:373::-;624:3;652:38;684:5;652:38;:::i;:::-;706:70;769:6;764:3;706:70;:::i;:::-;699:77;;785:65;843:6;838:3;831:4;824:5;820:16;785:65;:::i;:::-;875:29;897:6;875:29;:::i;:::-;870:3;866:39;859:46;;628:283;538:373;;;;:::o;917:309::-;1028:4;1066:2;1055:9;1051:18;1043:26;;1115:9;1109:4;1105:20;1101:1;1090:9;1086:17;1079:47;1143:76;1214:4;1205:6;1143:76;:::i;:::-;1135:84;;917:309;;;;:::o;1232:75::-;1265:6;1298:2;1292:9;1282:19;;1232:75;:::o;1313:117::-;1422:1;1419;1412:12;1436:117;1545:1;1542;1535:12;1559:117;1668:1;1665;1658:12;1682:117;1791:1;1788;1781:12;1805:180;1853:77;1850:1;1843:88;1950:4;1947:1;1940:15;1974:4;1971:1;1964:15;1991:281;2074:27;2096:4;2074:27;:::i;:::-;2066:6;2062:40;2204:6;2192:10;2189:22;2168:18;2156:10;2153:34;2150:62;2147:88;;;2215:18;;:::i;:::-;2147:88;2255:10;2251:2;2244:22;2034:238;1991:281;;:::o;2278:129::-;2312:6;2339:20;;:::i;:::-;2329:30;;2368:33;2396:4;2388:6;2368:33;:::i;:::-;2278:129;;;:::o;2413:307::-;2474:4;2564:18;2556:6;2553:30;2550:56;;;2586:18;;:::i;:::-;2550:56;2624:29;2646:6;2624:29;:::i;:::-;2616:37;;2708:4;2702;2698:15;2690:23;;2413:307;;;:::o;2726:148::-;2824:6;2819:3;2814;2801:30;2865:1;2856:6;2851:3;2847:16;2840:27;2726:148;;;:::o;2880:423::-;2957:5;2982:65;2998:48;3039:6;2998:48;:::i;:::-;2982:65;:::i;:::-;2973:74;;3070:6;3063:5;3056:21;3108:4;3101:5;3097:16;3146:3;3137:6;3132:3;3128:16;3125:25;3122:112;;;3153:79;;:::i;:::-;3122:112;3243:54;3290:6;3285:3;3280;3243:54;:::i;:::-;2963:340;2880:423;;;;;:::o;3322:338::-;3377:5;3426:3;3419:4;3411:6;3407:17;3403:27;3393:122;;3434:79;;:::i;:::-;3393:122;3551:6;3538:20;3576:78;3650:3;3642:6;3635:4;3627:6;3623:17;3576:78;:::i;:::-;3567:87;;3383:277;3322:338;;;;:::o;3666:507::-;3734:6;3783:2;3771:9;3762:7;3758:23;3754:32;3751:119;;;3789:79;;:::i;:::-;3751:119;3937:1;3926:9;3922:17;3909:31;3967:18;3959:6;3956:30;3953:117;;;3989:79;;:::i;:::-;3953:117;4094:62;4148:7;4139:6;4128:9;4124:22;4094:62;:::i;:::-;4084:72;;3880:286;3666:507;;;;:::o;4179:77::-;4216:7;4245:5;4234:16;;4179:77;;;:::o;4262:118::-;4349:24;4367:5;4349:24;:::i;:::-;4344:3;4337:37;4262:118;;:::o;4386:126::-;4423:7;4463:42;4456:5;4452:54;4441:65;;4386:126;;;:::o;4518:96::-;4555:7;4584:24;4602:5;4584:24;:::i;:::-;4573:35;;4518:96;;;:::o;4620:118::-;4707:24;4725:5;4707:24;:::i;:::-;4702:3;4695:37;4620:118;;:::o;4744:99::-;4796:6;4830:5;4824:12;4814:22;;4744:99;;;:::o;4849:169::-;4933:11;4967:6;4962:3;4955:19;5007:4;5002:3;4998:14;4983:29;;4849:169;;;;:::o;5024:377::-;5112:3;5140:39;5173:5;5140:39;:::i;:::-;5195:71;5259:6;5254:3;5195:71;:::i;:::-;5188:78;;5275:65;5333:6;5328:3;5321:4;5314:5;5310:16;5275:65;:::i;:::-;5365:29;5387:6;5365:29;:::i;:::-;5360:3;5356:39;5349:46;;5116:285;5024:377;;;;:::o;5407:104::-;5472:6;5500:4;5490:14;;5407:104;;;:::o;5517:143::-;5614:11;5651:3;5636:18;;5517:143;;;;:::o;5666:98::-;5731:4;5754:3;5746:11;;5666:98;;;:::o;5770:108::-;5847:24;5865:5;5847:24;:::i;:::-;5842:3;5835:37;5770:108;;:::o;5884:179::-;5953:10;5974:46;6016:3;6008:6;5974:46;:::i;:::-;6052:4;6047:3;6043:14;6029:28;;5884:179;;;;:::o;6069:111::-;6137:4;6169;6164:3;6160:14;6152:22;;6069:111;;;:::o;6218:694::-;6354:52;6400:5;6354:52;:::i;:::-;6422:84;6499:6;6494:3;6422:84;:::i;:::-;6415:91;;6530:54;6578:5;6530:54;:::i;:::-;6607:7;6638:1;6623:282;6648:6;6645:1;6642:13;6623:282;;;6724:6;6718:13;6751:63;6810:3;6795:13;6751:63;:::i;:::-;6744:70;;6837:58;6888:6;6837:58;:::i;:::-;6827:68;;6683:222;6670:1;6667;6663:9;6658:14;;6623:282;;;6627:14;6330:582;;;6218:694;;:::o;6918:736::-;7161:4;7199:3;7188:9;7184:19;7176:27;;7213:71;7281:1;7270:9;7266:17;7257:6;7213:71;:::i;:::-;7294:72;7362:2;7351:9;7347:18;7338:6;7294:72;:::i;:::-;7413:9;7407:4;7403:20;7398:2;7387:9;7383:18;7376:48;7441:78;7514:4;7505:6;7441:78;:::i;:::-;7433:86;;7529:118;7643:2;7632:9;7628:18;7619:6;7529:118;:::i;:::-;6918:736;;;;;;;:::o;7660:79::-;7699:7;7728:5;7717:16;;7660:79;;;:::o;7745:157::-;7850:45;7870:24;7888:5;7870:24;:::i;:::-;7850:45;:::i;:::-;7845:3;7838:58;7745:157;;:::o;7908:94::-;7941:8;7989:5;7985:2;7981:14;7960:35;;7908:94;;;:::o;8008:::-;8047:7;8076:20;8090:5;8076:20;:::i;:::-;8065:31;;8008:94;;;:::o;8108:100::-;8147:7;8176:26;8196:5;8176:26;:::i;:::-;8165:37;;8108:100;;;:::o;8214:157::-;8319:45;8339:24;8357:5;8339:24;:::i;:::-;8319:45;:::i;:::-;8314:3;8307:58;8214:157;;:::o;8377:180::-;8425:77;8422:1;8415:88;8522:4;8519:1;8512:15;8546:4;8543:1;8536:15;8563:320;8607:6;8644:1;8638:4;8634:12;8624:22;;8691:1;8685:4;8681:12;8712:18;8702:81;;8768:4;8760:6;8756:17;8746:27;;8702:81;8830:2;8822:6;8819:14;8799:18;8796:38;8793:84;;8849:18;;:::i;:::-;8793:84;8614:269;8563:320;;;:::o;8889:148::-;8991:11;9028:3;9013:18;;8889:148;;;;:::o;9043:141::-;9092:4;9115:3;9107:11;;9138:3;9135:1;9128:14;9172:4;9169:1;9159:18;9151:26;;9043:141;;;:::o;9214:874::-;9317:3;9354:5;9348:12;9383:36;9409:9;9383:36;:::i;:::-;9435:89;9517:6;9512:3;9435:89;:::i;:::-;9428:96;;9555:1;9544:9;9540:17;9571:1;9566:166;;;;9746:1;9741:341;;;;9533:549;;9566:166;9650:4;9646:9;9635;9631:25;9626:3;9619:38;9712:6;9705:14;9698:22;9690:6;9686:35;9681:3;9677:45;9670:52;;9566:166;;9741:341;9808:38;9840:5;9808:38;:::i;:::-;9868:1;9882:154;9896:6;9893:1;9890:13;9882:154;;;9970:7;9964:14;9960:1;9955:3;9951:11;9944:35;10020:1;10011:7;10007:15;9996:26;;9918:4;9915:1;9911:12;9906:17;;9882:154;;;10065:6;10060:3;10056:16;10049:23;;9748:334;;9533:549;;9321:767;;9214:874;;;;:::o;10094:101::-;10156:6;10184:4;10174:14;;10094:101;;;:::o;10201:161::-;10316:11;10353:3;10338:18;;10201:161;;;;:::o;10368:95::-;10430:4;10453:3;10445:11;;10368:95;;;:::o;10469:116::-;10554:24;10572:5;10554:24;:::i;:::-;10549:3;10542:37;10469:116;;:::o;10591:195::-;10668:10;10689:54;10739:3;10731:6;10689:54;:::i;:::-;10775:4;10770:3;10766:14;10752:28;;10591:195;;;;:::o;10792:102::-;10834:8;10881:5;10878:1;10874:13;10853:34;;10792:102;;;:::o;10900:90::-;10950:7;10979:5;10968:16;;10900:90;;;:::o;10996:167::-;11066:5;11091:66;11122:34;11145:10;11122:34;:::i;:::-;11091:66;:::i;:::-;11082:75;;10996:167;;;:::o;11169:145::-;11224:5;11249:58;11301:4;11295:11;11249:58;:::i;:::-;11240:67;;11169:145;;;:::o;11320:108::-;11385:4;11417;11412:3;11408:14;11400:22;;11320:108;;;:::o;11466:757::-;11617:49;11660:5;11617:49;:::i;:::-;11682:102;11777:6;11772:3;11682:102;:::i;:::-;11675:109;;11808:51;11853:5;11808:51;:::i;:::-;11882:7;11913:1;11898:318;11923:6;11920:1;11917:13;11898:318;;;11993:44;12030:6;11993:44;:::i;:::-;12057:71;12124:3;12109:13;12057:71;:::i;:::-;12050:78;;12151:55;12199:6;12151:55;:::i;:::-;12141:65;;11958:258;11945:1;11942;11938:9;11933:14;;11898:318;;;11902:14;11593:630;;;11466:757;;:::o;12229:778::-;12485:3;12500:75;12571:3;12562:6;12500:75;:::i;:::-;12600:2;12595:3;12591:12;12584:19;;12613:75;12684:3;12675:6;12613:75;:::i;:::-;12713:2;12708:3;12704:12;12697:19;;12733:92;12821:3;12812:6;12733:92;:::i;:::-;12726:99;;12835:118;12949:3;12940:6;12835:118;:::i;:::-;12978:2;12973:3;12969:12;12962:19;;12998:3;12991:10;;12229:778;;;;;;;:::o;13037:831::-;13122:3;13159:5;13153:12;13188:36;13214:9;13188:36;:::i;:::-;13240:71;13304:6;13299:3;13240:71;:::i;:::-;13233:78;;13342:1;13331:9;13327:17;13358:1;13353:164;;;;13531:1;13526:336;;;;13320:542;;13353:164;13437:4;13433:9;13422;13418:25;13413:3;13406:38;13497:6;13490:14;13483:22;13477:4;13473:33;13468:3;13464:43;13457:50;;13353:164;;13526:336;13593:38;13625:5;13593:38;:::i;:::-;13653:1;13667:154;13681:6;13678:1;13675:13;13667:154;;;13755:7;13749:14;13745:1;13740:3;13736:11;13729:35;13805:1;13796:7;13792:15;13781:26;;13703:4;13700:1;13696:12;13691:17;;13667:154;;;13850:1;13845:3;13841:11;13834:18;;13533:329;;13320:542;;13126:742;;13037:831;;;;:::o;13906:713::-;14039:49;14082:5;14039:49;:::i;:::-;14104:84;14181:6;14176:3;14104:84;:::i;:::-;14097:91;;14212:51;14257:5;14212:51;:::i;:::-;14286:7;14317:1;14302:310;14327:6;14324:1;14321:13;14302:310;;;14397:44;14434:6;14397:44;:::i;:::-;14461:63;14520:3;14505:13;14461:63;:::i;:::-;14454:70;;14547:55;14595:6;14547:55;:::i;:::-;14537:65;;14362:250;14349:1;14346;14342:9;14337:14;;14302:310;;;14306:14;14015:604;;;13906:713;;:::o;14625:724::-;14862:4;14900:3;14889:9;14885:19;14877:27;;14914:71;14982:1;14971:9;14967:17;14958:6;14914:71;:::i;:::-;14995:72;15063:2;15052:9;15048:18;15039:6;14995:72;:::i;:::-;15114:9;15108:4;15104:20;15099:2;15088:9;15084:18;15077:48;15142:75;15212:4;15203:6;15142:75;:::i;:::-;15134:83;;15227:115;15338:2;15327:9;15323:18;15314:6;15227:115;:::i;:::-;14625:724;;;;;;;:::o;15355:122::-;15428:24;15446:5;15428:24;:::i;:::-;15421:5;15418:35;15408:63;;15467:1;15464;15457:12;15408:63;15355:122;:::o;15483:143::-;15540:5;15571:6;15565:13;15556:22;;15587:33;15614:5;15587:33;:::i;:::-;15483:143;;;;:::o;15632:104::-;15677:7;15706:24;15724:5;15706:24;:::i;:::-;15695:35;;15632:104;;;:::o;15742:138::-;15823:32;15849:5;15823:32;:::i;:::-;15816:5;15813:43;15803:71;;15870:1;15867;15860:12;15803:71;15742:138;:::o;15886:159::-;15951:5;15982:6;15976:13;15967:22;;15998:41;16033:5;15998:41;:::i;:::-;15886:159;;;;:::o;16051:308::-;16113:4;16203:18;16195:6;16192:30;16189:56;;;16225:18;;:::i;:::-;16189:56;16263:29;16285:6;16263:29;:::i;:::-;16255:37;;16347:4;16341;16337:15;16329:23;;16051:308;;;:::o;16365:434::-;16454:5;16479:66;16495:49;16537:6;16495:49;:::i;:::-;16479:66;:::i;:::-;16470:75;;16568:6;16561:5;16554:21;16606:4;16599:5;16595:16;16644:3;16635:6;16630:3;16626:16;16623:25;16620:112;;;16651:79;;:::i;:::-;16620:112;16741:52;16786:6;16781:3;16776;16741:52;:::i;:::-;16460:339;16365:434;;;;;:::o;16819:355::-;16886:5;16935:3;16928:4;16920:6;16916:17;16912:27;16902:122;;16943:79;;:::i;:::-;16902:122;17053:6;17047:13;17078:90;17164:3;17156:6;17149:4;17141:6;17137:17;17078:90;:::i;:::-;17069:99;;16892:282;16819:355;;;;:::o;17180:249::-;17255:4;17345:18;17337:6;17334:30;17331:56;;;17367:18;;:::i;:::-;17331:56;17417:4;17409:6;17405:17;17397:25;;17180:249;;;:::o;17435:117::-;17544:1;17541;17534:12;17576:665;17681:5;17706:79;17722:62;17777:6;17722:62;:::i;:::-;17706:79;:::i;:::-;17697:88;;17805:5;17858:4;17850:6;17846:17;17838:6;17834:30;17887:3;17879:6;17876:15;17873:122;;;17906:79;;:::i;:::-;17873:122;18021:6;18004:231;18038:6;18033:3;18030:15;18004:231;;;18113:3;18142:48;18186:3;18174:10;18142:48;:::i;:::-;18137:3;18130:61;18220:4;18215:3;18211:14;18204:21;;18080:155;18064:4;18059:3;18055:14;18048:21;;18004:231;;;18008:21;17687:554;;17576:665;;;;;:::o;18265:361::-;18345:5;18394:3;18387:4;18379:6;18375:17;18371:27;18361:122;;18402:79;;:::i;:::-;18361:122;18506:4;18528:92;18616:3;18608:6;18600;18528:92;:::i;:::-;18519:101;;18351:275;18265:361;;;;:::o;18632:1055::-;18770:6;18778;18786;18794;18843:3;18831:9;18822:7;18818:23;18814:33;18811:120;;;18850:79;;:::i;:::-;18811:120;18970:1;18995:64;19051:7;19042:6;19031:9;19027:22;18995:64;:::i;:::-;18985:74;;18941:128;19108:2;19134:72;19198:7;19189:6;19178:9;19174:22;19134:72;:::i;:::-;19124:82;;19079:137;19276:2;19265:9;19261:18;19255:25;19307:18;19299:6;19296:30;19293:117;;;19329:79;;:::i;:::-;19293:117;19434:74;19500:7;19491:6;19480:9;19476:22;19434:74;:::i;:::-;19424:84;;19226:292;19557:2;19583:87;19662:7;19653:6;19642:9;19638:22;19583:87;:::i;:::-;19573:97;;19528:152;18632:1055;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"decode(bytes)":"e5c5e9a3","encode()":"bd14598f","encodePacked()":"53d9c506","encodeWithSelector()":"d1bd363d","encodeWithSignature()":"e4f2a84a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"decode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"dx\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"daddr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"dname\",\"type\":\"string\"},{\"internalType\":\"uint256[2]\",\"name\":\"darray\",\"type\":\"uint256[2]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodePacked\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeWithSelector\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeWithSignature\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/27_ABIEncode/ABIEncode.sol\":\"ABIEncode\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/27_ABIEncode/ABIEncode.sol\":{\"keccak256\":\"0x2c9699f9e7cf8f4e10e6a02212afc868bfbb308817e62ae182b5ef5559fd07b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbc95c6680cdaf2dff1c14ee9128b2d02b490a123f11119f86294e7247f2c18f\",\"dweb:/ipfs/QmTCUE7q3iKNLWWnJbycvzMYLH31se4bSHvU7iQ8iSM6sk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"decode","outputs":[{"internalType":"uint256","name":"dx","type":"uint256"},{"internalType":"address","name":"daddr","type":"address"},{"internalType":"string","name":"dname","type":"string"},{"internalType":"uint256[2]","name":"darray","type":"uint256[2]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encode","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodePacked","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeWithSelector","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeWithSignature","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/27_ABIEncode/ABIEncode.sol":"ABIEncode"},"evmVersion":"prague","libraries":{}},"sources":{"src/27_ABIEncode/ABIEncode.sol":{"keccak256":"0x2c9699f9e7cf8f4e10e6a02212afc868bfbb308817e62ae182b5ef5559fd07b8","urls":["bzz-raw://bbc95c6680cdaf2dff1c14ee9128b2d02b490a123f11119f86294e7247f2c18f","dweb:/ipfs/QmTCUE7q3iKNLWWnJbycvzMYLH31se4bSHvU7iQ8iSM6sk"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file diff --git a/out/AaveV3Flashloan.sol/AaveV3Flashloan.json b/out/AaveV3Flashloan.sol/AaveV3Flashloan.json index 0ee06159..cd746024 100644 --- a/out/AaveV3Flashloan.sol/AaveV3Flashloan.json +++ b/out/AaveV3Flashloan.sol/AaveV3Flashloan.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"aave","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILendingPool"}],"stateMutability":"view"},{"type":"function","name":"executeOperation","inputs":[{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"premium","type":"uint256","internalType":"uint256"},{"name":"initiator","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033","sourceMap":"899:1224:120:-:0;;;1139:64;;;;;;;;;;978:42;1163:4;;:33;;;;;;;;;;;;;;;;;;899:1224;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033","sourceMap":"899:1224:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1422:699;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1232:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1108:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1422:699;1565:4;978:42;1647:26;;:10;:26;;;1639:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;1779:4;1758:26;;:9;:26;;;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:8;1961:1;1953:5;1948:1;1939:6;:10;;;;:::i;:::-;1938:20;;;;:::i;:::-;:24;;;;:::i;:::-;1927:35;;1972:18;2002:3;1993:6;:12;;;;:::i;:::-;1972:33;;1059:42;2043:20;;;978:42;2078:13;2043:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2110:4;2103:11;;;;1422:699;;;;;;;;:::o;1232:125::-;1290:4;;;;;;;;;;;:20;;;1319:4;1059:42;1332:10;1348:1;1290:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1232:125;:::o;1108:24::-;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:1109::-;2243:6;2251;2259;2267;2275;2283;2332:3;2320:9;2311:7;2307:23;2303:33;2300:120;;;2339:79;;:::i;:::-;2300:120;2459:1;2484:53;2529:7;2520:6;2509:9;2505:22;2484:53;:::i;:::-;2474:63;;2430:117;2586:2;2612:53;2657:7;2648:6;2637:9;2633:22;2612:53;:::i;:::-;2602:63;;2557:118;2714:2;2740:53;2785:7;2776:6;2765:9;2761:22;2740:53;:::i;:::-;2730:63;;2685:118;2842:2;2868:53;2913:7;2904:6;2893:9;2889:22;2868:53;:::i;:::-;2858:63;;2813:118;2998:3;2987:9;2983:19;2970:33;3030:18;3022:6;3019:30;3016:117;;;3052:79;;:::i;:::-;3016:117;3165:64;3221:7;3212:6;3201:9;3197:22;3165:64;:::i;:::-;3147:82;;;;2941:298;2137:1109;;;;;;;;:::o;3252:90::-;3286:7;3329:5;3322:13;3315:21;3304:32;;3252:90;;;:::o;3348:109::-;3429:21;3444:5;3429:21;:::i;:::-;3424:3;3417:34;3348:109;;:::o;3463:210::-;3550:4;3588:2;3577:9;3573:18;3565:26;;3601:65;3663:1;3652:9;3648:17;3639:6;3601:65;:::i;:::-;3463:210;;;;:::o;3679:329::-;3738:6;3787:2;3775:9;3766:7;3762:23;3758:32;3755:119;;;3793:79;;:::i;:::-;3755:119;3913:1;3938:53;3983:7;3974:6;3963:9;3959:22;3938:53;:::i;:::-;3928:63;;3884:117;3679:329;;;;:::o;4014:60::-;4042:3;4063:5;4056:12;;4014:60;;;:::o;4080:142::-;4130:9;4163:53;4181:34;4190:24;4208:5;4190:24;:::i;:::-;4181:34;:::i;:::-;4163:53;:::i;:::-;4150:66;;4080:142;;;:::o;4228:126::-;4278:9;4311:37;4342:5;4311:37;:::i;:::-;4298:50;;4228:126;;;:::o;4360:148::-;4432:9;4465:37;4496:5;4465:37;:::i;:::-;4452:50;;4360:148;;;:::o;4514:175::-;4623:59;4676:5;4623:59;:::i;:::-;4618:3;4611:72;4514:175;;:::o;4695:266::-;4810:4;4848:2;4837:9;4833:18;4825:26;;4861:93;4951:1;4940:9;4936:17;4927:6;4861:93;:::i;:::-;4695:266;;;;:::o;4967:169::-;5051:11;5085:6;5080:3;5073:19;5125:4;5120:3;5116:14;5101:29;;4967:169;;;;:::o;5142:164::-;5282:16;5278:1;5270:6;5266:14;5259:40;5142:164;:::o;5312:366::-;5454:3;5475:67;5539:2;5534:3;5475:67;:::i;:::-;5468:74;;5551:93;5640:3;5551:93;:::i;:::-;5669:2;5664:3;5660:12;5653:19;;5312:366;;;:::o;5684:419::-;5850:4;5888:2;5877:9;5873:18;5865:26;;5937:9;5931:4;5927:20;5923:1;5912:9;5908:17;5901:47;5965:131;6091:4;5965:131;:::i;:::-;5957:139;;5684:419;;;:::o;6109:167::-;6249:19;6245:1;6237:6;6233:14;6226:43;6109:167;:::o;6282:366::-;6424:3;6445:67;6509:2;6504:3;6445:67;:::i;:::-;6438:74;;6521:93;6610:3;6521:93;:::i;:::-;6639:2;6634:3;6630:12;6623:19;;6282:366;;;:::o;6654:419::-;6820:4;6858:2;6847:9;6843:18;6835:26;;6907:9;6901:4;6897:20;6893:1;6882:9;6878:17;6871:47;6935:131;7061:4;6935:131;:::i;:::-;6927:139;;6654:419;;;:::o;7079:180::-;7127:77;7124:1;7117:88;7224:4;7221:1;7214:15;7248:4;7245:1;7238:15;7265:410;7305:7;7328:20;7346:1;7328:20;:::i;:::-;7323:25;;7362:20;7380:1;7362:20;:::i;:::-;7357:25;;7417:1;7414;7410:9;7439:30;7457:11;7439:30;:::i;:::-;7428:41;;7618:1;7609:7;7605:15;7602:1;7599:22;7579:1;7572:9;7552:83;7529:139;;7648:18;;:::i;:::-;7529:139;7313:362;7265:410;;;;:::o;7681:180::-;7729:77;7726:1;7719:88;7826:4;7823:1;7816:15;7850:4;7847:1;7840:15;7867:185;7907:1;7924:20;7942:1;7924:20;:::i;:::-;7919:25;;7958:20;7976:1;7958:20;:::i;:::-;7953:25;;7997:1;7987:35;;8002:18;;:::i;:::-;7987:35;8044:1;8041;8037:9;8032:14;;7867:185;;;;:::o;8058:191::-;8098:3;8117:20;8135:1;8117:20;:::i;:::-;8112:25;;8151:20;8169:1;8151:20;:::i;:::-;8146:25;;8194:1;8191;8187:9;8180:16;;8215:3;8212:1;8209:10;8206:36;;;8222:18;;:::i;:::-;8206:36;8058:191;;;;:::o;8255:118::-;8342:24;8360:5;8342:24;:::i;:::-;8337:3;8330:37;8255:118;;:::o;8379:::-;8466:24;8484:5;8466:24;:::i;:::-;8461:3;8454:37;8379:118;;:::o;8503:332::-;8624:4;8662:2;8651:9;8647:18;8639:26;;8675:71;8743:1;8732:9;8728:17;8719:6;8675:71;:::i;:::-;8756:72;8824:2;8813:9;8809:18;8800:6;8756:72;:::i;:::-;8503:332;;;;;:::o;8841:116::-;8911:21;8926:5;8911:21;:::i;:::-;8904:5;8901:32;8891:60;;8947:1;8944;8937:12;8891:60;8841:116;:::o;8963:137::-;9017:5;9048:6;9042:13;9033:22;;9064:30;9088:5;9064:30;:::i;:::-;8963:137;;;;:::o;9106:345::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:61;9426:7;9417:6;9406:9;9402:22;9373:61;:::i;:::-;9363:71;;9319:125;9106:345;;;;:::o;9457:168::-;9540:11;9574:6;9569:3;9562:19;9614:4;9609:3;9605:14;9590:29;;9457:168;;;;:::o;9631:114::-;;:::o;9751:362::-;9892:3;9913:65;9976:1;9971:3;9913:65;:::i;:::-;9906:72;;9987:93;10076:3;9987:93;:::i;:::-;10105:1;10100:3;10096:11;10089:18;;9751:362;;;:::o;10119:85::-;10164:7;10193:5;10182:16;;10119:85;;;:::o;10210:89::-;10246:7;10286:6;10279:5;10275:18;10264:29;;10210:89;;;:::o;10305:156::-;10362:9;10395:60;10412:42;10421:32;10447:5;10421:32;:::i;:::-;10412:42;:::i;:::-;10395:60;:::i;:::-;10382:73;;10305:156;;;:::o;10467:145::-;10561:44;10599:5;10561:44;:::i;:::-;10556:3;10549:57;10467:145;;:::o;10618:873::-;10902:4;10940:3;10929:9;10925:19;10917:27;;10954:71;11022:1;11011:9;11007:17;10998:6;10954:71;:::i;:::-;11035:72;11103:2;11092:9;11088:18;11079:6;11035:72;:::i;:::-;11117;11185:2;11174:9;11170:18;11161:6;11117:72;:::i;:::-;11236:9;11230:4;11226:20;11221:2;11210:9;11206:18;11199:48;11264:130;11389:4;11264:130;:::i;:::-;11256:138;;11404:80;11479:3;11468:9;11464:19;11455:6;11404:80;:::i;:::-;10618:873;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"aave()":"819faf7b","executeOperation(address,uint256,uint256,address,bytes)":"1b11d0ff","flashloan(uint256)":"65b6c4f0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"aave\",\"outputs\":[{\"internalType\":\"contract ILendingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"executeOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":\"AaveV3Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"aave","outputs":[{"internalType":"contract ILendingPool","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/AaveV3Flashloan.sol":"AaveV3Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":120} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"aave","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILendingPool"}],"stateMutability":"view"},{"type":"function","name":"executeOperation","inputs":[{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"premium","type":"uint256","internalType":"uint256"},{"name":"initiator","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033","sourceMap":"899:1224:114:-:0;;;1139:64;;;;;;;;;;978:42;1163:4;;:33;;;;;;;;;;;;;;;;;;899:1224;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033","sourceMap":"899:1224:114:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1422:699;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1232:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1108:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1422:699;1565:4;978:42;1647:26;;:10;:26;;;1639:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;1779:4;1758:26;;:9;:26;;;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:8;1961:1;1953:5;1948:1;1939:6;:10;;;;:::i;:::-;1938:20;;;;:::i;:::-;:24;;;;:::i;:::-;1927:35;;1972:18;2002:3;1993:6;:12;;;;:::i;:::-;1972:33;;1059:42;2043:20;;;978:42;2078:13;2043:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2110:4;2103:11;;;;1422:699;;;;;;;;:::o;1232:125::-;1290:4;;;;;;;;;;;:20;;;1319:4;1059:42;1332:10;1348:1;1290:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1232:125;:::o;1108:24::-;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:1109::-;2243:6;2251;2259;2267;2275;2283;2332:3;2320:9;2311:7;2307:23;2303:33;2300:120;;;2339:79;;:::i;:::-;2300:120;2459:1;2484:53;2529:7;2520:6;2509:9;2505:22;2484:53;:::i;:::-;2474:63;;2430:117;2586:2;2612:53;2657:7;2648:6;2637:9;2633:22;2612:53;:::i;:::-;2602:63;;2557:118;2714:2;2740:53;2785:7;2776:6;2765:9;2761:22;2740:53;:::i;:::-;2730:63;;2685:118;2842:2;2868:53;2913:7;2904:6;2893:9;2889:22;2868:53;:::i;:::-;2858:63;;2813:118;2998:3;2987:9;2983:19;2970:33;3030:18;3022:6;3019:30;3016:117;;;3052:79;;:::i;:::-;3016:117;3165:64;3221:7;3212:6;3201:9;3197:22;3165:64;:::i;:::-;3147:82;;;;2941:298;2137:1109;;;;;;;;:::o;3252:90::-;3286:7;3329:5;3322:13;3315:21;3304:32;;3252:90;;;:::o;3348:109::-;3429:21;3444:5;3429:21;:::i;:::-;3424:3;3417:34;3348:109;;:::o;3463:210::-;3550:4;3588:2;3577:9;3573:18;3565:26;;3601:65;3663:1;3652:9;3648:17;3639:6;3601:65;:::i;:::-;3463:210;;;;:::o;3679:329::-;3738:6;3787:2;3775:9;3766:7;3762:23;3758:32;3755:119;;;3793:79;;:::i;:::-;3755:119;3913:1;3938:53;3983:7;3974:6;3963:9;3959:22;3938:53;:::i;:::-;3928:63;;3884:117;3679:329;;;;:::o;4014:60::-;4042:3;4063:5;4056:12;;4014:60;;;:::o;4080:142::-;4130:9;4163:53;4181:34;4190:24;4208:5;4190:24;:::i;:::-;4181:34;:::i;:::-;4163:53;:::i;:::-;4150:66;;4080:142;;;:::o;4228:126::-;4278:9;4311:37;4342:5;4311:37;:::i;:::-;4298:50;;4228:126;;;:::o;4360:148::-;4432:9;4465:37;4496:5;4465:37;:::i;:::-;4452:50;;4360:148;;;:::o;4514:175::-;4623:59;4676:5;4623:59;:::i;:::-;4618:3;4611:72;4514:175;;:::o;4695:266::-;4810:4;4848:2;4837:9;4833:18;4825:26;;4861:93;4951:1;4940:9;4936:17;4927:6;4861:93;:::i;:::-;4695:266;;;;:::o;4967:169::-;5051:11;5085:6;5080:3;5073:19;5125:4;5120:3;5116:14;5101:29;;4967:169;;;;:::o;5142:164::-;5282:16;5278:1;5270:6;5266:14;5259:40;5142:164;:::o;5312:366::-;5454:3;5475:67;5539:2;5534:3;5475:67;:::i;:::-;5468:74;;5551:93;5640:3;5551:93;:::i;:::-;5669:2;5664:3;5660:12;5653:19;;5312:366;;;:::o;5684:419::-;5850:4;5888:2;5877:9;5873:18;5865:26;;5937:9;5931:4;5927:20;5923:1;5912:9;5908:17;5901:47;5965:131;6091:4;5965:131;:::i;:::-;5957:139;;5684:419;;;:::o;6109:167::-;6249:19;6245:1;6237:6;6233:14;6226:43;6109:167;:::o;6282:366::-;6424:3;6445:67;6509:2;6504:3;6445:67;:::i;:::-;6438:74;;6521:93;6610:3;6521:93;:::i;:::-;6639:2;6634:3;6630:12;6623:19;;6282:366;;;:::o;6654:419::-;6820:4;6858:2;6847:9;6843:18;6835:26;;6907:9;6901:4;6897:20;6893:1;6882:9;6878:17;6871:47;6935:131;7061:4;6935:131;:::i;:::-;6927:139;;6654:419;;;:::o;7079:180::-;7127:77;7124:1;7117:88;7224:4;7221:1;7214:15;7248:4;7245:1;7238:15;7265:410;7305:7;7328:20;7346:1;7328:20;:::i;:::-;7323:25;;7362:20;7380:1;7362:20;:::i;:::-;7357:25;;7417:1;7414;7410:9;7439:30;7457:11;7439:30;:::i;:::-;7428:41;;7618:1;7609:7;7605:15;7602:1;7599:22;7579:1;7572:9;7552:83;7529:139;;7648:18;;:::i;:::-;7529:139;7313:362;7265:410;;;;:::o;7681:180::-;7729:77;7726:1;7719:88;7826:4;7823:1;7816:15;7850:4;7847:1;7840:15;7867:185;7907:1;7924:20;7942:1;7924:20;:::i;:::-;7919:25;;7958:20;7976:1;7958:20;:::i;:::-;7953:25;;7997:1;7987:35;;8002:18;;:::i;:::-;7987:35;8044:1;8041;8037:9;8032:14;;7867:185;;;;:::o;8058:191::-;8098:3;8117:20;8135:1;8117:20;:::i;:::-;8112:25;;8151:20;8169:1;8151:20;:::i;:::-;8146:25;;8194:1;8191;8187:9;8180:16;;8215:3;8212:1;8209:10;8206:36;;;8222:18;;:::i;:::-;8206:36;8058:191;;;;:::o;8255:118::-;8342:24;8360:5;8342:24;:::i;:::-;8337:3;8330:37;8255:118;;:::o;8379:::-;8466:24;8484:5;8466:24;:::i;:::-;8461:3;8454:37;8379:118;;:::o;8503:332::-;8624:4;8662:2;8651:9;8647:18;8639:26;;8675:71;8743:1;8732:9;8728:17;8719:6;8675:71;:::i;:::-;8756:72;8824:2;8813:9;8809:18;8800:6;8756:72;:::i;:::-;8503:332;;;;;:::o;8841:116::-;8911:21;8926:5;8911:21;:::i;:::-;8904:5;8901:32;8891:60;;8947:1;8944;8937:12;8891:60;8841:116;:::o;8963:137::-;9017:5;9048:6;9042:13;9033:22;;9064:30;9088:5;9064:30;:::i;:::-;8963:137;;;;:::o;9106:345::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:61;9426:7;9417:6;9406:9;9402:22;9373:61;:::i;:::-;9363:71;;9319:125;9106:345;;;;:::o;9457:168::-;9540:11;9574:6;9569:3;9562:19;9614:4;9609:3;9605:14;9590:29;;9457:168;;;;:::o;9631:114::-;;:::o;9751:362::-;9892:3;9913:65;9976:1;9971:3;9913:65;:::i;:::-;9906:72;;9987:93;10076:3;9987:93;:::i;:::-;10105:1;10100:3;10096:11;10089:18;;9751:362;;;:::o;10119:85::-;10164:7;10193:5;10182:16;;10119:85;;;:::o;10210:89::-;10246:7;10286:6;10279:5;10275:18;10264:29;;10210:89;;;:::o;10305:156::-;10362:9;10395:60;10412:42;10421:32;10447:5;10421:32;:::i;:::-;10412:42;:::i;:::-;10395:60;:::i;:::-;10382:73;;10305:156;;;:::o;10467:145::-;10561:44;10599:5;10561:44;:::i;:::-;10556:3;10549:57;10467:145;;:::o;10618:873::-;10902:4;10940:3;10929:9;10925:19;10917:27;;10954:71;11022:1;11011:9;11007:17;10998:6;10954:71;:::i;:::-;11035:72;11103:2;11092:9;11088:18;11079:6;11035:72;:::i;:::-;11117;11185:2;11174:9;11170:18;11161:6;11117:72;:::i;:::-;11236:9;11230:4;11226:20;11221:2;11210:9;11206:18;11199:48;11264:130;11389:4;11264:130;:::i;:::-;11256:138;;11404:80;11479:3;11468:9;11464:19;11455:6;11404:80;:::i;:::-;10618:873;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"aave()":"819faf7b","executeOperation(address,uint256,uint256,address,bytes)":"1b11d0ff","flashloan(uint256)":"65b6c4f0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"aave\",\"outputs\":[{\"internalType\":\"contract ILendingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"executeOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":\"AaveV3Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"aave","outputs":[{"internalType":"contract ILendingPool","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/AaveV3Flashloan.sol":"AaveV3Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":114} \ No newline at end of file diff --git a/out/AaveV3Flashloan.sol/IFlashLoanSimpleReceiver.json b/out/AaveV3Flashloan.sol/IFlashLoanSimpleReceiver.json index 25f4a312..e626544e 100644 --- a/out/AaveV3Flashloan.sol/IFlashLoanSimpleReceiver.json +++ b/out/AaveV3Flashloan.sol/IFlashLoanSimpleReceiver.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"executeOperation","inputs":[{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"premium","type":"uint256","internalType":"uint256"},{"name":"initiator","type":"address","internalType":"address"},{"name":"params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"executeOperation(address,uint256,uint256,address,bytes)":"1b11d0ff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"executeOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"executeOperation(address,uint256,uint256,address,bytes)\":{\"details\":\"\\u786e\\u4fdd\\u5408\\u7ea6\\u80fd\\u591f\\u5f52\\u8fd8\\u503a\\u52a1 + \\u989d\\u5916\\u8d39\\u7528\\uff0c\\u4f8b\\u5982\\uff0c\\u5177\\u6709 \\u8db3\\u591f\\u7684\\u8d44\\u91d1\\u6765\\u507f\\u8fd8\\uff0c\\u5e76\\u5df2\\u6279\\u51c6 Pool \\u63d0\\u53d6\\u603b\\u91d1\\u989d\",\"params\":{\"amount\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u6570\\u91cf\",\"asset\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u5730\\u5740\",\"initiator\":\"\\u53d1\\u8d77\\u95ea\\u7535\\u8d37\\u6b3e\\u7684\\u5730\\u5740\",\"params\":\"\\u521d\\u59cb\\u5316\\u95ea\\u7535\\u8d37\\u6b3e\\u65f6\\u4f20\\u9012\\u7684\\u5b57\\u8282\\u7f16\\u7801\\u53c2\\u6570\",\"premium\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u8d39\\u7528\"},\"returns\":{\"_0\":\"\\u5982\\u679c\\u64cd\\u4f5c\\u7684\\u6267\\u884c\\u6210\\u529f\\u5219\\u8fd4\\u56de True\\uff0c\\u5426\\u5219\\u8fd4\\u56de False\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"executeOperation(address,uint256,uint256,address,bytes)\":{\"notice\":\"\\u5728\\u63a5\\u6536\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u540e\\u6267\\u884c\\u64cd\\u4f5c\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":\"IFlashLoanSimpleReceiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"executeOperation(address,uint256,uint256,address,bytes)":{"details":"确保合约能够归还债务 + 额外费用,例如,具有 足够的资金来偿还,并已批准 Pool 提取总金额","params":{"amount":"闪电借款资产的数量","asset":"闪电借款资产的地址","initiator":"发起闪电贷款的地址","params":"初始化闪电贷款时传递的字节编码参数","premium":"闪电借款资产的费用"},"returns":{"_0":"如果操作的执行成功则返回 True,否则返回 False"}}},"version":1},"userdoc":{"kind":"user","methods":{"executeOperation(address,uint256,uint256,address,bytes)":{"notice":"在接收闪电借款资产后执行操作"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/AaveV3Flashloan.sol":"IFlashLoanSimpleReceiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":120} \ No newline at end of file +{"abi":[{"type":"function","name":"executeOperation","inputs":[{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"premium","type":"uint256","internalType":"uint256"},{"name":"initiator","type":"address","internalType":"address"},{"name":"params","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"executeOperation(address,uint256,uint256,address,bytes)":"1b11d0ff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"executeOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"executeOperation(address,uint256,uint256,address,bytes)\":{\"details\":\"\\u786e\\u4fdd\\u5408\\u7ea6\\u80fd\\u591f\\u5f52\\u8fd8\\u503a\\u52a1 + \\u989d\\u5916\\u8d39\\u7528\\uff0c\\u4f8b\\u5982\\uff0c\\u5177\\u6709 \\u8db3\\u591f\\u7684\\u8d44\\u91d1\\u6765\\u507f\\u8fd8\\uff0c\\u5e76\\u5df2\\u6279\\u51c6 Pool \\u63d0\\u53d6\\u603b\\u91d1\\u989d\",\"params\":{\"amount\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u6570\\u91cf\",\"asset\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u5730\\u5740\",\"initiator\":\"\\u53d1\\u8d77\\u95ea\\u7535\\u8d37\\u6b3e\\u7684\\u5730\\u5740\",\"params\":\"\\u521d\\u59cb\\u5316\\u95ea\\u7535\\u8d37\\u6b3e\\u65f6\\u4f20\\u9012\\u7684\\u5b57\\u8282\\u7f16\\u7801\\u53c2\\u6570\",\"premium\":\"\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u7684\\u8d39\\u7528\"},\"returns\":{\"_0\":\"\\u5982\\u679c\\u64cd\\u4f5c\\u7684\\u6267\\u884c\\u6210\\u529f\\u5219\\u8fd4\\u56de True\\uff0c\\u5426\\u5219\\u8fd4\\u56de False\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"executeOperation(address,uint256,uint256,address,bytes)\":{\"notice\":\"\\u5728\\u63a5\\u6536\\u95ea\\u7535\\u501f\\u6b3e\\u8d44\\u4ea7\\u540e\\u6267\\u884c\\u64cd\\u4f5c\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":\"IFlashLoanSimpleReceiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"executeOperation(address,uint256,uint256,address,bytes)":{"details":"确保合约能够归还债务 + 额外费用,例如,具有 足够的资金来偿还,并已批准 Pool 提取总金额","params":{"amount":"闪电借款资产的数量","asset":"闪电借款资产的地址","initiator":"发起闪电贷款的地址","params":"初始化闪电贷款时传递的字节编码参数","premium":"闪电借款资产的费用"},"returns":{"_0":"如果操作的执行成功则返回 True,否则返回 False"}}},"version":1},"userdoc":{"kind":"user","methods":{"executeOperation(address,uint256,uint256,address,bytes)":{"notice":"在接收闪电借款资产后执行操作"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/AaveV3Flashloan.sol":"IFlashLoanSimpleReceiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":114} \ No newline at end of file diff --git a/out/AaveV3Flashloan.t.sol/UniswapV2FlashloanTest.json b/out/AaveV3Flashloan.t.sol/UniswapV2FlashloanTest.json index cf2301cc..a5322959 100644 --- a/out/AaveV3Flashloan.t.sol/UniswapV2FlashloanTest.json +++ b/out/AaveV3Flashloan.t.sol/UniswapV2FlashloanTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b506124fe806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d0565b005b610113610537565b6040516101209190611291565b60405180910390f35b6101316105c2565b60405161013e91906114d1565b60405180910390f35b61014f610746565b60405161015c9190611291565b60405180910390f35b61016d6107d1565b60405161017a9190611291565b60405180910390f35b61018b61085c565b60405161019891906116cf565b60405180910390f35b6101a96109de565b6040516101b69190611772565b60405180910390f35b6101c7610ab2565b6040516101d49190611887565b60405180910390f35b6101e5610bf9565b005b6101ef610dde565b6040516101fc9190611887565b60405180910390f35b61020d610f25565b60405161021a9190611772565b60405180910390f35b61022b610ff9565b60405161023891906118c1565b60405180910390f35b610249611100565b6040516102569190611291565b60405180910390f35b61026761118b565b60405161027491906118c1565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16668e1bc9bf0400006040518363ffffffff1660e01b8152600401610389929190611934565b6020604051808303815f875af11580156103a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c99190611989565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610430575f5ffd5b505af1158015610442573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a091906119c3565b5f604051808303815f87803b1580156104b7575f5ffd5b505af11580156104c9573d5f5f3e3d5ffd5b5050505050565b6040516104dc9061119d565b604051809103905ff0801580156104f5573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161056f575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610726578382905f5260205f2001805461069b90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546106c790611a09565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b50505050508152602001906001019061067e565b5050505081525050815260200190600101906105e5565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077e575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610809575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d5578382905f5260205f2090600202016040518060400160405290815f820180546108af90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546108db90611a09565b80156109265780601f106108fd57610100808354040283529160200191610926565b820191905f5260205f20905b81548152906001019060200180831161090957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109bd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096a5790505b5050505050815250508152602001906001019061087f565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aa9578382905f5260205f20018054610a1e90611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4a90611a09565b8015610a955780601f10610a6c57610100808354040283529160200191610a95565b820191905f5260205f20905b815481529060010190602001808311610a7857829003601f168201915b505050505081526020019060010190610a01565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf0578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b855790505b50505050508152505081526020019060010190610ad5565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c69575f5ffd5b505af1158015610c7b573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d06929190611a72565b6020604051808303815f875af1158015610d22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d469190611989565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610dae91906119c3565b5f604051808303815f87803b158015610dc5575f5ffd5b505af1158015610dd7573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1c578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb15790505b50505050508152505081526020019060010190610e01565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff0578382905f5260205f20018054610f6590611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190611a09565b8015610fdc5780601f10610fb357610100808354040283529160200191610fdc565b820191905f5260205f20905b815481529060010190602001808311610fbf57829003601f168201915b505050505081526020019060010190610f48565b50505050905090565b5f60085f9054906101000a900460ff161561101757600190506110fd565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110b9929190611ab1565b602060405180830381865afa1580156110d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f89190611b02565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611138575b5050505050905090565b601f5f9054906101000a900460ff1681565b61099b80611b2e83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fc826111d3565b9050919050565b61120c816111f2565b82525050565b5f61121d8383611203565b60208301905092915050565b5f602082019050919050565b5f61123f826111aa565b61124981856111b4565b9350611254836111c4565b805f5b8381101561128457815161126b8882611212565b975061127683611229565b925050600181019050611257565b5085935050505092915050565b5f6020820190508181035f8301526112a98184611235565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134582611303565b61134f818561130d565b935061135f81856020860161131d565b6113688161132b565b840191505092915050565b5f61137e838361133b565b905092915050565b5f602082019050919050565b5f61139c826112da565b6113a681856112e4565b9350836020820285016113b8856112f4565b805f5b858110156113f357848403895281516113d48582611373565b94506113df83611386565b925060208a019950506001810190506113bb565b50829750879550505050505092915050565b5f604083015f83015161141a5f860182611203565b50602083015184820360208601526114328282611392565b9150508091505092915050565b5f61144a8383611405565b905092915050565b5f602082019050919050565b5f611468826112b1565b61147281856112bb565b935083602082028501611484856112cb565b805f5b858110156114bf57848403895281516114a0858261143f565b94506114ab83611452565b925060208a01995050600181019050611487565b50829750879550505050505092915050565b5f6020820190508181035f8301526114e9818461145e565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157781611543565b82525050565b5f611588838361156e565b60208301905092915050565b5f602082019050919050565b5f6115aa8261151a565b6115b48185611524565b93506115bf83611534565b805f5b838110156115ef5781516115d6888261157d565b97506115e183611594565b9250506001810190506115c2565b5085935050505092915050565b5f604083015f8301518482035f860152611616828261133b565b9150506020830151848203602086015261163082826115a0565b9150508091505092915050565b5f61164883836115fc565b905092915050565b5f602082019050919050565b5f611666826114f1565b61167081856114fb565b9350836020820285016116828561150b565b805f5b858110156116bd578484038952815161169e858261163d565b94506116a983611650565b925060208a01995050600181019050611685565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e7818461165c565b905092915050565b5f82825260208201905092915050565b5f611709826112da565b61171381856116ef565b935083602082028501611725856112f4565b805f5b8581101561176057848403895281516117418582611373565b945061174c83611386565b925060208a01995050600181019050611728565b50829750879550505050505092915050565b5f6020820190508181035f83015261178a81846116ff565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d05f860182611203565b50602083015184820360208601526117e882826115a0565b9150508091505092915050565b5f61180083836117bb565b905092915050565b5f602082019050919050565b5f61181e82611792565b611828818561179c565b93508360208202850161183a856117ac565b805f5b85811015611875578484038952815161185685826117f5565b945061186183611808565b925060208a0199505060018101905061183d565b50829750879550505050505092915050565b5f6020820190508181035f83015261189f8184611814565b905092915050565b5f8115159050919050565b6118bb816118a7565b82525050565b5f6020820190506118d45f8301846118b2565b92915050565b6118e3816111f2565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191e611919611914846118e9565b6118fb565b6118f2565b9050919050565b61192e81611904565b82525050565b5f6040820190506119475f8301856118da565b6119546020830184611925565b9392505050565b5f5ffd5b611968816118a7565b8114611972575f5ffd5b50565b5f815190506119838161195f565b92915050565b5f6020828403121561199e5761199d61195b565b5b5f6119ab84828501611975565b91505092915050565b6119bd816118f2565b82525050565b5f6020820190506119d65f8301846119b4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2057607f821691505b602082108103611a3357611a326119dc565b5b50919050565b5f819050919050565b5f611a5c611a57611a5284611a39565b6118fb565b6118f2565b9050919050565b611a6c81611a42565b82525050565b5f604082019050611a855f8301856118da565b611a926020830184611a63565b9392505050565b5f819050919050565b611aab81611a99565b82525050565b5f604082019050611ac45f8301856118da565b611ad16020830184611aa2565b9392505050565b611ae181611a99565b8114611aeb575f5ffd5b50565b5f81519050611afc81611ad8565b92915050565b5f60208284031215611b1757611b1661195b565b5b5f611b2484828501611aee565b9150509291505056fe6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033a2646970667358221220d54eb745a0aaf4f9835726350ce2b29614b1c6d9aecc4c41cc61bd0578852c4964736f6c63430008220033","sourceMap":"194:924:124:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;149:42:124;240:32;;;;;;;;;;;;;;;;;;;;194:924;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d0565b005b610113610537565b6040516101209190611291565b60405180910390f35b6101316105c2565b60405161013e91906114d1565b60405180910390f35b61014f610746565b60405161015c9190611291565b60405180910390f35b61016d6107d1565b60405161017a9190611291565b60405180910390f35b61018b61085c565b60405161019891906116cf565b60405180910390f35b6101a96109de565b6040516101b69190611772565b60405180910390f35b6101c7610ab2565b6040516101d49190611887565b60405180910390f35b6101e5610bf9565b005b6101ef610dde565b6040516101fc9190611887565b60405180910390f35b61020d610f25565b60405161021a9190611772565b60405180910390f35b61022b610ff9565b60405161023891906118c1565b60405180910390f35b610249611100565b6040516102569190611291565b60405180910390f35b61026761118b565b60405161027491906118c1565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16668e1bc9bf0400006040518363ffffffff1660e01b8152600401610389929190611934565b6020604051808303815f875af11580156103a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c99190611989565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610430575f5ffd5b505af1158015610442573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a091906119c3565b5f604051808303815f87803b1580156104b7575f5ffd5b505af11580156104c9573d5f5f3e3d5ffd5b5050505050565b6040516104dc9061119d565b604051809103905ff0801580156104f5573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161056f575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610726578382905f5260205f2001805461069b90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546106c790611a09565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b50505050508152602001906001019061067e565b5050505081525050815260200190600101906105e5565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077e575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610809575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d5578382905f5260205f2090600202016040518060400160405290815f820180546108af90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546108db90611a09565b80156109265780601f106108fd57610100808354040283529160200191610926565b820191905f5260205f20905b81548152906001019060200180831161090957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109bd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096a5790505b5050505050815250508152602001906001019061087f565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aa9578382905f5260205f20018054610a1e90611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4a90611a09565b8015610a955780601f10610a6c57610100808354040283529160200191610a95565b820191905f5260205f20905b815481529060010190602001808311610a7857829003601f168201915b505050505081526020019060010190610a01565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf0578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b855790505b50505050508152505081526020019060010190610ad5565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c69575f5ffd5b505af1158015610c7b573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d06929190611a72565b6020604051808303815f875af1158015610d22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d469190611989565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610dae91906119c3565b5f604051808303815f87803b158015610dc5575f5ffd5b505af1158015610dd7573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1c578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb15790505b50505050508152505081526020019060010190610e01565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff0578382905f5260205f20018054610f6590611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190611a09565b8015610fdc5780601f10610fb357610100808354040283529160200191610fdc565b820191905f5260205f20905b815481529060010190602001808311610fbf57829003601f168201915b505050505081526020019060010190610f48565b50505050905090565b5f60085f9054906101000a900460ff161561101757600190506110fd565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110b9929190611ab1565b602060405180830381865afa1580156110d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f89190611b02565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611138575b5050505050905090565b601f5f9054906101000a900460ff1681565b61099b80611b2e83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fc826111d3565b9050919050565b61120c816111f2565b82525050565b5f61121d8383611203565b60208301905092915050565b5f602082019050919050565b5f61123f826111aa565b61124981856111b4565b9350611254836111c4565b805f5b8381101561128457815161126b8882611212565b975061127683611229565b925050600181019050611257565b5085935050505092915050565b5f6020820190508181035f8301526112a98184611235565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134582611303565b61134f818561130d565b935061135f81856020860161131d565b6113688161132b565b840191505092915050565b5f61137e838361133b565b905092915050565b5f602082019050919050565b5f61139c826112da565b6113a681856112e4565b9350836020820285016113b8856112f4565b805f5b858110156113f357848403895281516113d48582611373565b94506113df83611386565b925060208a019950506001810190506113bb565b50829750879550505050505092915050565b5f604083015f83015161141a5f860182611203565b50602083015184820360208601526114328282611392565b9150508091505092915050565b5f61144a8383611405565b905092915050565b5f602082019050919050565b5f611468826112b1565b61147281856112bb565b935083602082028501611484856112cb565b805f5b858110156114bf57848403895281516114a0858261143f565b94506114ab83611452565b925060208a01995050600181019050611487565b50829750879550505050505092915050565b5f6020820190508181035f8301526114e9818461145e565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157781611543565b82525050565b5f611588838361156e565b60208301905092915050565b5f602082019050919050565b5f6115aa8261151a565b6115b48185611524565b93506115bf83611534565b805f5b838110156115ef5781516115d6888261157d565b97506115e183611594565b9250506001810190506115c2565b5085935050505092915050565b5f604083015f8301518482035f860152611616828261133b565b9150506020830151848203602086015261163082826115a0565b9150508091505092915050565b5f61164883836115fc565b905092915050565b5f602082019050919050565b5f611666826114f1565b61167081856114fb565b9350836020820285016116828561150b565b805f5b858110156116bd578484038952815161169e858261163d565b94506116a983611650565b925060208a01995050600181019050611685565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e7818461165c565b905092915050565b5f82825260208201905092915050565b5f611709826112da565b61171381856116ef565b935083602082028501611725856112f4565b805f5b8581101561176057848403895281516117418582611373565b945061174c83611386565b925060208a01995050600181019050611728565b50829750879550505050505092915050565b5f6020820190508181035f83015261178a81846116ff565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d05f860182611203565b50602083015184820360208601526117e882826115a0565b9150508091505092915050565b5f61180083836117bb565b905092915050565b5f602082019050919050565b5f61181e82611792565b611828818561179c565b93508360208202850161183a856117ac565b805f5b85811015611875578484038952815161185685826117f5565b945061186183611808565b925060208a0199505060018101905061183d565b50829750879550505050505092915050565b5f6020820190508181035f83015261189f8184611814565b905092915050565b5f8115159050919050565b6118bb816118a7565b82525050565b5f6020820190506118d45f8301846118b2565b92915050565b6118e3816111f2565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191e611919611914846118e9565b6118fb565b6118f2565b9050919050565b61192e81611904565b82525050565b5f6040820190506119475f8301856118da565b6119546020830184611925565b9392505050565b5f5ffd5b611968816118a7565b8114611972575f5ffd5b50565b5f815190506119838161195f565b92915050565b5f6020828403121561199e5761199d61195b565b5b5f6119ab84828501611975565b91505092915050565b6119bd816118f2565b82525050565b5f6020820190506119d65f8301846119b4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2057607f821691505b602082108103611a3357611a326119dc565b5b50919050565b5f819050919050565b5f611a5c611a57611a5284611a39565b6118fb565b6118f2565b9050919050565b611a6c81611a42565b82525050565b5f604082019050611a855f8301856118da565b611a926020830184611a63565b9392505050565b5f819050919050565b611aab81611a99565b82525050565b5f604082019050611ac45f8301856118da565b611ad16020830184611aa2565b9392505050565b611ae181611a99565b8114611aeb575f5ffd5b50565b5f81519050611afc81611ad8565b92915050565b5f60208284031215611b1757611b1661195b565b5b5f611b2484828501611aee565b9150509291505056fe6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033a2646970667358221220d54eb745a0aaf4f9835726350ce2b29614b1c6d9aecc4c41cc61bd0578852c4964736f6c63430008220033","sourceMap":"194:924:124:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;749:367;;;:::i;:::-;;319:74;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;399:309:124;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;749:367:124;859:4;;;;;;;;;;;:12;;;879:4;859:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:4;;;;;;;;;;;:13;;;918:9;;;;;;;;;;;930:4;896:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;978:19;1000:10;978:32;;351:42:0;1047:15:124;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1074:9;;;;;;;;;;;:19;;;1094:14;1074:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;785:331;749:367::o;319:74::-;365:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;353:9;;:33;;;;;;;;;;;;;;;;;;319:74::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;399:309:124:-;505:4;;;;;;;;;;;:12;;;525:4;505:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;542:4;;;;;;;;;;;:13;;;564:9;;;;;;;;;;;576:4;542:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;624:19;646:10;624:32;;666:9;;;;;;;;;;;:19;;;686:14;666:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:277;399:309::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:101::-;19547:7;19576:5;19565:16;;19486:101;;;:::o;19593:77::-;19630:7;19659:5;19648:16;;19593:77;;;:::o;19676:60::-;19704:3;19725:5;19718:12;;19676:60;;;:::o;19742:190::-;19816:9;19849:77;19867:58;19876:48;19918:5;19876:48;:::i;:::-;19867:58;:::i;:::-;19849:77;:::i;:::-;19836:90;;19742:190;;;:::o;19938:179::-;20049:61;20104:5;20049:61;:::i;:::-;20044:3;20037:74;19938:179;;:::o;20123:380::-;20268:4;20306:2;20295:9;20291:18;20283:26;;20319:71;20387:1;20376:9;20372:17;20363:6;20319:71;:::i;:::-;20400:96;20492:2;20481:9;20477:18;20468:6;20400:96;:::i;:::-;20123:380;;;;;:::o;20590:117::-;20699:1;20696;20689:12;20836:116;20906:21;20921:5;20906:21;:::i;:::-;20899:5;20896:32;20886:60;;20942:1;20939;20932:12;20886:60;20836:116;:::o;20958:137::-;21012:5;21043:6;21037:13;21028:22;;21059:30;21083:5;21059:30;:::i;:::-;20958:137;;;;:::o;21101:345::-;21168:6;21217:2;21205:9;21196:7;21192:23;21188:32;21185:119;;;21223:79;;:::i;:::-;21185:119;21343:1;21368:61;21421:7;21412:6;21401:9;21397:22;21368:61;:::i;:::-;21358:71;;21314:125;21101:345;;;;:::o;21452:118::-;21539:24;21557:5;21539:24;:::i;:::-;21534:3;21527:37;21452:118;;:::o;21576:222::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21720:71;21788:1;21777:9;21773:17;21764:6;21720:71;:::i;:::-;21576:222;;;;:::o;21804:180::-;21852:77;21849:1;21842:88;21949:4;21946:1;21939:15;21973:4;21970:1;21963:15;21990:320;22034:6;22071:1;22065:4;22061:12;22051:22;;22118:1;22112:4;22108:12;22139:18;22129:81;;22195:4;22187:6;22183:17;22173:27;;22129:81;22257:2;22249:6;22246:14;22226:18;22223:38;22220:84;;22276:18;;:::i;:::-;22220:84;22041:269;21990:320;;;:::o;22316:103::-;22379:7;22408:5;22397:16;;22316:103;;;:::o;22425:194::-;22501:9;22534:79;22552:60;22561:50;22605:5;22561:50;:::i;:::-;22552:60;:::i;:::-;22534:79;:::i;:::-;22521:92;;22425:194;;;:::o;22625:183::-;22738:63;22795:5;22738:63;:::i;:::-;22733:3;22726:76;22625:183;;:::o;22814:384::-;22961:4;22999:2;22988:9;22984:18;22976:26;;23012:71;23080:1;23069:9;23065:17;23056:6;23012:71;:::i;:::-;23093:98;23187:2;23176:9;23172:18;23163:6;23093:98;:::i;:::-;22814:384;;;;;:::o;23204:77::-;23241:7;23270:5;23259:16;;23204:77;;;:::o;23287:118::-;23374:24;23392:5;23374:24;:::i;:::-;23369:3;23362:37;23287:118;;:::o;23411:332::-;23532:4;23570:2;23559:9;23555:18;23547:26;;23583:71;23651:1;23640:9;23636:17;23627:6;23583:71;:::i;:::-;23664:72;23732:2;23721:9;23717:18;23708:6;23664:72;:::i;:::-;23411:332;;;;;:::o;23749:122::-;23822:24;23840:5;23822:24;:::i;:::-;23815:5;23812:35;23802:63;;23861:1;23858;23851:12;23802:63;23749:122;:::o;23877:143::-;23934:5;23965:6;23959:13;23950:22;;23981:33;24008:5;23981:33;:::i;:::-;23877:143;;;;:::o;24026:351::-;24096:6;24145:2;24133:9;24124:7;24120:23;24116:32;24113:119;;;24151:79;;:::i;:::-;24113:119;24271:1;24296:64;24352:7;24343:6;24332:9;24328:22;24296:64;:::i;:::-;24286:74;;24242:128;24026:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/AaveV3Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/test/AaveV3Flashloan.t.sol\":{\"keccak256\":\"0xa2e680171871c4b6bda0e0b20ed8bae41e42bdac14065c3a1781e8d3260ea04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3de35fb3cd492b71bc1f313bc439beec414a4748001aeca8f8db125e81d1bfd4\",\"dweb:/ipfs/QmaRgV6H6E6ciCPMur7nYZPrWvsP4vYDTRs8kk4ztYXxin\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/AaveV3Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/test/AaveV3Flashloan.t.sol":{"keccak256":"0xa2e680171871c4b6bda0e0b20ed8bae41e42bdac14065c3a1781e8d3260ea04d","urls":["bzz-raw://3de35fb3cd492b71bc1f313bc439beec414a4748001aeca8f8db125e81d1bfd4","dweb:/ipfs/QmaRgV6H6E6ciCPMur7nYZPrWvsP4vYDTRs8kk4ztYXxin"],"license":"MIT"}},"version":1},"id":124} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b506124fe806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d0565b005b610113610537565b6040516101209190611291565b60405180910390f35b6101316105c2565b60405161013e91906114d1565b60405180910390f35b61014f610746565b60405161015c9190611291565b60405180910390f35b61016d6107d1565b60405161017a9190611291565b60405180910390f35b61018b61085c565b60405161019891906116cf565b60405180910390f35b6101a96109de565b6040516101b69190611772565b60405180910390f35b6101c7610ab2565b6040516101d49190611887565b60405180910390f35b6101e5610bf9565b005b6101ef610dde565b6040516101fc9190611887565b60405180910390f35b61020d610f25565b60405161021a9190611772565b60405180910390f35b61022b610ff9565b60405161023891906118c1565b60405180910390f35b610249611100565b6040516102569190611291565b60405180910390f35b61026761118b565b60405161027491906118c1565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16668e1bc9bf0400006040518363ffffffff1660e01b8152600401610389929190611934565b6020604051808303815f875af11580156103a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c99190611989565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610430575f5ffd5b505af1158015610442573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a091906119c3565b5f604051808303815f87803b1580156104b7575f5ffd5b505af11580156104c9573d5f5f3e3d5ffd5b5050505050565b6040516104dc9061119d565b604051809103905ff0801580156104f5573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161056f575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610726578382905f5260205f2001805461069b90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546106c790611a09565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b50505050508152602001906001019061067e565b5050505081525050815260200190600101906105e5565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077e575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610809575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d5578382905f5260205f2090600202016040518060400160405290815f820180546108af90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546108db90611a09565b80156109265780601f106108fd57610100808354040283529160200191610926565b820191905f5260205f20905b81548152906001019060200180831161090957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109bd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096a5790505b5050505050815250508152602001906001019061087f565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aa9578382905f5260205f20018054610a1e90611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4a90611a09565b8015610a955780601f10610a6c57610100808354040283529160200191610a95565b820191905f5260205f20905b815481529060010190602001808311610a7857829003601f168201915b505050505081526020019060010190610a01565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf0578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b855790505b50505050508152505081526020019060010190610ad5565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c69575f5ffd5b505af1158015610c7b573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d06929190611a72565b6020604051808303815f875af1158015610d22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d469190611989565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610dae91906119c3565b5f604051808303815f87803b158015610dc5575f5ffd5b505af1158015610dd7573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1c578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb15790505b50505050508152505081526020019060010190610e01565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff0578382905f5260205f20018054610f6590611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190611a09565b8015610fdc5780601f10610fb357610100808354040283529160200191610fdc565b820191905f5260205f20905b815481529060010190602001808311610fbf57829003601f168201915b505050505081526020019060010190610f48565b50505050905090565b5f60085f9054906101000a900460ff161561101757600190506110fd565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110b9929190611ab1565b602060405180830381865afa1580156110d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f89190611b02565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611138575b5050505050905090565b601f5f9054906101000a900460ff1681565b61099b80611b2e83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fc826111d3565b9050919050565b61120c816111f2565b82525050565b5f61121d8383611203565b60208301905092915050565b5f602082019050919050565b5f61123f826111aa565b61124981856111b4565b9350611254836111c4565b805f5b8381101561128457815161126b8882611212565b975061127683611229565b925050600181019050611257565b5085935050505092915050565b5f6020820190508181035f8301526112a98184611235565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134582611303565b61134f818561130d565b935061135f81856020860161131d565b6113688161132b565b840191505092915050565b5f61137e838361133b565b905092915050565b5f602082019050919050565b5f61139c826112da565b6113a681856112e4565b9350836020820285016113b8856112f4565b805f5b858110156113f357848403895281516113d48582611373565b94506113df83611386565b925060208a019950506001810190506113bb565b50829750879550505050505092915050565b5f604083015f83015161141a5f860182611203565b50602083015184820360208601526114328282611392565b9150508091505092915050565b5f61144a8383611405565b905092915050565b5f602082019050919050565b5f611468826112b1565b61147281856112bb565b935083602082028501611484856112cb565b805f5b858110156114bf57848403895281516114a0858261143f565b94506114ab83611452565b925060208a01995050600181019050611487565b50829750879550505050505092915050565b5f6020820190508181035f8301526114e9818461145e565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157781611543565b82525050565b5f611588838361156e565b60208301905092915050565b5f602082019050919050565b5f6115aa8261151a565b6115b48185611524565b93506115bf83611534565b805f5b838110156115ef5781516115d6888261157d565b97506115e183611594565b9250506001810190506115c2565b5085935050505092915050565b5f604083015f8301518482035f860152611616828261133b565b9150506020830151848203602086015261163082826115a0565b9150508091505092915050565b5f61164883836115fc565b905092915050565b5f602082019050919050565b5f611666826114f1565b61167081856114fb565b9350836020820285016116828561150b565b805f5b858110156116bd578484038952815161169e858261163d565b94506116a983611650565b925060208a01995050600181019050611685565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e7818461165c565b905092915050565b5f82825260208201905092915050565b5f611709826112da565b61171381856116ef565b935083602082028501611725856112f4565b805f5b8581101561176057848403895281516117418582611373565b945061174c83611386565b925060208a01995050600181019050611728565b50829750879550505050505092915050565b5f6020820190508181035f83015261178a81846116ff565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d05f860182611203565b50602083015184820360208601526117e882826115a0565b9150508091505092915050565b5f61180083836117bb565b905092915050565b5f602082019050919050565b5f61181e82611792565b611828818561179c565b93508360208202850161183a856117ac565b805f5b85811015611875578484038952815161185685826117f5565b945061186183611808565b925060208a0199505060018101905061183d565b50829750879550505050505092915050565b5f6020820190508181035f83015261189f8184611814565b905092915050565b5f8115159050919050565b6118bb816118a7565b82525050565b5f6020820190506118d45f8301846118b2565b92915050565b6118e3816111f2565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191e611919611914846118e9565b6118fb565b6118f2565b9050919050565b61192e81611904565b82525050565b5f6040820190506119475f8301856118da565b6119546020830184611925565b9392505050565b5f5ffd5b611968816118a7565b8114611972575f5ffd5b50565b5f815190506119838161195f565b92915050565b5f6020828403121561199e5761199d61195b565b5b5f6119ab84828501611975565b91505092915050565b6119bd816118f2565b82525050565b5f6020820190506119d65f8301846119b4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2057607f821691505b602082108103611a3357611a326119dc565b5b50919050565b5f819050919050565b5f611a5c611a57611a5284611a39565b6118fb565b6118f2565b9050919050565b611a6c81611a42565b82525050565b5f604082019050611a855f8301856118da565b611a926020830184611a63565b9392505050565b5f819050919050565b611aab81611a99565b82525050565b5f604082019050611ac45f8301856118da565b611ad16020830184611aa2565b9392505050565b611ae181611a99565b8114611aeb575f5ffd5b50565b5f81519050611afc81611ad8565b92915050565b5f60208284031215611b1757611b1661195b565b5b5f611b2484828501611aee565b9150509291505056fe6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033a2646970667358221220d54eb745a0aaf4f9835726350ce2b29614b1c6d9aecc4c41cc61bd0578852c4964736f6c63430008220033","sourceMap":"194:924:118:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;149:42:118;240:32;;;;;;;;;;;;;;;;;;;;194:924;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d0565b005b610113610537565b6040516101209190611291565b60405180910390f35b6101316105c2565b60405161013e91906114d1565b60405180910390f35b61014f610746565b60405161015c9190611291565b60405180910390f35b61016d6107d1565b60405161017a9190611291565b60405180910390f35b61018b61085c565b60405161019891906116cf565b60405180910390f35b6101a96109de565b6040516101b69190611772565b60405180910390f35b6101c7610ab2565b6040516101d49190611887565b60405180910390f35b6101e5610bf9565b005b6101ef610dde565b6040516101fc9190611887565b60405180910390f35b61020d610f25565b60405161021a9190611772565b60405180910390f35b61022b610ff9565b60405161023891906118c1565b60405180910390f35b610249611100565b6040516102569190611291565b60405180910390f35b61026761118b565b60405161027491906118c1565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16668e1bc9bf0400006040518363ffffffff1660e01b8152600401610389929190611934565b6020604051808303815f875af11580156103a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c99190611989565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610430575f5ffd5b505af1158015610442573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a091906119c3565b5f604051808303815f87803b1580156104b7575f5ffd5b505af11580156104c9573d5f5f3e3d5ffd5b5050505050565b6040516104dc9061119d565b604051809103905ff0801580156104f5573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161056f575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610726578382905f5260205f2001805461069b90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546106c790611a09565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b50505050508152602001906001019061067e565b5050505081525050815260200190600101906105e5565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077e575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610809575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d5578382905f5260205f2090600202016040518060400160405290815f820180546108af90611a09565b80601f01602080910402602001604051908101604052809291908181526020018280546108db90611a09565b80156109265780601f106108fd57610100808354040283529160200191610926565b820191905f5260205f20905b81548152906001019060200180831161090957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109bd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096a5790505b5050505050815250508152602001906001019061087f565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aa9578382905f5260205f20018054610a1e90611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4a90611a09565b8015610a955780601f10610a6c57610100808354040283529160200191610a95565b820191905f5260205f20905b815481529060010190602001808311610a7857829003601f168201915b505050505081526020019060010190610a01565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf0578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b855790505b50505050508152505081526020019060010190610ad5565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c69575f5ffd5b505af1158015610c7b573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d06929190611a72565b6020604051808303815f875af1158015610d22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d469190611989565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610dae91906119c3565b5f604051808303815f87803b158015610dc5575f5ffd5b505af1158015610dd7573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1c578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb15790505b50505050508152505081526020019060010190610e01565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff0578382905f5260205f20018054610f6590611a09565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190611a09565b8015610fdc5780601f10610fb357610100808354040283529160200191610fdc565b820191905f5260205f20905b815481529060010190602001808311610fbf57829003601f168201915b505050505081526020019060010190610f48565b50505050905090565b5f60085f9054906101000a900460ff161561101757600190506110fd565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110b9929190611ab1565b602060405180830381865afa1580156110d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f89190611b02565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611138575b5050505050905090565b601f5f9054906101000a900460ff1681565b61099b80611b2e83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fc826111d3565b9050919050565b61120c816111f2565b82525050565b5f61121d8383611203565b60208301905092915050565b5f602082019050919050565b5f61123f826111aa565b61124981856111b4565b9350611254836111c4565b805f5b8381101561128457815161126b8882611212565b975061127683611229565b925050600181019050611257565b5085935050505092915050565b5f6020820190508181035f8301526112a98184611235565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134582611303565b61134f818561130d565b935061135f81856020860161131d565b6113688161132b565b840191505092915050565b5f61137e838361133b565b905092915050565b5f602082019050919050565b5f61139c826112da565b6113a681856112e4565b9350836020820285016113b8856112f4565b805f5b858110156113f357848403895281516113d48582611373565b94506113df83611386565b925060208a019950506001810190506113bb565b50829750879550505050505092915050565b5f604083015f83015161141a5f860182611203565b50602083015184820360208601526114328282611392565b9150508091505092915050565b5f61144a8383611405565b905092915050565b5f602082019050919050565b5f611468826112b1565b61147281856112bb565b935083602082028501611484856112cb565b805f5b858110156114bf57848403895281516114a0858261143f565b94506114ab83611452565b925060208a01995050600181019050611487565b50829750879550505050505092915050565b5f6020820190508181035f8301526114e9818461145e565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157781611543565b82525050565b5f611588838361156e565b60208301905092915050565b5f602082019050919050565b5f6115aa8261151a565b6115b48185611524565b93506115bf83611534565b805f5b838110156115ef5781516115d6888261157d565b97506115e183611594565b9250506001810190506115c2565b5085935050505092915050565b5f604083015f8301518482035f860152611616828261133b565b9150506020830151848203602086015261163082826115a0565b9150508091505092915050565b5f61164883836115fc565b905092915050565b5f602082019050919050565b5f611666826114f1565b61167081856114fb565b9350836020820285016116828561150b565b805f5b858110156116bd578484038952815161169e858261163d565b94506116a983611650565b925060208a01995050600181019050611685565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e7818461165c565b905092915050565b5f82825260208201905092915050565b5f611709826112da565b61171381856116ef565b935083602082028501611725856112f4565b805f5b8581101561176057848403895281516117418582611373565b945061174c83611386565b925060208a01995050600181019050611728565b50829750879550505050505092915050565b5f6020820190508181035f83015261178a81846116ff565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d05f860182611203565b50602083015184820360208601526117e882826115a0565b9150508091505092915050565b5f61180083836117bb565b905092915050565b5f602082019050919050565b5f61181e82611792565b611828818561179c565b93508360208202850161183a856117ac565b805f5b85811015611875578484038952815161185685826117f5565b945061186183611808565b925060208a0199505060018101905061183d565b50829750879550505050505092915050565b5f6020820190508181035f83015261189f8184611814565b905092915050565b5f8115159050919050565b6118bb816118a7565b82525050565b5f6020820190506118d45f8301846118b2565b92915050565b6118e3816111f2565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191e611919611914846118e9565b6118fb565b6118f2565b9050919050565b61192e81611904565b82525050565b5f6040820190506119475f8301856118da565b6119546020830184611925565b9392505050565b5f5ffd5b611968816118a7565b8114611972575f5ffd5b50565b5f815190506119838161195f565b92915050565b5f6020828403121561199e5761199d61195b565b5b5f6119ab84828501611975565b91505092915050565b6119bd816118f2565b82525050565b5f6020820190506119d65f8301846119b4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2057607f821691505b602082108103611a3357611a326119dc565b5b50919050565b5f819050919050565b5f611a5c611a57611a5284611a39565b6118fb565b6118f2565b9050919050565b611a6c81611a42565b82525050565b5f604082019050611a855f8301856118da565b611a926020830184611a63565b9392505050565b5f819050919050565b611aab81611a99565b82525050565b5f604082019050611ac45f8301856118da565b611ad16020830184611aa2565b9392505050565b611ae181611a99565b8114611aeb575f5ffd5b50565b5f81519050611afc81611ad8565b92915050565b5f60208284031215611b1757611b1661195b565b5b5f611b2484828501611aee565b9150509291505056fe6080604052348015600e575f5ffd5b507387870bca3f3fd6335c3f4ce8392d69350b4fa4e25f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061092c8061006f5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631b11d0ff1461004357806365b6c4f014610073578063819faf7b1461008f575b5f5ffd5b61005d60048036038101906100589190610447565b6100ad565b60405161006a91906104f7565b60405180910390f35b61008d60048036038101906100889190610510565b61028a565b005b61009761032d565b6040516100a49190610596565b60405180910390f35b5f7387870bca3f3fd6335c3f4ce8392d69350b4fa4e273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610609565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019590610671565b60405180910390fd5b5f60016127106005896101b191906106bc565b6101bb919061072a565b6101c5919061075a565b90505f81886101d4919061075a565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663095ea7b37387870bca3f3fd6335c3f4ce8392d69350b4fa4e2836040518363ffffffff1660e01b81526004016102399291906107ab565b6020604051808303815f875af1158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027991906107fc565b506001925050509695505050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2845f6040518563ffffffff1660e01b81526004016102fd94939291906108a0565b5f604051808303815f87803b158015610314575f5ffd5b505af1158015610326573d5f5f3e3d5ffd5b5050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038282610359565b9050919050565b61039281610378565b811461039c575f5ffd5b50565b5f813590506103ad81610389565b92915050565b5f819050919050565b6103c5816103b3565b81146103cf575f5ffd5b50565b5f813590506103e0816103bc565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610407576104066103e6565b5b8235905067ffffffffffffffff811115610424576104236103ea565b5b6020830191508360018202830111156104405761043f6103ee565b5b9250929050565b5f5f5f5f5f5f60a0878903121561046157610460610351565b5b5f61046e89828a0161039f565b965050602061047f89828a016103d2565b955050604061049089828a016103d2565b94505060606104a189828a0161039f565b935050608087013567ffffffffffffffff8111156104c2576104c1610355565b5b6104ce89828a016103f2565b92509250509295509295509295565b5f8115159050919050565b6104f1816104dd565b82525050565b5f60208201905061050a5f8301846104e8565b92915050565b5f6020828403121561052557610524610351565b5b5f610532848285016103d2565b91505092915050565b5f819050919050565b5f61055e61055961055484610359565b61053b565b610359565b9050919050565b5f61056f82610544565b9050919050565b5f61058082610565565b9050919050565b61059081610576565b82525050565b5f6020820190506105a95f830184610587565b92915050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6105f3600e836105af565b91506105fe826105bf565b602082019050919050565b5f6020820190508181035f830152610620816105e7565b9050919050565b7f696e76616c696420696e69746961746f720000000000000000000000000000005f82015250565b5f61065b6011836105af565b915061066682610627565b602082019050919050565b5f6020820190508181035f8301526106888161064f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106c6826103b3565b91506106d1836103b3565b92508282026106df816103b3565b915082820484148315176106f6576106f561068f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610734826103b3565b915061073f836103b3565b92508261074f5761074e6106fd565b5b828204905092915050565b5f610764826103b3565b915061076f836103b3565b92508282019050808211156107875761078661068f565b5b92915050565b61079681610378565b82525050565b6107a5816103b3565b82525050565b5f6040820190506107be5f83018561078d565b6107cb602083018461079c565b9392505050565b6107db816104dd565b81146107e5575f5ffd5b50565b5f815190506107f6816107d2565b92915050565b5f6020828403121561081157610810610351565b5b5f61081e848285016107e8565b91505092915050565b5f82825260208201905092915050565b50565b5f6108455f83610827565b915061085082610837565b5f82019050919050565b5f819050919050565b5f61ffff82169050919050565b5f61088a6108856108808461085a565b61053b565b610863565b9050919050565b61089a81610870565b82525050565b5f60a0820190506108b35f83018761078d565b6108c0602083018661078d565b6108cd604083018561079c565b81810360608301526108de8161083a565b90506108ed6080830184610891565b9594505050505056fea2646970667358221220e6b34e438beb415352b1eb2c7c01df5313f6270d105296305b1bb37c8784460464736f6c63430008220033a2646970667358221220d54eb745a0aaf4f9835726350ce2b29614b1c6d9aecc4c41cc61bd0578852c4964736f6c63430008220033","sourceMap":"194:924:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;749:367;;;:::i;:::-;;319:74;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;399:309:118;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;749:367:118;859:4;;;;;;;;;;;:12;;;879:4;859:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:4;;;;;;;;;;;:13;;;918:9;;;;;;;;;;;930:4;896:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;978:19;1000:10;978:32;;351:42:0;1047:15:118;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1074:9;;;;;;;;;;;:19;;;1094:14;1074:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;785:331;749:367::o;319:74::-;365:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;353:9;;:33;;;;;;;;;;;;;;;;;;319:74::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;399:309:118:-;505:4;;;;;;;;;;;:12;;;525:4;505:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;542:4;;;;;;;;;;;:13;;;564:9;;;;;;;;;;;576:4;542:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;624:19;646:10;624:32;;666:9;;;;;;;;;;;:19;;;686:14;666:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:277;399:309::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:101::-;19547:7;19576:5;19565:16;;19486:101;;;:::o;19593:77::-;19630:7;19659:5;19648:16;;19593:77;;;:::o;19676:60::-;19704:3;19725:5;19718:12;;19676:60;;;:::o;19742:190::-;19816:9;19849:77;19867:58;19876:48;19918:5;19876:48;:::i;:::-;19867:58;:::i;:::-;19849:77;:::i;:::-;19836:90;;19742:190;;;:::o;19938:179::-;20049:61;20104:5;20049:61;:::i;:::-;20044:3;20037:74;19938:179;;:::o;20123:380::-;20268:4;20306:2;20295:9;20291:18;20283:26;;20319:71;20387:1;20376:9;20372:17;20363:6;20319:71;:::i;:::-;20400:96;20492:2;20481:9;20477:18;20468:6;20400:96;:::i;:::-;20123:380;;;;;:::o;20590:117::-;20699:1;20696;20689:12;20836:116;20906:21;20921:5;20906:21;:::i;:::-;20899:5;20896:32;20886:60;;20942:1;20939;20932:12;20886:60;20836:116;:::o;20958:137::-;21012:5;21043:6;21037:13;21028:22;;21059:30;21083:5;21059:30;:::i;:::-;20958:137;;;;:::o;21101:345::-;21168:6;21217:2;21205:9;21196:7;21192:23;21188:32;21185:119;;;21223:79;;:::i;:::-;21185:119;21343:1;21368:61;21421:7;21412:6;21401:9;21397:22;21368:61;:::i;:::-;21358:71;;21314:125;21101:345;;;;:::o;21452:118::-;21539:24;21557:5;21539:24;:::i;:::-;21534:3;21527:37;21452:118;;:::o;21576:222::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21720:71;21788:1;21777:9;21773:17;21764:6;21720:71;:::i;:::-;21576:222;;;;:::o;21804:180::-;21852:77;21849:1;21842:88;21949:4;21946:1;21939:15;21973:4;21970:1;21963:15;21990:320;22034:6;22071:1;22065:4;22061:12;22051:22;;22118:1;22112:4;22108:12;22139:18;22129:81;;22195:4;22187:6;22183:17;22173:27;;22129:81;22257:2;22249:6;22246:14;22226:18;22223:38;22220:84;;22276:18;;:::i;:::-;22220:84;22041:269;21990:320;;;:::o;22316:103::-;22379:7;22408:5;22397:16;;22316:103;;;:::o;22425:194::-;22501:9;22534:79;22552:60;22561:50;22605:5;22561:50;:::i;:::-;22552:60;:::i;:::-;22534:79;:::i;:::-;22521:92;;22425:194;;;:::o;22625:183::-;22738:63;22795:5;22738:63;:::i;:::-;22733:3;22726:76;22625:183;;:::o;22814:384::-;22961:4;22999:2;22988:9;22984:18;22976:26;;23012:71;23080:1;23069:9;23065:17;23056:6;23012:71;:::i;:::-;23093:98;23187:2;23176:9;23172:18;23163:6;23093:98;:::i;:::-;22814:384;;;;;:::o;23204:77::-;23241:7;23270:5;23259:16;;23204:77;;;:::o;23287:118::-;23374:24;23392:5;23374:24;:::i;:::-;23369:3;23362:37;23287:118;;:::o;23411:332::-;23532:4;23570:2;23559:9;23555:18;23547:26;;23583:71;23651:1;23640:9;23636:17;23627:6;23583:71;:::i;:::-;23664:72;23732:2;23721:9;23717:18;23708:6;23664:72;:::i;:::-;23411:332;;;;;:::o;23749:122::-;23822:24;23840:5;23822:24;:::i;:::-;23815:5;23812:35;23802:63;;23861:1;23858;23851:12;23802:63;23749:122;:::o;23877:143::-;23934:5;23965:6;23959:13;23950:22;;23981:33;24008:5;23981:33;:::i;:::-;23877:143;;;;:::o;24026:351::-;24096:6;24145:2;24133:9;24124:7;24120:23;24116:32;24113:119;;;24151:79;;:::i;:::-;24113:119;24271:1;24296:64;24352:7;24343:6;24332:9;24328:22;24296:64;:::i;:::-;24286:74;;24242:128;24026:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/AaveV3Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/AaveV3Flashloan.sol\":{\"keccak256\":\"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6\",\"dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/test/AaveV3Flashloan.t.sol\":{\"keccak256\":\"0xa2e680171871c4b6bda0e0b20ed8bae41e42bdac14065c3a1781e8d3260ea04d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3de35fb3cd492b71bc1f313bc439beec414a4748001aeca8f8db125e81d1bfd4\",\"dweb:/ipfs/QmaRgV6H6E6ciCPMur7nYZPrWvsP4vYDTRs8kk4ztYXxin\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/AaveV3Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/AaveV3Flashloan.sol":{"keccak256":"0x61090dad9f54bff20ae111b2ae1b0128edba77be6084f0c9c5e3b81e7793704a","urls":["bzz-raw://26b84c57d72b499b698629e1522b3bff5c17ae3c5a5ad66a3fdc25cc3722e1f6","dweb:/ipfs/QmYhfjmUbsDtPEcoLCeJjrfE1juxhzxQ3TmseRDSV7y9rP"],"license":"MIT"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/test/AaveV3Flashloan.t.sol":{"keccak256":"0xa2e680171871c4b6bda0e0b20ed8bae41e42bdac14065c3a1781e8d3260ea04d","urls":["bzz-raw://3de35fb3cd492b71bc1f313bc439beec414a4748001aeca8f8db125e81d1bfd4","dweb:/ipfs/QmaRgV6H6E6ciCPMur7nYZPrWvsP4vYDTRs8kk4ztYXxin"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file diff --git a/out/AbstractDemo.sol/Base.json b/out/AbstractDemo.sol/Base.json index 103e1d58..2518ffe4 100644 --- a/out/AbstractDemo.sol/Base.json +++ b/out/AbstractDemo.sol/Base.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getAlias","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAlias()":"615fb51b","name()":"06fdde03"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAlias\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/AbstractDemo.sol\":\"Base\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/AbstractDemo.sol\":{\"keccak256\":\"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15\",\"dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getAlias","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/AbstractDemo.sol":"Base"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/AbstractDemo.sol":{"keccak256":"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066","urls":["bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15","dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file +{"abi":[{"type":"function","name":"getAlias","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getAlias()":"615fb51b","name()":"06fdde03"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAlias\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/AbstractDemo.sol\":\"Base\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/AbstractDemo.sol\":{\"keccak256\":\"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15\",\"dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getAlias","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/AbstractDemo.sol":"Base"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/AbstractDemo.sol":{"keccak256":"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066","urls":["bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15","dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file diff --git a/out/AbstractDemo.sol/BaseImpl.json b/out/AbstractDemo.sol/BaseImpl.json index 1c34c57d..102c21ff 100644 --- a/out/AbstractDemo.sol/BaseImpl.json +++ b/out/AbstractDemo.sol/BaseImpl.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getAlias","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060400160405280600481526020017f42617365000000000000000000000000000000000000000000000000000000008152505f908161004791906102a7565b50348015610053575f5ffd5b50610376565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d457607f821691505b6020821081036100e7576100e6610090565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010e565b610153868361010e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019761019261018d8461016b565b610174565b61016b565b9050919050565b5f819050919050565b6101b08361017d565b6101c46101bc8261019e565b84845461011a565b825550505050565b5f5f905090565b6101db6101cc565b6101e68184846101a7565b505050565b5f5b8281101561020c576102015f8284016101d3565b6001810190506101ed565b505050565b601f82111561025f578282111561025e5761022b816100ed565b610234836100ff565b61023d856100ff565b602086101561024a575f90505b808301610259828403826101eb565b505050505b5b505050565b5f82821c905092915050565b5f61027f5f1984600802610264565b1980831691505092915050565b5f6102978383610270565b9150826002028217905092915050565b6102b082610059565b67ffffffffffffffff8111156102c9576102c8610063565b5b6102d382546100bd565b6102de828285610211565b5f60209050601f83116001811461030f575f84156102fd578287015190505b610307858261028c565b86555061036e565b601f19841661031d866100ed565b5f5b828110156103445784890151825560018201915060208501945060208101905061031f565b86831015610361578489015161035d601f891682610270565b8355505b6001600288020188555050505b505050505050565b61025f806103835f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806306fdde0314610038578063615fb51b14610056575b5f5ffd5b610040610074565b60405161004d91906101ac565b60405180910390f35b61005e6100ff565b60405161006b91906101ac565b60405180910390f35b5f8054610080906101f9565b80601f01602080910402602001604051908101604052809291908181526020018280546100ac906101f9565b80156100f75780601f106100ce576101008083540402835291602001916100f7565b820191905f5260205f20905b8154815290600101906020018083116100da57829003601f168201915b505050505081565b60606040518060400160405280600881526020017f42617365496d706c000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61017e8261013c565b6101888185610146565b9350610198818560208601610156565b6101a181610164565b840191505092915050565b5f6020820190508181035f8301526101c48184610174565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061021057607f821691505b602082108103610223576102226101cc565b5b5091905056fea264697066735822122038831d2f7ccf1163b9d4bc99d9bd0e553e4cc6240378a774f0e69ab50c94e4aa64736f6c63430008220033","sourceMap":"185:130:59:-:0;;;85:27;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;185:130;;;;;;;;;;;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;185:130:59:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806306fdde0314610038578063615fb51b14610056575b5f5ffd5b610040610074565b60405161004d91906101ac565b60405180910390f35b61005e6100ff565b60405161006b91906101ac565b60405180910390f35b5f8054610080906101f9565b80601f01602080910402602001604051908101604052809291908181526020018280546100ac906101f9565b80156100f75780601f106100ce576101008083540402835291602001916100f7565b820191905f5260205f20905b8154815290600101906020018083116100da57829003601f168201915b505050505081565b60606040518060400160405280600881526020017f42617365496d706c000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61017e8261013c565b6101888185610146565b9350610198818560208601610156565b6101a181610164565b840191505092915050565b5f6020820190508181035f8301526101c48184610174565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061021057607f821691505b602082108103610223576102226101cc565b5b5091905056fea264697066735822122038831d2f7ccf1163b9d4bc99d9bd0e553e4cc6240378a774f0e69ab50c94e4aa64736f6c63430008220033","sourceMap":"185:130:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;85:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;216:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;216:97::-;265:13;289:17;;;;;;;;;;;;;;;;;;;216:97;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:180::-;1290:77;1287:1;1280:88;1387:4;1384:1;1377:15;1411:4;1408:1;1401:15;1428:320;1472:6;1509:1;1503:4;1499:12;1489:22;;1556:1;1550:4;1546:12;1577:18;1567:81;;1633:4;1625:6;1621:17;1611:27;;1567:81;1695:2;1687:6;1684:14;1664:18;1661:38;1658:84;;1714:18;;:::i;:::-;1658:84;1479:269;1428:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"getAlias()":"615fb51b","name()":"06fdde03"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAlias\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/AbstractDemo.sol\":\"BaseImpl\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/AbstractDemo.sol\":{\"keccak256\":\"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15\",\"dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getAlias","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/AbstractDemo.sol":"BaseImpl"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/AbstractDemo.sol":{"keccak256":"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066","urls":["bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15","dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file +{"abi":[{"type":"function","name":"getAlias","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060400160405280600481526020017f42617365000000000000000000000000000000000000000000000000000000008152505f908161004791906102a7565b50348015610053575f5ffd5b50610376565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d457607f821691505b6020821081036100e7576100e6610090565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010e565b610153868361010e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019761019261018d8461016b565b610174565b61016b565b9050919050565b5f819050919050565b6101b08361017d565b6101c46101bc8261019e565b84845461011a565b825550505050565b5f5f905090565b6101db6101cc565b6101e68184846101a7565b505050565b5f5b8281101561020c576102015f8284016101d3565b6001810190506101ed565b505050565b601f82111561025f578282111561025e5761022b816100ed565b610234836100ff565b61023d856100ff565b602086101561024a575f90505b808301610259828403826101eb565b505050505b5b505050565b5f82821c905092915050565b5f61027f5f1984600802610264565b1980831691505092915050565b5f6102978383610270565b9150826002028217905092915050565b6102b082610059565b67ffffffffffffffff8111156102c9576102c8610063565b5b6102d382546100bd565b6102de828285610211565b5f60209050601f83116001811461030f575f84156102fd578287015190505b610307858261028c565b86555061036e565b601f19841661031d866100ed565b5f5b828110156103445784890151825560018201915060208501945060208101905061031f565b86831015610361578489015161035d601f891682610270565b8355505b6001600288020188555050505b505050505050565b61025f806103835f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806306fdde0314610038578063615fb51b14610056575b5f5ffd5b610040610074565b60405161004d91906101ac565b60405180910390f35b61005e6100ff565b60405161006b91906101ac565b60405180910390f35b5f8054610080906101f9565b80601f01602080910402602001604051908101604052809291908181526020018280546100ac906101f9565b80156100f75780601f106100ce576101008083540402835291602001916100f7565b820191905f5260205f20905b8154815290600101906020018083116100da57829003601f168201915b505050505081565b60606040518060400160405280600881526020017f42617365496d706c000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61017e8261013c565b6101888185610146565b9350610198818560208601610156565b6101a181610164565b840191505092915050565b5f6020820190508181035f8301526101c48184610174565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061021057607f821691505b602082108103610223576102226101cc565b5b5091905056fea264697066735822122038831d2f7ccf1163b9d4bc99d9bd0e553e4cc6240378a774f0e69ab50c94e4aa64736f6c63430008220033","sourceMap":"185:130:55:-:0;;;85:27;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;185:130;;;;;;;;;;;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;185:130:55:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806306fdde0314610038578063615fb51b14610056575b5f5ffd5b610040610074565b60405161004d91906101ac565b60405180910390f35b61005e6100ff565b60405161006b91906101ac565b60405180910390f35b5f8054610080906101f9565b80601f01602080910402602001604051908101604052809291908181526020018280546100ac906101f9565b80156100f75780601f106100ce576101008083540402835291602001916100f7565b820191905f5260205f20905b8154815290600101906020018083116100da57829003601f168201915b505050505081565b60606040518060400160405280600881526020017f42617365496d706c000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61017e8261013c565b6101888185610146565b9350610198818560208601610156565b6101a181610164565b840191505092915050565b5f6020820190508181035f8301526101c48184610174565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061021057607f821691505b602082108103610223576102226101cc565b5b5091905056fea264697066735822122038831d2f7ccf1163b9d4bc99d9bd0e553e4cc6240378a774f0e69ab50c94e4aa64736f6c63430008220033","sourceMap":"185:130:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;85:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;216:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;216:97::-;265:13;289:17;;;;;;;;;;;;;;;;;;;216:97;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:180::-;1290:77;1287:1;1280:88;1387:4;1384:1;1377:15;1411:4;1408:1;1401:15;1428:320;1472:6;1509:1;1503:4;1499:12;1489:22;;1556:1;1550:4;1546:12;1577:18;1567:81;;1633:4;1625:6;1621:17;1611:27;;1567:81;1695:2;1687:6;1684:14;1664:18;1661:38;1658:84;;1714:18;;:::i;:::-;1658:84;1479:269;1428:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"getAlias()":"615fb51b","name()":"06fdde03"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAlias\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/AbstractDemo.sol\":\"BaseImpl\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/AbstractDemo.sol\":{\"keccak256\":\"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15\",\"dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getAlias","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/AbstractDemo.sol":"BaseImpl"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/AbstractDemo.sol":{"keccak256":"0xb3cd9db149823d7ef737949cc98d02646e751316ed4ea0dd808c91bc58829066","urls":["bzz-raw://b2c5ff954a0c11ef4fa450705357b032e13f45ab31087feda0860aba33fd0c15","dweb:/ipfs/QmbdDhbkvFJZRKUbFoi42trpQMpHWMUyWsATCBi2e9E6YD"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file diff --git a/out/AccessControlExploit.sol/AccessControlExploit.json b/out/AccessControlExploit.sol/AccessControlExploit.json index 8a75650d..4912be10 100644 --- a/out/AccessControlExploit.sol/AccessControlExploit.json +++ b/out/AccessControlExploit.sol/AccessControlExploit.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"badBurn","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"badMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"goodBurn","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"goodMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600c81526020017f57726f6e672041636365737300000000000000000000000000000000000000008152506040518060400160405280600281526020017f5741000000000000000000000000000000000000000000000000000000000000815250816003908161008c9190610435565b50806004908161009c9190610435565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101069190610543565b60405180910390fd5b61011e8161012460201b60201c565b5061055c565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026257607f821691505b6020821081036102755761027461021e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261029c565b6102e1868361029c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032561032061031b846102f9565b610302565b6102f9565b9050919050565b5f819050919050565b61033e8361030b565b61035261034a8261032c565b8484546102a8565b825550505050565b5f5f905090565b61036961035a565b610374818484610335565b505050565b5f5b8281101561039a5761038f5f828401610361565b60018101905061037b565b505050565b601f8211156103ed57828211156103ec576103b98161027b565b6103c28361028d565b6103cb8561028d565b60208610156103d8575f90505b8083016103e782840382610379565b505050505b5b505050565b5f82821c905092915050565b5f61040d5f19846008026103f2565b1980831691505092915050565b5f61042583836103fe565b9150826002028217905092915050565b61043e826101e7565b67ffffffffffffffff811115610457576104566101f1565b5b610461825461024b565b61046c82828561039f565b5f60209050601f83116001811461049d575f841561048b578287015190505b610495858261041a565b8655506104fc565b601f1984166104ab8661027b565b5f5b828110156104d2578489015182556001820191506020850194506020810190506104ad565b868310156104ef57848901516104eb601f8916826103fe565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61052d82610504565b9050919050565b61053d81610523565b82525050565b5f6020820190506105565f830184610534565b92915050565b611289806105695f395ff3fe608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c80637fb1055011610095578063b08d1d1a11610064578063b08d1d1a1461029a578063dd62ed3e146102b6578063f2fde38b146102e6578063f3a8744414610302576100fe565b80637fb10550146102125780638da5cb5b1461022e57806395d89b411461024c578063a9059cbb1461026a576100fe565b806323b872dd116100d157806323b872dd1461018a578063313ce567146101ba57806370a08231146101d8578063715018a614610208576100fe565b8063049adea71461010257806306fdde031461011e578063095ea7b31461013c57806318160ddd1461016c575b5f5ffd5b61011c60048036038101906101179190610f23565b61031e565b005b610126610334565b6040516101339190610fd1565b60405180910390f35b61015660048036038101906101519190610f23565b6103c4565b604051610163919061100b565b60405180910390f35b6101746103e6565b6040516101819190611033565b60405180910390f35b6101a4600480360381019061019f919061104c565b6103ef565b6040516101b1919061100b565b60405180910390f35b6101c261041d565b6040516101cf91906110b7565b60405180910390f35b6101f260048036038101906101ed91906110d0565b610425565b6040516101ff9190611033565b60405180910390f35b61021061046a565b005b61022c60048036038101906102279190610f23565b61047d565b005b61023661048b565b604051610243919061110a565b60405180910390f35b6102546104b3565b6040516102619190610fd1565b60405180910390f35b610284600480360381019061027f9190610f23565b610543565b604051610291919061100b565b60405180910390f35b6102b460048036038101906102af9190610f23565b610565565b005b6102d060048036038101906102cb9190611123565b6105b2565b6040516102dd9190611033565b60405180910390f35b61030060048036038101906102fb91906110d0565b610634565b005b61031c60048036038101906103179190610f23565b6106b8565b005b6103266106c6565b610330828261074d565b5050565b6060600380546103439061118e565b80601f016020809104026020016040519081016040528092919081815260200182805461036f9061118e565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f5f6103ce6107cc565b90506103db8185856107d3565b600191505092915050565b5f600254905090565b5f5f6103f96107cc565b90506104068582856107e5565b610411858585610878565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104726106c6565b61047b5f610968565b565b6104878282610a2b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104c29061118e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee9061118e565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b5f5f61054d6107cc565b905061055a818585610878565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a4576105a38233836107e5565b5b6105ae8282610a2b565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c6106c6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a3919061110a565b60405180910390fd5b6106b581610968565b50565b6106c2828261074d565b5050565b6106ce6107cc565b73ffffffffffffffffffffffffffffffffffffffff166106ec61048b565b73ffffffffffffffffffffffffffffffffffffffff161461074b5761070f6107cc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610742919061110a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107bd575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b4919061110a565b60405180910390fd5b6107c85f8383610aaa565b5050565b5f33905090565b6107e08383836001610cc3565b505050565b5f6107f084846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108725781811015610863578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161085a939291906111be565b60405180910390fd5b61087184848484035f610cc3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108e8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108df919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094f919061110a565b60405180910390fd5b610963838383610aaa565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a9b575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a92919061110a565b60405180910390fd5b610aa6825f83610aaa565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610afa578060025f828254610aee9190611220565b92505081905550610bc8565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b83578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b7a939291906111be565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f8282540392505081905550610c59565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cb69190611033565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d33575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d2a919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da3575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d9a919061110a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e8c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e839190611033565b60405180910390a35b50505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ebf82610e96565b9050919050565b610ecf81610eb5565b8114610ed9575f5ffd5b50565b5f81359050610eea81610ec6565b92915050565b5f819050919050565b610f0281610ef0565b8114610f0c575f5ffd5b50565b5f81359050610f1d81610ef9565b92915050565b5f5f60408385031215610f3957610f38610e92565b5b5f610f4685828601610edc565b9250506020610f5785828601610f0f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fa382610f61565b610fad8185610f6b565b9350610fbd818560208601610f7b565b610fc681610f89565b840191505092915050565b5f6020820190508181035f830152610fe98184610f99565b905092915050565b5f8115159050919050565b61100581610ff1565b82525050565b5f60208201905061101e5f830184610ffc565b92915050565b61102d81610ef0565b82525050565b5f6020820190506110465f830184611024565b92915050565b5f5f5f6060848603121561106357611062610e92565b5b5f61107086828701610edc565b935050602061108186828701610edc565b925050604061109286828701610f0f565b9150509250925092565b5f60ff82169050919050565b6110b18161109c565b82525050565b5f6020820190506110ca5f8301846110a8565b92915050565b5f602082840312156110e5576110e4610e92565b5b5f6110f284828501610edc565b91505092915050565b61110481610eb5565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b5f5f6040838503121561113957611138610e92565b5b5f61114685828601610edc565b925050602061115785828601610edc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a557607f821691505b6020821081036111b8576111b7611161565b5b50919050565b5f6060820190506111d15f8301866110fb565b6111de6020830185611024565b6111eb6040830184611024565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122a82610ef0565b915061123583610ef0565b925082820190508082111561124d5761124c6111f3565b5b9291505056fea2646970667358221220af9ac2b23fb52a9bf618b1e0d5ead6995173bc8f5bf38e5d3e361a8cb7a2d25f64736f6c63430008220033","sourceMap":"196:919:130:-:0;;;303:64;;;;;;;;;;353:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;196:919:130;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;196:919:130:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c80637fb1055011610095578063b08d1d1a11610064578063b08d1d1a1461029a578063dd62ed3e146102b6578063f2fde38b146102e6578063f3a8744414610302576100fe565b80637fb10550146102125780638da5cb5b1461022e57806395d89b411461024c578063a9059cbb1461026a576100fe565b806323b872dd116100d157806323b872dd1461018a578063313ce567146101ba57806370a08231146101d8578063715018a614610208576100fe565b8063049adea71461010257806306fdde031461011e578063095ea7b31461013c57806318160ddd1461016c575b5f5ffd5b61011c60048036038101906101179190610f23565b61031e565b005b610126610334565b6040516101339190610fd1565b60405180910390f35b61015660048036038101906101519190610f23565b6103c4565b604051610163919061100b565b60405180910390f35b6101746103e6565b6040516101819190611033565b60405180910390f35b6101a4600480360381019061019f919061104c565b6103ef565b6040516101b1919061100b565b60405180910390f35b6101c261041d565b6040516101cf91906110b7565b60405180910390f35b6101f260048036038101906101ed91906110d0565b610425565b6040516101ff9190611033565b60405180910390f35b61021061046a565b005b61022c60048036038101906102279190610f23565b61047d565b005b61023661048b565b604051610243919061110a565b60405180910390f35b6102546104b3565b6040516102619190610fd1565b60405180910390f35b610284600480360381019061027f9190610f23565b610543565b604051610291919061100b565b60405180910390f35b6102b460048036038101906102af9190610f23565b610565565b005b6102d060048036038101906102cb9190611123565b6105b2565b6040516102dd9190611033565b60405180910390f35b61030060048036038101906102fb91906110d0565b610634565b005b61031c60048036038101906103179190610f23565b6106b8565b005b6103266106c6565b610330828261074d565b5050565b6060600380546103439061118e565b80601f016020809104026020016040519081016040528092919081815260200182805461036f9061118e565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f5f6103ce6107cc565b90506103db8185856107d3565b600191505092915050565b5f600254905090565b5f5f6103f96107cc565b90506104068582856107e5565b610411858585610878565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104726106c6565b61047b5f610968565b565b6104878282610a2b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104c29061118e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee9061118e565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b5f5f61054d6107cc565b905061055a818585610878565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a4576105a38233836107e5565b5b6105ae8282610a2b565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c6106c6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a3919061110a565b60405180910390fd5b6106b581610968565b50565b6106c2828261074d565b5050565b6106ce6107cc565b73ffffffffffffffffffffffffffffffffffffffff166106ec61048b565b73ffffffffffffffffffffffffffffffffffffffff161461074b5761070f6107cc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610742919061110a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107bd575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b4919061110a565b60405180910390fd5b6107c85f8383610aaa565b5050565b5f33905090565b6107e08383836001610cc3565b505050565b5f6107f084846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108725781811015610863578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161085a939291906111be565b60405180910390fd5b61087184848484035f610cc3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108e8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108df919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094f919061110a565b60405180910390fd5b610963838383610aaa565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a9b575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a92919061110a565b60405180910390fd5b610aa6825f83610aaa565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610afa578060025f828254610aee9190611220565b92505081905550610bc8565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b83578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b7a939291906111be565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f8282540392505081905550610c59565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cb69190611033565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d33575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d2a919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da3575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d9a919061110a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e8c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e839190611033565b60405180910390a35b50505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ebf82610e96565b9050919050565b610ecf81610eb5565b8114610ed9575f5ffd5b50565b5f81359050610eea81610ec6565b92915050565b5f819050919050565b610f0281610ef0565b8114610f0c575f5ffd5b50565b5f81359050610f1d81610ef9565b92915050565b5f5f60408385031215610f3957610f38610e92565b5b5f610f4685828601610edc565b9250506020610f5785828601610f0f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fa382610f61565b610fad8185610f6b565b9350610fbd818560208601610f7b565b610fc681610f89565b840191505092915050565b5f6020820190508181035f830152610fe98184610f99565b905092915050565b5f8115159050919050565b61100581610ff1565b82525050565b5f60208201905061101e5f830184610ffc565b92915050565b61102d81610ef0565b82525050565b5f6020820190506110465f830184611024565b92915050565b5f5f5f6060848603121561106357611062610e92565b5b5f61107086828701610edc565b935050602061108186828701610edc565b925050604061109286828701610f0f565b9150509250925092565b5f60ff82169050919050565b6110b18161109c565b82525050565b5f6020820190506110ca5f8301846110a8565b92915050565b5f602082840312156110e5576110e4610e92565b5b5f6110f284828501610edc565b91505092915050565b61110481610eb5565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b5f5f6040838503121561113957611138610e92565b5b5f61114685828601610edc565b925050602061115785828601610edc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a557607f821691505b6020821081036111b8576111b7611161565b5b50919050565b5f6060820190506111d15f8301866110fb565b6111de6020830185611024565b6111eb6040830184611024565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122a82610ef0565b915061123583610ef0565b925082820190508082111561124d5761124c6111f3565b5b9291505056fea2646970667358221220af9ac2b23fb52a9bf618b1e0d5ead6995173bc8f5bf38e5d3e361a8cb7a2d25f64736f6c63430008220033","sourceMap":"196:919:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;582:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;730:93:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1638:85:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;916:197:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;425:83:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;582:94;1531:13:19;:11;:13::i;:::-;652:17:130::1;658:2;662:6;652:5;:17::i;:::-;582:94:::0;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;730:93:130:-;794:22;800:7;809:6;794:5;:22::i;:::-;730:93;;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;916:197:130:-;998:7;984:21;;:10;:21;;;981:94;;1020:44;1036:7;1045:10;1057:6;1020:15;:44::i;:::-;981:94;1084:22;1090:7;1099:6;1084:5;:22::i;:::-;916:197;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;425:83:130:-;484:17;490:2;494:6;484:5;:17::i;:::-;425:83;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7888:206:22:-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:99::-;1729:6;1763:5;1757:12;1747:22;;1677:99;;;:::o;1782:169::-;1866:11;1900:6;1895:3;1888:19;1940:4;1935:3;1931:14;1916:29;;1782:169;;;;:::o;1957:139::-;2046:6;2041:3;2036;2030:23;2087:1;2078:6;2073:3;2069:16;2062:27;1957:139;;;:::o;2102:102::-;2143:6;2194:2;2190:7;2185:2;2178:5;2174:14;2170:28;2160:38;;2102:102;;;:::o;2210:377::-;2298:3;2326:39;2359:5;2326:39;:::i;:::-;2381:71;2445:6;2440:3;2381:71;:::i;:::-;2374:78;;2461:65;2519:6;2514:3;2507:4;2500:5;2496:16;2461:65;:::i;:::-;2551:29;2573:6;2551:29;:::i;:::-;2546:3;2542:39;2535:46;;2302:285;2210:377;;;;:::o;2593:313::-;2706:4;2744:2;2733:9;2729:18;2721:26;;2793:9;2787:4;2783:20;2779:1;2768:9;2764:17;2757:47;2821:78;2894:4;2885:6;2821:78;:::i;:::-;2813:86;;2593:313;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","badBurn(address,uint256)":"7fb10550","badMint(address,uint256)":"f3a87444","balanceOf(address)":"70a08231","decimals()":"313ce567","goodBurn(address,uint256)":"b08d1d1a","goodMint(address,uint256)":"049adea7","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"badBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"badMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"goodBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"goodMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S04_AccessControlExploit/AccessControlExploit.sol\":\"AccessControlExploit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S04_AccessControlExploit/AccessControlExploit.sol\":{\"keccak256\":\"0x0fd2c0413d6a653ecd2cdf1c8b9f031e5c00265caa21730d76d4005c608ebe38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95bd0fee085086341c69bf3c7d1402c7ca1ba9de90286c4fe1d9f0a35faf3e8\",\"dweb:/ipfs/QmVQHt4waUvbHA5pdKBgVFJdZAuhPQmmDRMMVxhcQHQra3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"badBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"badMint"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"goodBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"goodMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S04_AccessControlExploit/AccessControlExploit.sol":"AccessControlExploit"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S04_AccessControlExploit/AccessControlExploit.sol":{"keccak256":"0x0fd2c0413d6a653ecd2cdf1c8b9f031e5c00265caa21730d76d4005c608ebe38","urls":["bzz-raw://d95bd0fee085086341c69bf3c7d1402c7ca1ba9de90286c4fe1d9f0a35faf3e8","dweb:/ipfs/QmVQHt4waUvbHA5pdKBgVFJdZAuhPQmmDRMMVxhcQHQra3"],"license":"MIT"}},"version":1},"id":130} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"badBurn","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"badMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"goodBurn","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"goodMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600c81526020017f57726f6e672041636365737300000000000000000000000000000000000000008152506040518060400160405280600281526020017f5741000000000000000000000000000000000000000000000000000000000000815250816003908161008c9190610435565b50806004908161009c9190610435565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101069190610543565b60405180910390fd5b61011e8161012460201b60201c565b5061055c565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026257607f821691505b6020821081036102755761027461021e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261029c565b6102e1868361029c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032561032061031b846102f9565b610302565b6102f9565b9050919050565b5f819050919050565b61033e8361030b565b61035261034a8261032c565b8484546102a8565b825550505050565b5f5f905090565b61036961035a565b610374818484610335565b505050565b5f5b8281101561039a5761038f5f828401610361565b60018101905061037b565b505050565b601f8211156103ed57828211156103ec576103b98161027b565b6103c28361028d565b6103cb8561028d565b60208610156103d8575f90505b8083016103e782840382610379565b505050505b5b505050565b5f82821c905092915050565b5f61040d5f19846008026103f2565b1980831691505092915050565b5f61042583836103fe565b9150826002028217905092915050565b61043e826101e7565b67ffffffffffffffff811115610457576104566101f1565b5b610461825461024b565b61046c82828561039f565b5f60209050601f83116001811461049d575f841561048b578287015190505b610495858261041a565b8655506104fc565b601f1984166104ab8661027b565b5f5b828110156104d2578489015182556001820191506020850194506020810190506104ad565b868310156104ef57848901516104eb601f8916826103fe565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61052d82610504565b9050919050565b61053d81610523565b82525050565b5f6020820190506105565f830184610534565b92915050565b611289806105695f395ff3fe608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c80637fb1055011610095578063b08d1d1a11610064578063b08d1d1a1461029a578063dd62ed3e146102b6578063f2fde38b146102e6578063f3a8744414610302576100fe565b80637fb10550146102125780638da5cb5b1461022e57806395d89b411461024c578063a9059cbb1461026a576100fe565b806323b872dd116100d157806323b872dd1461018a578063313ce567146101ba57806370a08231146101d8578063715018a614610208576100fe565b8063049adea71461010257806306fdde031461011e578063095ea7b31461013c57806318160ddd1461016c575b5f5ffd5b61011c60048036038101906101179190610f23565b61031e565b005b610126610334565b6040516101339190610fd1565b60405180910390f35b61015660048036038101906101519190610f23565b6103c4565b604051610163919061100b565b60405180910390f35b6101746103e6565b6040516101819190611033565b60405180910390f35b6101a4600480360381019061019f919061104c565b6103ef565b6040516101b1919061100b565b60405180910390f35b6101c261041d565b6040516101cf91906110b7565b60405180910390f35b6101f260048036038101906101ed91906110d0565b610425565b6040516101ff9190611033565b60405180910390f35b61021061046a565b005b61022c60048036038101906102279190610f23565b61047d565b005b61023661048b565b604051610243919061110a565b60405180910390f35b6102546104b3565b6040516102619190610fd1565b60405180910390f35b610284600480360381019061027f9190610f23565b610543565b604051610291919061100b565b60405180910390f35b6102b460048036038101906102af9190610f23565b610565565b005b6102d060048036038101906102cb9190611123565b6105b2565b6040516102dd9190611033565b60405180910390f35b61030060048036038101906102fb91906110d0565b610634565b005b61031c60048036038101906103179190610f23565b6106b8565b005b6103266106c6565b610330828261074d565b5050565b6060600380546103439061118e565b80601f016020809104026020016040519081016040528092919081815260200182805461036f9061118e565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f5f6103ce6107cc565b90506103db8185856107d3565b600191505092915050565b5f600254905090565b5f5f6103f96107cc565b90506104068582856107e5565b610411858585610878565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104726106c6565b61047b5f610968565b565b6104878282610a2b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104c29061118e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee9061118e565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b5f5f61054d6107cc565b905061055a818585610878565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a4576105a38233836107e5565b5b6105ae8282610a2b565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c6106c6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a3919061110a565b60405180910390fd5b6106b581610968565b50565b6106c2828261074d565b5050565b6106ce6107cc565b73ffffffffffffffffffffffffffffffffffffffff166106ec61048b565b73ffffffffffffffffffffffffffffffffffffffff161461074b5761070f6107cc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610742919061110a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107bd575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b4919061110a565b60405180910390fd5b6107c85f8383610aaa565b5050565b5f33905090565b6107e08383836001610cc3565b505050565b5f6107f084846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108725781811015610863578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161085a939291906111be565b60405180910390fd5b61087184848484035f610cc3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108e8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108df919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094f919061110a565b60405180910390fd5b610963838383610aaa565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a9b575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a92919061110a565b60405180910390fd5b610aa6825f83610aaa565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610afa578060025f828254610aee9190611220565b92505081905550610bc8565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b83578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b7a939291906111be565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f8282540392505081905550610c59565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cb69190611033565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d33575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d2a919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da3575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d9a919061110a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e8c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e839190611033565b60405180910390a35b50505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ebf82610e96565b9050919050565b610ecf81610eb5565b8114610ed9575f5ffd5b50565b5f81359050610eea81610ec6565b92915050565b5f819050919050565b610f0281610ef0565b8114610f0c575f5ffd5b50565b5f81359050610f1d81610ef9565b92915050565b5f5f60408385031215610f3957610f38610e92565b5b5f610f4685828601610edc565b9250506020610f5785828601610f0f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fa382610f61565b610fad8185610f6b565b9350610fbd818560208601610f7b565b610fc681610f89565b840191505092915050565b5f6020820190508181035f830152610fe98184610f99565b905092915050565b5f8115159050919050565b61100581610ff1565b82525050565b5f60208201905061101e5f830184610ffc565b92915050565b61102d81610ef0565b82525050565b5f6020820190506110465f830184611024565b92915050565b5f5f5f6060848603121561106357611062610e92565b5b5f61107086828701610edc565b935050602061108186828701610edc565b925050604061109286828701610f0f565b9150509250925092565b5f60ff82169050919050565b6110b18161109c565b82525050565b5f6020820190506110ca5f8301846110a8565b92915050565b5f602082840312156110e5576110e4610e92565b5b5f6110f284828501610edc565b91505092915050565b61110481610eb5565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b5f5f6040838503121561113957611138610e92565b5b5f61114685828601610edc565b925050602061115785828601610edc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a557607f821691505b6020821081036111b8576111b7611161565b5b50919050565b5f6060820190506111d15f8301866110fb565b6111de6020830185611024565b6111eb6040830184611024565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122a82610ef0565b915061123583610ef0565b925082820190508082111561124d5761124c6111f3565b5b9291505056fea2646970667358221220af9ac2b23fb52a9bf618b1e0d5ead6995173bc8f5bf38e5d3e361a8cb7a2d25f64736f6c63430008220033","sourceMap":"196:919:124:-:0;;;303:64;;;;;;;;;;353:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;196:919:124;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;196:919:124:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c80637fb1055011610095578063b08d1d1a11610064578063b08d1d1a1461029a578063dd62ed3e146102b6578063f2fde38b146102e6578063f3a8744414610302576100fe565b80637fb10550146102125780638da5cb5b1461022e57806395d89b411461024c578063a9059cbb1461026a576100fe565b806323b872dd116100d157806323b872dd1461018a578063313ce567146101ba57806370a08231146101d8578063715018a614610208576100fe565b8063049adea71461010257806306fdde031461011e578063095ea7b31461013c57806318160ddd1461016c575b5f5ffd5b61011c60048036038101906101179190610f23565b61031e565b005b610126610334565b6040516101339190610fd1565b60405180910390f35b61015660048036038101906101519190610f23565b6103c4565b604051610163919061100b565b60405180910390f35b6101746103e6565b6040516101819190611033565b60405180910390f35b6101a4600480360381019061019f919061104c565b6103ef565b6040516101b1919061100b565b60405180910390f35b6101c261041d565b6040516101cf91906110b7565b60405180910390f35b6101f260048036038101906101ed91906110d0565b610425565b6040516101ff9190611033565b60405180910390f35b61021061046a565b005b61022c60048036038101906102279190610f23565b61047d565b005b61023661048b565b604051610243919061110a565b60405180910390f35b6102546104b3565b6040516102619190610fd1565b60405180910390f35b610284600480360381019061027f9190610f23565b610543565b604051610291919061100b565b60405180910390f35b6102b460048036038101906102af9190610f23565b610565565b005b6102d060048036038101906102cb9190611123565b6105b2565b6040516102dd9190611033565b60405180910390f35b61030060048036038101906102fb91906110d0565b610634565b005b61031c60048036038101906103179190610f23565b6106b8565b005b6103266106c6565b610330828261074d565b5050565b6060600380546103439061118e565b80601f016020809104026020016040519081016040528092919081815260200182805461036f9061118e565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f5f6103ce6107cc565b90506103db8185856107d3565b600191505092915050565b5f600254905090565b5f5f6103f96107cc565b90506104068582856107e5565b610411858585610878565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104726106c6565b61047b5f610968565b565b6104878282610a2b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104c29061118e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ee9061118e565b80156105395780601f1061051057610100808354040283529160200191610539565b820191905f5260205f20905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b5f5f61054d6107cc565b905061055a818585610878565b600191505092915050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105a4576105a38233836107e5565b5b6105ae8282610a2b565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c6106c6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a3919061110a565b60405180910390fd5b6106b581610968565b50565b6106c2828261074d565b5050565b6106ce6107cc565b73ffffffffffffffffffffffffffffffffffffffff166106ec61048b565b73ffffffffffffffffffffffffffffffffffffffff161461074b5761070f6107cc565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610742919061110a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107bd575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b4919061110a565b60405180910390fd5b6107c85f8383610aaa565b5050565b5f33905090565b6107e08383836001610cc3565b505050565b5f6107f084846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108725781811015610863578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161085a939291906111be565b60405180910390fd5b61087184848484035f610cc3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108e8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108df919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094f919061110a565b60405180910390fd5b610963838383610aaa565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a9b575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a92919061110a565b60405180910390fd5b610aa6825f83610aaa565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610afa578060025f828254610aee9190611220565b92505081905550610bc8565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b83578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b7a939291906111be565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f8282540392505081905550610c59565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cb69190611033565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d33575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d2a919061110a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da3575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d9a919061110a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e8c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e839190611033565b60405180910390a35b50505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ebf82610e96565b9050919050565b610ecf81610eb5565b8114610ed9575f5ffd5b50565b5f81359050610eea81610ec6565b92915050565b5f819050919050565b610f0281610ef0565b8114610f0c575f5ffd5b50565b5f81359050610f1d81610ef9565b92915050565b5f5f60408385031215610f3957610f38610e92565b5b5f610f4685828601610edc565b9250506020610f5785828601610f0f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fa382610f61565b610fad8185610f6b565b9350610fbd818560208601610f7b565b610fc681610f89565b840191505092915050565b5f6020820190508181035f830152610fe98184610f99565b905092915050565b5f8115159050919050565b61100581610ff1565b82525050565b5f60208201905061101e5f830184610ffc565b92915050565b61102d81610ef0565b82525050565b5f6020820190506110465f830184611024565b92915050565b5f5f5f6060848603121561106357611062610e92565b5b5f61107086828701610edc565b935050602061108186828701610edc565b925050604061109286828701610f0f565b9150509250925092565b5f60ff82169050919050565b6110b18161109c565b82525050565b5f6020820190506110ca5f8301846110a8565b92915050565b5f602082840312156110e5576110e4610e92565b5b5f6110f284828501610edc565b91505092915050565b61110481610eb5565b82525050565b5f60208201905061111d5f8301846110fb565b92915050565b5f5f6040838503121561113957611138610e92565b5b5f61114685828601610edc565b925050602061115785828601610edc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111a557607f821691505b6020821081036111b8576111b7611161565b5b50919050565b5f6060820190506111d15f8301866110fb565b6111de6020830185611024565b6111eb6040830184611024565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61122a82610ef0565b915061123583610ef0565b925082820190508082111561124d5761124c6111f3565b5b9291505056fea2646970667358221220af9ac2b23fb52a9bf618b1e0d5ead6995173bc8f5bf38e5d3e361a8cb7a2d25f64736f6c63430008220033","sourceMap":"196:919:124:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;582:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;730:93:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1638:85:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;916:197:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;425:83:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;582:94;1531:13:19;:11;:13::i;:::-;652:17:124::1;658:2;662:6;652:5;:17::i;:::-;582:94:::0;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;730:93:124:-;794:22;800:7;809:6;794:5;:22::i;:::-;730:93;;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;916:197:124:-;998:7;984:21;;:10;:21;;;981:94;;1020:44;1036:7;1045:10;1057:6;1020:15;:44::i;:::-;981:94;1084:22;1090:7;1099:6;1084:5;:22::i;:::-;916:197;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;425:83:124:-;484:17;490:2;494:6;484:5;:17::i;:::-;425:83;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7888:206:22:-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:99::-;1729:6;1763:5;1757:12;1747:22;;1677:99;;;:::o;1782:169::-;1866:11;1900:6;1895:3;1888:19;1940:4;1935:3;1931:14;1916:29;;1782:169;;;;:::o;1957:139::-;2046:6;2041:3;2036;2030:23;2087:1;2078:6;2073:3;2069:16;2062:27;1957:139;;;:::o;2102:102::-;2143:6;2194:2;2190:7;2185:2;2178:5;2174:14;2170:28;2160:38;;2102:102;;;:::o;2210:377::-;2298:3;2326:39;2359:5;2326:39;:::i;:::-;2381:71;2445:6;2440:3;2381:71;:::i;:::-;2374:78;;2461:65;2519:6;2514:3;2507:4;2500:5;2496:16;2461:65;:::i;:::-;2551:29;2573:6;2551:29;:::i;:::-;2546:3;2542:39;2535:46;;2302:285;2210:377;;;;:::o;2593:313::-;2706:4;2744:2;2733:9;2729:18;2721:26;;2793:9;2787:4;2783:20;2779:1;2768:9;2764:17;2757:47;2821:78;2894:4;2885:6;2821:78;:::i;:::-;2813:86;;2593:313;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","badBurn(address,uint256)":"7fb10550","badMint(address,uint256)":"f3a87444","balanceOf(address)":"70a08231","decimals()":"313ce567","goodBurn(address,uint256)":"b08d1d1a","goodMint(address,uint256)":"049adea7","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"badBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"badMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"goodBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"goodMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S04_AccessControlExploit/AccessControlExploit.sol\":\"AccessControlExploit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S04_AccessControlExploit/AccessControlExploit.sol\":{\"keccak256\":\"0x0fd2c0413d6a653ecd2cdf1c8b9f031e5c00265caa21730d76d4005c608ebe38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95bd0fee085086341c69bf3c7d1402c7ca1ba9de90286c4fe1d9f0a35faf3e8\",\"dweb:/ipfs/QmVQHt4waUvbHA5pdKBgVFJdZAuhPQmmDRMMVxhcQHQra3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"badBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"badMint"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"goodBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"goodMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S04_AccessControlExploit/AccessControlExploit.sol":"AccessControlExploit"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S04_AccessControlExploit/AccessControlExploit.sol":{"keccak256":"0x0fd2c0413d6a653ecd2cdf1c8b9f031e5c00265caa21730d76d4005c608ebe38","urls":["bzz-raw://d95bd0fee085086341c69bf3c7d1402c7ca1ba9de90286c4fe1d9f0a35faf3e8","dweb:/ipfs/QmVQHt4waUvbHA5pdKBgVFJdZAuhPQmmDRMMVxhcQHQra3"],"license":"MIT"}},"version":1},"id":124} \ No newline at end of file diff --git a/out/Airdrop.sol/Airdrop.json b/out/Airdrop.sol/Airdrop.json index a35012a0..5198506a 100644 --- a/out/Airdrop.sol/Airdrop.json +++ b/out/Airdrop.sol/Airdrop.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getSum","inputs":[{"name":"_arr","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"multiTransferETH","inputs":[{"name":"_addresses","type":"address[]","internalType":"address payable[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiTransferToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_addresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFromFailList","inputs":[{"name":"_to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610e748061001c5f395ff3fe60806040526004361061003e575f3560e01c806341ed24a21461004257806377988cf81461006a578063acacd8ee14610086578063ccb8c1e0146100ae575b5f5ffd5b34801561004d575f5ffd5b50610068600480360381019061006391906107a1565b6100ea565b005b610084600480360381019061007f9190610887565b6102e1565b005b348015610091575f5ffd5b506100ac60048036038101906100a79190610905565b6104cd565b005b3480156100b9575f5ffd5b506100d460048036038101906100cf9190610930565b61063d565b6040516100e19190610993565b60405180910390f35b818190508484905014610132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990610a2c565b60405180910390fd5b5f8590505f610141848461063d565b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161017f929190610a59565b602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be9190610aaa565b10156101ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f690610b1f565b60405180910390fd5b5f5b868690508110156102d7578273ffffffffffffffffffffffffffffffffffffffff166323b872dd3389898581811061023c5761023b610b3d565b5b90506020020160208101906102519190610905565b88888681811061026457610263610b3d565b5b905060200201356040518463ffffffff1660e01b815260040161028993929190610b6a565b6020604051808303815f875af11580156102a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c99190610bd4565b508080600101915050610201565b5050505050505050565b818190508484905014610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a2c565b60405180910390fd5b5f610334838361063d565b9050803414610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f90610c49565b60405180910390fd5b5f5f90505b858590508110156104c5575f86868381811061039c5761039b610b3d565b5b90506020020160208101906103b19190610ca2565b73ffffffffffffffffffffffffffffffffffffffff168585848181106103da576103d9610b3d565b5b905060200201356040516103ed90610cfa565b5f6040518083038185875af1925050503d805f8114610427576040519150601f19603f3d011682016040523d82523d5f602084013e61042c565b606091505b50509050806104b75784848381811061044857610447610b3d565b5b905060200201355f5f89898681811061046457610463610b3d565b5b90506020020160208101906104799190610ca2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061037d565b505050505050565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690610d58565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8273ffffffffffffffffffffffffffffffffffffffff16826040516105b590610cfa565b5f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b5050905080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90610dc0565b60405180910390fd5b505050565b5f5f5f90505b838390508110156106825783838281811061066157610660610b3d565b5b90506020020135826106739190610e0b565b91508080600101915050610643565b5092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ba82610691565b9050919050565b6106ca816106b0565b81146106d4575f5ffd5b50565b5f813590506106e5816106c1565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261070c5761070b6106eb565b5b8235905067ffffffffffffffff811115610729576107286106ef565b5b602083019150836020820283011115610745576107446106f3565b5b9250929050565b5f5f83601f840112610761576107606106eb565b5b8235905067ffffffffffffffff81111561077e5761077d6106ef565b5b60208301915083602082028301111561079a576107996106f3565b5b9250929050565b5f5f5f5f5f606086880312156107ba576107b9610689565b5b5f6107c7888289016106d7565b955050602086013567ffffffffffffffff8111156107e8576107e761068d565b5b6107f4888289016106f7565b9450945050604086013567ffffffffffffffff8111156108175761081661068d565b5b6108238882890161074c565b92509250509295509295909350565b5f5f83601f840112610847576108466106eb565b5b8235905067ffffffffffffffff811115610864576108636106ef565b5b6020830191508360208202830111156108805761087f6106f3565b5b9250929050565b5f5f5f5f6040858703121561089f5761089e610689565b5b5f85013567ffffffffffffffff8111156108bc576108bb61068d565b5b6108c887828801610832565b9450945050602085013567ffffffffffffffff8111156108eb576108ea61068d565b5b6108f78782880161074c565b925092505092959194509250565b5f6020828403121561091a57610919610689565b5b5f610927848285016106d7565b91505092915050565b5f5f6020838503121561094657610945610689565b5b5f83013567ffffffffffffffff8111156109635761096261068d565b5b61096f8582860161074c565b92509250509250929050565b5f819050919050565b61098d8161097b565b82525050565b5f6020820190506109a65f830184610984565b92915050565b5f82825260208201905092915050565b7f4c656e67746873206f662041646472657373657320616e6420416d6f756e74735f8201527f204e4f5420455155414c00000000000000000000000000000000000000000000602082015250565b5f610a16602a836109ac565b9150610a21826109bc565b604082019050919050565b5f6020820190508181035f830152610a4381610a0a565b9050919050565b610a53816106b0565b82525050565b5f604082019050610a6c5f830185610a4a565b610a796020830184610a4a565b9392505050565b610a898161097b565b8114610a93575f5ffd5b50565b5f81519050610aa481610a80565b92915050565b5f60208284031215610abf57610abe610689565b5b5f610acc84828501610a96565b91505092915050565b7f4e65656420417070726f766520455243323020746f6b656e00000000000000005f82015250565b5f610b096018836109ac565b9150610b1482610ad5565b602082019050919050565b5f6020820190508181035f830152610b3681610afd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f606082019050610b7d5f830186610a4a565b610b8a6020830185610a4a565b610b976040830184610984565b949350505050565b5f8115159050919050565b610bb381610b9f565b8114610bbd575f5ffd5b50565b5f81519050610bce81610baa565b92915050565b5f60208284031215610be957610be8610689565b5b5f610bf684828501610bc0565b91505092915050565b7f5472616e7366657220616d6f756e74206572726f7200000000000000000000005f82015250565b5f610c336015836109ac565b9150610c3e82610bff565b602082019050919050565b5f6020820190508181035f830152610c6081610c27565b9050919050565b5f610c7182610691565b9050919050565b610c8181610c67565b8114610c8b575f5ffd5b50565b5f81359050610c9c81610c78565b92915050565b5f60208284031215610cb757610cb6610689565b5b5f610cc484828501610c8e565b91505092915050565b5f81905092915050565b50565b5f610ce55f83610ccd565b9150610cf082610cd7565b5f82019050919050565b5f610d0482610cda565b9150819050919050565b7f596f7520617265206e6f7420696e206661696c6564206c6973740000000000005f82015250565b5f610d42601a836109ac565b9150610d4d82610d0e565b602082019050919050565b5f6020820190508181035f830152610d6f81610d36565b9050919050565b7f4661696c207769746864726177000000000000000000000000000000000000005f82015250565b5f610daa600d836109ac565b9150610db582610d76565b602082019050919050565b5f6020820190508181035f830152610dd781610d9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e158261097b565b9150610e208361097b565b9250828201905080821115610e3857610e37610dde565b5b9291505056fea26469706673582212207d2a44d36b8dea060f7f3153f870510f2afa5990093e8f1b2f20f318e4c12a7a64736f6c63430008220033","sourceMap":"154:2862:82:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806341ed24a21461004257806377988cf81461006a578063acacd8ee14610086578063ccb8c1e0146100ae575b5f5ffd5b34801561004d575f5ffd5b50610068600480360381019061006391906107a1565b6100ea565b005b610084600480360381019061007f9190610887565b6102e1565b005b348015610091575f5ffd5b506100ac60048036038101906100a79190610905565b6104cd565b005b3480156100b9575f5ffd5b506100d460048036038101906100cf9190610930565b61063d565b6040516100e19190610993565b60405180910390f35b818190508484905014610132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990610a2c565b60405180910390fd5b5f8590505f610141848461063d565b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161017f929190610a59565b602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be9190610aaa565b10156101ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f690610b1f565b60405180910390fd5b5f5b868690508110156102d7578273ffffffffffffffffffffffffffffffffffffffff166323b872dd3389898581811061023c5761023b610b3d565b5b90506020020160208101906102519190610905565b88888681811061026457610263610b3d565b5b905060200201356040518463ffffffff1660e01b815260040161028993929190610b6a565b6020604051808303815f875af11580156102a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c99190610bd4565b508080600101915050610201565b5050505050505050565b818190508484905014610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a2c565b60405180910390fd5b5f610334838361063d565b9050803414610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f90610c49565b60405180910390fd5b5f5f90505b858590508110156104c5575f86868381811061039c5761039b610b3d565b5b90506020020160208101906103b19190610ca2565b73ffffffffffffffffffffffffffffffffffffffff168585848181106103da576103d9610b3d565b5b905060200201356040516103ed90610cfa565b5f6040518083038185875af1925050503d805f8114610427576040519150601f19603f3d011682016040523d82523d5f602084013e61042c565b606091505b50509050806104b75784848381811061044857610447610b3d565b5b905060200201355f5f89898681811061046457610463610b3d565b5b90506020020160208101906104799190610ca2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061037d565b505050505050565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690610d58565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8273ffffffffffffffffffffffffffffffffffffffff16826040516105b590610cfa565b5f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b5050905080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90610dc0565b60405180910390fd5b505050565b5f5f5f90505b838390508110156106825783838281811061066157610660610b3d565b5b90506020020135826106739190610e0b565b91508080600101915050610643565b5092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ba82610691565b9050919050565b6106ca816106b0565b81146106d4575f5ffd5b50565b5f813590506106e5816106c1565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261070c5761070b6106eb565b5b8235905067ffffffffffffffff811115610729576107286106ef565b5b602083019150836020820283011115610745576107446106f3565b5b9250929050565b5f5f83601f840112610761576107606106eb565b5b8235905067ffffffffffffffff81111561077e5761077d6106ef565b5b60208301915083602082028301111561079a576107996106f3565b5b9250929050565b5f5f5f5f5f606086880312156107ba576107b9610689565b5b5f6107c7888289016106d7565b955050602086013567ffffffffffffffff8111156107e8576107e761068d565b5b6107f4888289016106f7565b9450945050604086013567ffffffffffffffff8111156108175761081661068d565b5b6108238882890161074c565b92509250509295509295909350565b5f5f83601f840112610847576108466106eb565b5b8235905067ffffffffffffffff811115610864576108636106ef565b5b6020830191508360208202830111156108805761087f6106f3565b5b9250929050565b5f5f5f5f6040858703121561089f5761089e610689565b5b5f85013567ffffffffffffffff8111156108bc576108bb61068d565b5b6108c887828801610832565b9450945050602085013567ffffffffffffffff8111156108eb576108ea61068d565b5b6108f78782880161074c565b925092505092959194509250565b5f6020828403121561091a57610919610689565b5b5f610927848285016106d7565b91505092915050565b5f5f6020838503121561094657610945610689565b5b5f83013567ffffffffffffffff8111156109635761096261068d565b5b61096f8582860161074c565b92509250509250929050565b5f819050919050565b61098d8161097b565b82525050565b5f6020820190506109a65f830184610984565b92915050565b5f82825260208201905092915050565b7f4c656e67746873206f662041646472657373657320616e6420416d6f756e74735f8201527f204e4f5420455155414c00000000000000000000000000000000000000000000602082015250565b5f610a16602a836109ac565b9150610a21826109bc565b604082019050919050565b5f6020820190508181035f830152610a4381610a0a565b9050919050565b610a53816106b0565b82525050565b5f604082019050610a6c5f830185610a4a565b610a796020830184610a4a565b9392505050565b610a898161097b565b8114610a93575f5ffd5b50565b5f81519050610aa481610a80565b92915050565b5f60208284031215610abf57610abe610689565b5b5f610acc84828501610a96565b91505092915050565b7f4e65656420417070726f766520455243323020746f6b656e00000000000000005f82015250565b5f610b096018836109ac565b9150610b1482610ad5565b602082019050919050565b5f6020820190508181035f830152610b3681610afd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f606082019050610b7d5f830186610a4a565b610b8a6020830185610a4a565b610b976040830184610984565b949350505050565b5f8115159050919050565b610bb381610b9f565b8114610bbd575f5ffd5b50565b5f81519050610bce81610baa565b92915050565b5f60208284031215610be957610be8610689565b5b5f610bf684828501610bc0565b91505092915050565b7f5472616e7366657220616d6f756e74206572726f7200000000000000000000005f82015250565b5f610c336015836109ac565b9150610c3e82610bff565b602082019050919050565b5f6020820190508181035f830152610c6081610c27565b9050919050565b5f610c7182610691565b9050919050565b610c8181610c67565b8114610c8b575f5ffd5b50565b5f81359050610c9c81610c78565b92915050565b5f60208284031215610cb757610cb6610689565b5b5f610cc484828501610c8e565b91505092915050565b5f81905092915050565b50565b5f610ce55f83610ccd565b9150610cf082610cd7565b5f82019050919050565b5f610d0482610cda565b9150819050919050565b7f596f7520617265206e6f7420696e206661696c6564206c6973740000000000005f82015250565b5f610d42601a836109ac565b9150610d4d82610d0e565b602082019050919050565b5f6020820190508181035f830152610d6f81610d36565b9050919050565b7f4661696c207769746864726177000000000000000000000000000000000000005f82015250565b5f610daa600d836109ac565b9150610db582610d76565b602082019050919050565b5f6020820190508181035f830152610dd781610d9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e158261097b565b9150610e208361097b565b9250828201905080821115610e3857610e37610dde565b5b9291505056fea26469706673582212207d2a44d36b8dea060f7f3153f870510f2afa5990093e8f1b2f20f318e4c12a7a64736f6c63430008220033","sourceMap":"154:2862:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;479:880;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1398:1063;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2514:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2867:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;479:880;737:8;;:15;;716:10;;:17;;:36;695:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;830:12;852:6;830:29;;895:15;913:16;920:8;;913:6;:16::i;:::-;895:34;;1095:10;1049:5;:15;;;1065:10;1085:4;1049:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;1028:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;1231:9;1226:127;1246:10;;:17;;1242:1;:21;1226:127;;;1284:5;:18;;;1303:10;1315;;1326:1;1315:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1330:8;;1339:1;1330:11;;;;;;;:::i;:::-;;;;;;;;1284:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1265:3;;;;;;;1226:127;;;;622:737;;479:880;;;;;:::o;1398:1063::-;1644:8;;:15;;1623:10;;:17;;:36;1602:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;1737:15;1755:16;1762:8;;1755:6;:16::i;:::-;1737:34;;1872:10;1859:9;:23;1851:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1976:9;1988:1;1976:13;;1971:484;1995:10;;:17;;1991:1;:21;1971:484;;;2279:12;2297:10;;2308:1;2297:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:18;;2323:8;;2332:1;2323:11;;;;;;;:::i;:::-;;;;;;;;2297:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2278:61;;;2358:7;2353:92;;2419:8;;2428:1;2419:11;;;;;;;:::i;:::-;;;;;;;;2385:16;:31;2402:10;;2413:1;2402:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2385:31;;;;;;;;;;;;;;;:45;;;;2353:92;2019:436;2014:3;;;;;;;1971:484;;;;1529:932;1398:1063;;;;:::o;2514:321::-;2574:15;2592:16;:28;2609:10;2592:28;;;;;;;;;;;;;;;;2574:46;;2651:1;2638:10;:14;2630:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;2724:1;2693:16;:28;2710:10;2693:28;;;;;;;;;;;;;;;:32;;;;2736:12;2754:3;:8;;2770:10;2754:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2735:50;;;2803:7;2795:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;2564:271;;2514:321;:::o;2867:147::-;2929:8;2954:6;2963:1;2954:10;;2949:58;2970:4;;:11;;2966:1;:15;2949:58;;;3000:4;;3005:1;3000:7;;;;;;;:::i;:::-;;;;;;;;2994:3;:13;;;;:::i;:::-;2988:19;;2983:3;;;;;;;2949:58;;;;2867:147;;;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:117::-;950:1;947;940:12;964:117;1073:1;1070;1063:12;1087:117;1196:1;1193;1186:12;1227:568;1300:8;1310:6;1360:3;1353:4;1345:6;1341:17;1337:27;1327:122;;1368:79;;:::i;:::-;1327:122;1481:6;1468:20;1458:30;;1511:18;1503:6;1500:30;1497:117;;;1533:79;;:::i;:::-;1497:117;1647:4;1639:6;1635:17;1623:29;;1701:3;1693:4;1685:6;1681:17;1671:8;1667:32;1664:41;1661:128;;;1708:79;;:::i;:::-;1661:128;1227:568;;;;;:::o;1818:::-;1891:8;1901:6;1951:3;1944:4;1936:6;1932:17;1928:27;1918:122;;1959:79;;:::i;:::-;1918:122;2072:6;2059:20;2049:30;;2102:18;2094:6;2091:30;2088:117;;;2124:79;;:::i;:::-;2088:117;2238:4;2230:6;2226:17;2214:29;;2292:3;2284:4;2276:6;2272:17;2262:8;2258:32;2255:41;2252:128;;;2299:79;;:::i;:::-;2252:128;1818:568;;;;;:::o;2392:1079::-;2523:6;2531;2539;2547;2555;2604:2;2592:9;2583:7;2579:23;2575:32;2572:119;;;2610:79;;:::i;:::-;2572:119;2730:1;2755:53;2800:7;2791:6;2780:9;2776:22;2755:53;:::i;:::-;2745:63;;2701:117;2885:2;2874:9;2870:18;2857:32;2916:18;2908:6;2905:30;2902:117;;;2938:79;;:::i;:::-;2902:117;3051:80;3123:7;3114:6;3103:9;3099:22;3051:80;:::i;:::-;3033:98;;;;2828:313;3208:2;3197:9;3193:18;3180:32;3239:18;3231:6;3228:30;3225:117;;;3261:79;;:::i;:::-;3225:117;3374:80;3446:7;3437:6;3426:9;3422:22;3374:80;:::i;:::-;3356:98;;;;3151:313;2392:1079;;;;;;;;:::o;3502:576::-;3583:8;3593:6;3643:3;3636:4;3628:6;3624:17;3620:27;3610:122;;3651:79;;:::i;:::-;3610:122;3764:6;3751:20;3741:30;;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3930:4;3922:6;3918:17;3906:29;;3984:3;3976:4;3968:6;3964:17;3954:8;3950:32;3947:41;3944:128;;;3991:79;;:::i;:::-;3944:128;3502:576;;;;;:::o;4084:950::-;4214:6;4222;4230;4238;4287:2;4275:9;4266:7;4262:23;4258:32;4255:119;;;4293:79;;:::i;:::-;4255:119;4441:1;4430:9;4426:17;4413:31;4471:18;4463:6;4460:30;4457:117;;;4493:79;;:::i;:::-;4457:117;4606:88;4686:7;4677:6;4666:9;4662:22;4606:88;:::i;:::-;4588:106;;;;4384:320;4771:2;4760:9;4756:18;4743:32;4802:18;4794:6;4791:30;4788:117;;;4824:79;;:::i;:::-;4788:117;4937:80;5009:7;5000:6;4989:9;4985:22;4937:80;:::i;:::-;4919:98;;;;4714:313;4084:950;;;;;;;:::o;5040:329::-;5099:6;5148:2;5136:9;5127:7;5123:23;5119:32;5116:119;;;5154:79;;:::i;:::-;5116:119;5274:1;5299:53;5344:7;5335:6;5324:9;5320:22;5299:53;:::i;:::-;5289:63;;5245:117;5040:329;;;;:::o;5375:559::-;5461:6;5469;5518:2;5506:9;5497:7;5493:23;5489:32;5486:119;;;5524:79;;:::i;:::-;5486:119;5672:1;5661:9;5657:17;5644:31;5702:18;5694:6;5691:30;5688:117;;;5724:79;;:::i;:::-;5688:117;5837:80;5909:7;5900:6;5889:9;5885:22;5837:80;:::i;:::-;5819:98;;;;5615:312;5375:559;;;;;:::o;5940:77::-;5977:7;6006:5;5995:16;;5940:77;;;:::o;6023:118::-;6110:24;6128:5;6110:24;:::i;:::-;6105:3;6098:37;6023:118;;:::o;6147:222::-;6240:4;6278:2;6267:9;6263:18;6255:26;;6291:71;6359:1;6348:9;6344:17;6335:6;6291:71;:::i;:::-;6147:222;;;;:::o;6375:169::-;6459:11;6493:6;6488:3;6481:19;6533:4;6528:3;6524:14;6509:29;;6375:169;;;;:::o;6550:229::-;6690:34;6686:1;6678:6;6674:14;6667:58;6759:12;6754:2;6746:6;6742:15;6735:37;6550:229;:::o;6785:366::-;6927:3;6948:67;7012:2;7007:3;6948:67;:::i;:::-;6941:74;;7024:93;7113:3;7024:93;:::i;:::-;7142:2;7137:3;7133:12;7126:19;;6785:366;;;:::o;7157:419::-;7323:4;7361:2;7350:9;7346:18;7338:26;;7410:9;7404:4;7400:20;7396:1;7385:9;7381:17;7374:47;7438:131;7564:4;7438:131;:::i;:::-;7430:139;;7157:419;;;:::o;7582:118::-;7669:24;7687:5;7669:24;:::i;:::-;7664:3;7657:37;7582:118;;:::o;7706:332::-;7827:4;7865:2;7854:9;7850:18;7842:26;;7878:71;7946:1;7935:9;7931:17;7922:6;7878:71;:::i;:::-;7959:72;8027:2;8016:9;8012:18;8003:6;7959:72;:::i;:::-;7706:332;;;;;:::o;8044:122::-;8117:24;8135:5;8117:24;:::i;:::-;8110:5;8107:35;8097:63;;8156:1;8153;8146:12;8097:63;8044:122;:::o;8172:143::-;8229:5;8260:6;8254:13;8245:22;;8276:33;8303:5;8276:33;:::i;:::-;8172:143;;;;:::o;8321:351::-;8391:6;8440:2;8428:9;8419:7;8415:23;8411:32;8408:119;;;8446:79;;:::i;:::-;8408:119;8566:1;8591:64;8647:7;8638:6;8627:9;8623:22;8591:64;:::i;:::-;8581:74;;8537:128;8321:351;;;;:::o;8678:174::-;8818:26;8814:1;8806:6;8802:14;8795:50;8678:174;:::o;8858:366::-;9000:3;9021:67;9085:2;9080:3;9021:67;:::i;:::-;9014:74;;9097:93;9186:3;9097:93;:::i;:::-;9215:2;9210:3;9206:12;9199:19;;8858:366;;;:::o;9230:419::-;9396:4;9434:2;9423:9;9419:18;9411:26;;9483:9;9477:4;9473:20;9469:1;9458:9;9454:17;9447:47;9511:131;9637:4;9511:131;:::i;:::-;9503:139;;9230:419;;;:::o;9655:180::-;9703:77;9700:1;9693:88;9800:4;9797:1;9790:15;9824:4;9821:1;9814:15;9841:442;9990:4;10028:2;10017:9;10013:18;10005:26;;10041:71;10109:1;10098:9;10094:17;10085:6;10041:71;:::i;:::-;10122:72;10190:2;10179:9;10175:18;10166:6;10122:72;:::i;:::-;10204;10272:2;10261:9;10257:18;10248:6;10204:72;:::i;:::-;9841:442;;;;;;:::o;10289:90::-;10323:7;10366:5;10359:13;10352:21;10341:32;;10289:90;;;:::o;10385:116::-;10455:21;10470:5;10455:21;:::i;:::-;10448:5;10445:32;10435:60;;10491:1;10488;10481:12;10435:60;10385:116;:::o;10507:137::-;10561:5;10592:6;10586:13;10577:22;;10608:30;10632:5;10608:30;:::i;:::-;10507:137;;;;:::o;10650:345::-;10717:6;10766:2;10754:9;10745:7;10741:23;10737:32;10734:119;;;10772:79;;:::i;:::-;10734:119;10892:1;10917:61;10970:7;10961:6;10950:9;10946:22;10917:61;:::i;:::-;10907:71;;10863:125;10650:345;;;;:::o;11001:171::-;11141:23;11137:1;11129:6;11125:14;11118:47;11001:171;:::o;11178:366::-;11320:3;11341:67;11405:2;11400:3;11341:67;:::i;:::-;11334:74;;11417:93;11506:3;11417:93;:::i;:::-;11535:2;11530:3;11526:12;11519:19;;11178:366;;;:::o;11550:419::-;11716:4;11754:2;11743:9;11739:18;11731:26;;11803:9;11797:4;11793:20;11789:1;11778:9;11774:17;11767:47;11831:131;11957:4;11831:131;:::i;:::-;11823:139;;11550:419;;;:::o;11975:104::-;12020:7;12049:24;12067:5;12049:24;:::i;:::-;12038:35;;11975:104;;;:::o;12085:138::-;12166:32;12192:5;12166:32;:::i;:::-;12159:5;12156:43;12146:71;;12213:1;12210;12203:12;12146:71;12085:138;:::o;12229:155::-;12283:5;12321:6;12308:20;12299:29;;12337:41;12372:5;12337:41;:::i;:::-;12229:155;;;;:::o;12390:345::-;12457:6;12506:2;12494:9;12485:7;12481:23;12477:32;12474:119;;;12512:79;;:::i;:::-;12474:119;12632:1;12657:61;12710:7;12701:6;12690:9;12686:22;12657:61;:::i;:::-;12647:71;;12603:125;12390:345;;;;:::o;12741:147::-;12842:11;12879:3;12864:18;;12741:147;;;;:::o;12894:114::-;;:::o;13014:398::-;13173:3;13194:83;13275:1;13270:3;13194:83;:::i;:::-;13187:90;;13286:93;13375:3;13286:93;:::i;:::-;13404:1;13399:3;13395:11;13388:18;;13014:398;;;:::o;13418:379::-;13602:3;13624:147;13767:3;13624:147;:::i;:::-;13617:154;;13788:3;13781:10;;13418:379;;;:::o;13803:176::-;13943:28;13939:1;13931:6;13927:14;13920:52;13803:176;:::o;13985:366::-;14127:3;14148:67;14212:2;14207:3;14148:67;:::i;:::-;14141:74;;14224:93;14313:3;14224:93;:::i;:::-;14342:2;14337:3;14333:12;14326:19;;13985:366;;;:::o;14357:419::-;14523:4;14561:2;14550:9;14546:18;14538:26;;14610:9;14604:4;14600:20;14596:1;14585:9;14581:17;14574:47;14638:131;14764:4;14638:131;:::i;:::-;14630:139;;14357:419;;;:::o;14782:163::-;14922:15;14918:1;14910:6;14906:14;14899:39;14782:163;:::o;14951:366::-;15093:3;15114:67;15178:2;15173:3;15114:67;:::i;:::-;15107:74;;15190:93;15279:3;15190:93;:::i;:::-;15308:2;15303:3;15299:12;15292:19;;14951:366;;;:::o;15323:419::-;15489:4;15527:2;15516:9;15512:18;15504:26;;15576:9;15570:4;15566:20;15562:1;15551:9;15547:17;15540:47;15604:131;15730:4;15604:131;:::i;:::-;15596:139;;15323:419;;;:::o;15748:180::-;15796:77;15793:1;15786:88;15893:4;15890:1;15883:15;15917:4;15914:1;15907:15;15934:191;15974:3;15993:20;16011:1;15993:20;:::i;:::-;15988:25;;16027:20;16045:1;16027:20;:::i;:::-;16022:25;;16070:1;16067;16063:9;16056:16;;16091:3;16088:1;16085:10;16082:36;;;16098:18;;:::i;:::-;16082:36;15934:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getSum(uint256[])":"ccb8c1e0","multiTransferETH(address[],uint256[])":"77988cf8","multiTransferToken(address,address[],uint256[])":"41ed24a2","withdrawFromFailList(address)":"acacd8ee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_arr\",\"type\":\"uint256[]\"}],\"name\":\"getSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransferToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawFromFailList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multiTransferToken(address,address[],uint256[])\":{\"params\":{\"_addresses\":\"\\u7a7a\\u6295\\u5730\\u5740\\u6570\\u7ec4\",\"_amounts\":\"\\u4ee3\\u5e01\\u6570\\u91cf\\u6570\\u7ec4\\uff08\\u6bcf\\u4e2a\\u5730\\u5740\\u7684\\u7a7a\\u6295\\u6570\\u91cf\\uff09\",\"_token\":\"\\u8f6c\\u8d26\\u7684ERC20\\u4ee3\\u5e01\\u5730\\u5740\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multiTransferETH(address[],uint256[])\":{\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ETH\"},\"multiTransferToken(address,address[],uint256[])\":{\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ERC20\\u4ee3\\u5e01\\uff0c\\u4f7f\\u7528\\u524d\\u9700\\u8981\\u5148\\u6388\\u6743\"}},\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ERC20\\u4ee3\\u5e01\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/Airdrop.sol\":\"Airdrop\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/Airdrop.sol\":{\"keccak256\":\"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c\",\"dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE\"]},\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"_arr","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"getSum","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]},{"inputs":[{"internalType":"address payable[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiTransferETH"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"multiTransferToken"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFromFailList"}],"devdoc":{"kind":"dev","methods":{"multiTransferToken(address,address[],uint256[])":{"params":{"_addresses":"空投地址数组","_amounts":"代币数量数组(每个地址的空投数量)","_token":"转账的ERC20代币地址"}}},"version":1},"userdoc":{"kind":"user","methods":{"multiTransferETH(address[],uint256[])":{"notice":"向多个地址转账ETH"},"multiTransferToken(address,address[],uint256[])":{"notice":"向多个地址转账ERC20代币,使用前需要先授权"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/Airdrop.sol":"Airdrop"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/Airdrop.sol":{"keccak256":"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07","urls":["bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c","dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE"],"license":"MIT"},"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file +{"abi":[{"type":"function","name":"getSum","inputs":[{"name":"_arr","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"multiTransferETH","inputs":[{"name":"_addresses","type":"address[]","internalType":"address payable[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"multiTransferToken","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_addresses","type":"address[]","internalType":"address[]"},{"name":"_amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawFromFailList","inputs":[{"name":"_to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50610e748061001c5f395ff3fe60806040526004361061003e575f3560e01c806341ed24a21461004257806377988cf81461006a578063acacd8ee14610086578063ccb8c1e0146100ae575b5f5ffd5b34801561004d575f5ffd5b50610068600480360381019061006391906107a1565b6100ea565b005b610084600480360381019061007f9190610887565b6102e1565b005b348015610091575f5ffd5b506100ac60048036038101906100a79190610905565b6104cd565b005b3480156100b9575f5ffd5b506100d460048036038101906100cf9190610930565b61063d565b6040516100e19190610993565b60405180910390f35b818190508484905014610132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990610a2c565b60405180910390fd5b5f8590505f610141848461063d565b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161017f929190610a59565b602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be9190610aaa565b10156101ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f690610b1f565b60405180910390fd5b5f5b868690508110156102d7578273ffffffffffffffffffffffffffffffffffffffff166323b872dd3389898581811061023c5761023b610b3d565b5b90506020020160208101906102519190610905565b88888681811061026457610263610b3d565b5b905060200201356040518463ffffffff1660e01b815260040161028993929190610b6a565b6020604051808303815f875af11580156102a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c99190610bd4565b508080600101915050610201565b5050505050505050565b818190508484905014610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a2c565b60405180910390fd5b5f610334838361063d565b9050803414610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f90610c49565b60405180910390fd5b5f5f90505b858590508110156104c5575f86868381811061039c5761039b610b3d565b5b90506020020160208101906103b19190610ca2565b73ffffffffffffffffffffffffffffffffffffffff168585848181106103da576103d9610b3d565b5b905060200201356040516103ed90610cfa565b5f6040518083038185875af1925050503d805f8114610427576040519150601f19603f3d011682016040523d82523d5f602084013e61042c565b606091505b50509050806104b75784848381811061044857610447610b3d565b5b905060200201355f5f89898681811061046457610463610b3d565b5b90506020020160208101906104799190610ca2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061037d565b505050505050565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690610d58565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8273ffffffffffffffffffffffffffffffffffffffff16826040516105b590610cfa565b5f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b5050905080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90610dc0565b60405180910390fd5b505050565b5f5f5f90505b838390508110156106825783838281811061066157610660610b3d565b5b90506020020135826106739190610e0b565b91508080600101915050610643565b5092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ba82610691565b9050919050565b6106ca816106b0565b81146106d4575f5ffd5b50565b5f813590506106e5816106c1565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261070c5761070b6106eb565b5b8235905067ffffffffffffffff811115610729576107286106ef565b5b602083019150836020820283011115610745576107446106f3565b5b9250929050565b5f5f83601f840112610761576107606106eb565b5b8235905067ffffffffffffffff81111561077e5761077d6106ef565b5b60208301915083602082028301111561079a576107996106f3565b5b9250929050565b5f5f5f5f5f606086880312156107ba576107b9610689565b5b5f6107c7888289016106d7565b955050602086013567ffffffffffffffff8111156107e8576107e761068d565b5b6107f4888289016106f7565b9450945050604086013567ffffffffffffffff8111156108175761081661068d565b5b6108238882890161074c565b92509250509295509295909350565b5f5f83601f840112610847576108466106eb565b5b8235905067ffffffffffffffff811115610864576108636106ef565b5b6020830191508360208202830111156108805761087f6106f3565b5b9250929050565b5f5f5f5f6040858703121561089f5761089e610689565b5b5f85013567ffffffffffffffff8111156108bc576108bb61068d565b5b6108c887828801610832565b9450945050602085013567ffffffffffffffff8111156108eb576108ea61068d565b5b6108f78782880161074c565b925092505092959194509250565b5f6020828403121561091a57610919610689565b5b5f610927848285016106d7565b91505092915050565b5f5f6020838503121561094657610945610689565b5b5f83013567ffffffffffffffff8111156109635761096261068d565b5b61096f8582860161074c565b92509250509250929050565b5f819050919050565b61098d8161097b565b82525050565b5f6020820190506109a65f830184610984565b92915050565b5f82825260208201905092915050565b7f4c656e67746873206f662041646472657373657320616e6420416d6f756e74735f8201527f204e4f5420455155414c00000000000000000000000000000000000000000000602082015250565b5f610a16602a836109ac565b9150610a21826109bc565b604082019050919050565b5f6020820190508181035f830152610a4381610a0a565b9050919050565b610a53816106b0565b82525050565b5f604082019050610a6c5f830185610a4a565b610a796020830184610a4a565b9392505050565b610a898161097b565b8114610a93575f5ffd5b50565b5f81519050610aa481610a80565b92915050565b5f60208284031215610abf57610abe610689565b5b5f610acc84828501610a96565b91505092915050565b7f4e65656420417070726f766520455243323020746f6b656e00000000000000005f82015250565b5f610b096018836109ac565b9150610b1482610ad5565b602082019050919050565b5f6020820190508181035f830152610b3681610afd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f606082019050610b7d5f830186610a4a565b610b8a6020830185610a4a565b610b976040830184610984565b949350505050565b5f8115159050919050565b610bb381610b9f565b8114610bbd575f5ffd5b50565b5f81519050610bce81610baa565b92915050565b5f60208284031215610be957610be8610689565b5b5f610bf684828501610bc0565b91505092915050565b7f5472616e7366657220616d6f756e74206572726f7200000000000000000000005f82015250565b5f610c336015836109ac565b9150610c3e82610bff565b602082019050919050565b5f6020820190508181035f830152610c6081610c27565b9050919050565b5f610c7182610691565b9050919050565b610c8181610c67565b8114610c8b575f5ffd5b50565b5f81359050610c9c81610c78565b92915050565b5f60208284031215610cb757610cb6610689565b5b5f610cc484828501610c8e565b91505092915050565b5f81905092915050565b50565b5f610ce55f83610ccd565b9150610cf082610cd7565b5f82019050919050565b5f610d0482610cda565b9150819050919050565b7f596f7520617265206e6f7420696e206661696c6564206c6973740000000000005f82015250565b5f610d42601a836109ac565b9150610d4d82610d0e565b602082019050919050565b5f6020820190508181035f830152610d6f81610d36565b9050919050565b7f4661696c207769746864726177000000000000000000000000000000000000005f82015250565b5f610daa600d836109ac565b9150610db582610d76565b602082019050919050565b5f6020820190508181035f830152610dd781610d9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e158261097b565b9150610e208361097b565b9250828201905080821115610e3857610e37610dde565b5b9291505056fea26469706673582212207d2a44d36b8dea060f7f3153f870510f2afa5990093e8f1b2f20f318e4c12a7a64736f6c63430008220033","sourceMap":"154:2862:76:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806341ed24a21461004257806377988cf81461006a578063acacd8ee14610086578063ccb8c1e0146100ae575b5f5ffd5b34801561004d575f5ffd5b50610068600480360381019061006391906107a1565b6100ea565b005b610084600480360381019061007f9190610887565b6102e1565b005b348015610091575f5ffd5b506100ac60048036038101906100a79190610905565b6104cd565b005b3480156100b9575f5ffd5b506100d460048036038101906100cf9190610930565b61063d565b6040516100e19190610993565b60405180910390f35b818190508484905014610132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990610a2c565b60405180910390fd5b5f8590505f610141848461063d565b9050808273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161017f929190610a59565b602060405180830381865afa15801561019a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be9190610aaa565b10156101ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f690610b1f565b60405180910390fd5b5f5b868690508110156102d7578273ffffffffffffffffffffffffffffffffffffffff166323b872dd3389898581811061023c5761023b610b3d565b5b90506020020160208101906102519190610905565b88888681811061026457610263610b3d565b5b905060200201356040518463ffffffff1660e01b815260040161028993929190610b6a565b6020604051808303815f875af11580156102a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c99190610bd4565b508080600101915050610201565b5050505050505050565b818190508484905014610329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032090610a2c565b60405180910390fd5b5f610334838361063d565b9050803414610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f90610c49565b60405180910390fd5b5f5f90505b858590508110156104c5575f86868381811061039c5761039b610b3d565b5b90506020020160208101906103b19190610ca2565b73ffffffffffffffffffffffffffffffffffffffff168585848181106103da576103d9610b3d565b5b905060200201356040516103ed90610cfa565b5f6040518083038185875af1925050503d805f8114610427576040519150601f19603f3d011682016040523d82523d5f602084013e61042c565b606091505b50509050806104b75784848381811061044857610447610b3d565b5b905060200201355f5f89898681811061046457610463610b3d565b5b90506020020160208101906104799190610ca2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b50808060010191505061037d565b505050505050565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161054f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054690610d58565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8273ffffffffffffffffffffffffffffffffffffffff16826040516105b590610cfa565b5f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b5050905080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90610dc0565b60405180910390fd5b505050565b5f5f5f90505b838390508110156106825783838281811061066157610660610b3d565b5b90506020020135826106739190610e0b565b91508080600101915050610643565b5092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ba82610691565b9050919050565b6106ca816106b0565b81146106d4575f5ffd5b50565b5f813590506106e5816106c1565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261070c5761070b6106eb565b5b8235905067ffffffffffffffff811115610729576107286106ef565b5b602083019150836020820283011115610745576107446106f3565b5b9250929050565b5f5f83601f840112610761576107606106eb565b5b8235905067ffffffffffffffff81111561077e5761077d6106ef565b5b60208301915083602082028301111561079a576107996106f3565b5b9250929050565b5f5f5f5f5f606086880312156107ba576107b9610689565b5b5f6107c7888289016106d7565b955050602086013567ffffffffffffffff8111156107e8576107e761068d565b5b6107f4888289016106f7565b9450945050604086013567ffffffffffffffff8111156108175761081661068d565b5b6108238882890161074c565b92509250509295509295909350565b5f5f83601f840112610847576108466106eb565b5b8235905067ffffffffffffffff811115610864576108636106ef565b5b6020830191508360208202830111156108805761087f6106f3565b5b9250929050565b5f5f5f5f6040858703121561089f5761089e610689565b5b5f85013567ffffffffffffffff8111156108bc576108bb61068d565b5b6108c887828801610832565b9450945050602085013567ffffffffffffffff8111156108eb576108ea61068d565b5b6108f78782880161074c565b925092505092959194509250565b5f6020828403121561091a57610919610689565b5b5f610927848285016106d7565b91505092915050565b5f5f6020838503121561094657610945610689565b5b5f83013567ffffffffffffffff8111156109635761096261068d565b5b61096f8582860161074c565b92509250509250929050565b5f819050919050565b61098d8161097b565b82525050565b5f6020820190506109a65f830184610984565b92915050565b5f82825260208201905092915050565b7f4c656e67746873206f662041646472657373657320616e6420416d6f756e74735f8201527f204e4f5420455155414c00000000000000000000000000000000000000000000602082015250565b5f610a16602a836109ac565b9150610a21826109bc565b604082019050919050565b5f6020820190508181035f830152610a4381610a0a565b9050919050565b610a53816106b0565b82525050565b5f604082019050610a6c5f830185610a4a565b610a796020830184610a4a565b9392505050565b610a898161097b565b8114610a93575f5ffd5b50565b5f81519050610aa481610a80565b92915050565b5f60208284031215610abf57610abe610689565b5b5f610acc84828501610a96565b91505092915050565b7f4e65656420417070726f766520455243323020746f6b656e00000000000000005f82015250565b5f610b096018836109ac565b9150610b1482610ad5565b602082019050919050565b5f6020820190508181035f830152610b3681610afd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f606082019050610b7d5f830186610a4a565b610b8a6020830185610a4a565b610b976040830184610984565b949350505050565b5f8115159050919050565b610bb381610b9f565b8114610bbd575f5ffd5b50565b5f81519050610bce81610baa565b92915050565b5f60208284031215610be957610be8610689565b5b5f610bf684828501610bc0565b91505092915050565b7f5472616e7366657220616d6f756e74206572726f7200000000000000000000005f82015250565b5f610c336015836109ac565b9150610c3e82610bff565b602082019050919050565b5f6020820190508181035f830152610c6081610c27565b9050919050565b5f610c7182610691565b9050919050565b610c8181610c67565b8114610c8b575f5ffd5b50565b5f81359050610c9c81610c78565b92915050565b5f60208284031215610cb757610cb6610689565b5b5f610cc484828501610c8e565b91505092915050565b5f81905092915050565b50565b5f610ce55f83610ccd565b9150610cf082610cd7565b5f82019050919050565b5f610d0482610cda565b9150819050919050565b7f596f7520617265206e6f7420696e206661696c6564206c6973740000000000005f82015250565b5f610d42601a836109ac565b9150610d4d82610d0e565b602082019050919050565b5f6020820190508181035f830152610d6f81610d36565b9050919050565b7f4661696c207769746864726177000000000000000000000000000000000000005f82015250565b5f610daa600d836109ac565b9150610db582610d76565b602082019050919050565b5f6020820190508181035f830152610dd781610d9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e158261097b565b9150610e208361097b565b9250828201905080821115610e3857610e37610dde565b5b9291505056fea26469706673582212207d2a44d36b8dea060f7f3153f870510f2afa5990093e8f1b2f20f318e4c12a7a64736f6c63430008220033","sourceMap":"154:2862:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;479:880;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1398:1063;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2514:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2867:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;479:880;737:8;;:15;;716:10;;:17;;:36;695:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;830:12;852:6;830:29;;895:15;913:16;920:8;;913:6;:16::i;:::-;895:34;;1095:10;1049:5;:15;;;1065:10;1085:4;1049:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;1028:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;1231:9;1226:127;1246:10;;:17;;1242:1;:21;1226:127;;;1284:5;:18;;;1303:10;1315;;1326:1;1315:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1330:8;;1339:1;1330:11;;;;;;;:::i;:::-;;;;;;;;1284:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1265:3;;;;;;;1226:127;;;;622:737;;479:880;;;;;:::o;1398:1063::-;1644:8;;:15;;1623:10;;:17;;:36;1602:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;1737:15;1755:16;1762:8;;1755:6;:16::i;:::-;1737:34;;1872:10;1859:9;:23;1851:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1976:9;1988:1;1976:13;;1971:484;1995:10;;:17;;1991:1;:21;1971:484;;;2279:12;2297:10;;2308:1;2297:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:18;;2323:8;;2332:1;2323:11;;;;;;;:::i;:::-;;;;;;;;2297:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2278:61;;;2358:7;2353:92;;2419:8;;2428:1;2419:11;;;;;;;:::i;:::-;;;;;;;;2385:16;:31;2402:10;;2413:1;2402:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2385:31;;;;;;;;;;;;;;;:45;;;;2353:92;2019:436;2014:3;;;;;;;1971:484;;;;1529:932;1398:1063;;;;:::o;2514:321::-;2574:15;2592:16;:28;2609:10;2592:28;;;;;;;;;;;;;;;;2574:46;;2651:1;2638:10;:14;2630:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;2724:1;2693:16;:28;2710:10;2693:28;;;;;;;;;;;;;;;:32;;;;2736:12;2754:3;:8;;2770:10;2754:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2735:50;;;2803:7;2795:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;2564:271;;2514:321;:::o;2867:147::-;2929:8;2954:6;2963:1;2954:10;;2949:58;2970:4;;:11;;2966:1;:15;2949:58;;;3000:4;;3005:1;3000:7;;;;;;;:::i;:::-;;;;;;;;2994:3;:13;;;;:::i;:::-;2988:19;;2983:3;;;;;;;2949:58;;;;2867:147;;;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:117::-;950:1;947;940:12;964:117;1073:1;1070;1063:12;1087:117;1196:1;1193;1186:12;1227:568;1300:8;1310:6;1360:3;1353:4;1345:6;1341:17;1337:27;1327:122;;1368:79;;:::i;:::-;1327:122;1481:6;1468:20;1458:30;;1511:18;1503:6;1500:30;1497:117;;;1533:79;;:::i;:::-;1497:117;1647:4;1639:6;1635:17;1623:29;;1701:3;1693:4;1685:6;1681:17;1671:8;1667:32;1664:41;1661:128;;;1708:79;;:::i;:::-;1661:128;1227:568;;;;;:::o;1818:::-;1891:8;1901:6;1951:3;1944:4;1936:6;1932:17;1928:27;1918:122;;1959:79;;:::i;:::-;1918:122;2072:6;2059:20;2049:30;;2102:18;2094:6;2091:30;2088:117;;;2124:79;;:::i;:::-;2088:117;2238:4;2230:6;2226:17;2214:29;;2292:3;2284:4;2276:6;2272:17;2262:8;2258:32;2255:41;2252:128;;;2299:79;;:::i;:::-;2252:128;1818:568;;;;;:::o;2392:1079::-;2523:6;2531;2539;2547;2555;2604:2;2592:9;2583:7;2579:23;2575:32;2572:119;;;2610:79;;:::i;:::-;2572:119;2730:1;2755:53;2800:7;2791:6;2780:9;2776:22;2755:53;:::i;:::-;2745:63;;2701:117;2885:2;2874:9;2870:18;2857:32;2916:18;2908:6;2905:30;2902:117;;;2938:79;;:::i;:::-;2902:117;3051:80;3123:7;3114:6;3103:9;3099:22;3051:80;:::i;:::-;3033:98;;;;2828:313;3208:2;3197:9;3193:18;3180:32;3239:18;3231:6;3228:30;3225:117;;;3261:79;;:::i;:::-;3225:117;3374:80;3446:7;3437:6;3426:9;3422:22;3374:80;:::i;:::-;3356:98;;;;3151:313;2392:1079;;;;;;;;:::o;3502:576::-;3583:8;3593:6;3643:3;3636:4;3628:6;3624:17;3620:27;3610:122;;3651:79;;:::i;:::-;3610:122;3764:6;3751:20;3741:30;;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3930:4;3922:6;3918:17;3906:29;;3984:3;3976:4;3968:6;3964:17;3954:8;3950:32;3947:41;3944:128;;;3991:79;;:::i;:::-;3944:128;3502:576;;;;;:::o;4084:950::-;4214:6;4222;4230;4238;4287:2;4275:9;4266:7;4262:23;4258:32;4255:119;;;4293:79;;:::i;:::-;4255:119;4441:1;4430:9;4426:17;4413:31;4471:18;4463:6;4460:30;4457:117;;;4493:79;;:::i;:::-;4457:117;4606:88;4686:7;4677:6;4666:9;4662:22;4606:88;:::i;:::-;4588:106;;;;4384:320;4771:2;4760:9;4756:18;4743:32;4802:18;4794:6;4791:30;4788:117;;;4824:79;;:::i;:::-;4788:117;4937:80;5009:7;5000:6;4989:9;4985:22;4937:80;:::i;:::-;4919:98;;;;4714:313;4084:950;;;;;;;:::o;5040:329::-;5099:6;5148:2;5136:9;5127:7;5123:23;5119:32;5116:119;;;5154:79;;:::i;:::-;5116:119;5274:1;5299:53;5344:7;5335:6;5324:9;5320:22;5299:53;:::i;:::-;5289:63;;5245:117;5040:329;;;;:::o;5375:559::-;5461:6;5469;5518:2;5506:9;5497:7;5493:23;5489:32;5486:119;;;5524:79;;:::i;:::-;5486:119;5672:1;5661:9;5657:17;5644:31;5702:18;5694:6;5691:30;5688:117;;;5724:79;;:::i;:::-;5688:117;5837:80;5909:7;5900:6;5889:9;5885:22;5837:80;:::i;:::-;5819:98;;;;5615:312;5375:559;;;;;:::o;5940:77::-;5977:7;6006:5;5995:16;;5940:77;;;:::o;6023:118::-;6110:24;6128:5;6110:24;:::i;:::-;6105:3;6098:37;6023:118;;:::o;6147:222::-;6240:4;6278:2;6267:9;6263:18;6255:26;;6291:71;6359:1;6348:9;6344:17;6335:6;6291:71;:::i;:::-;6147:222;;;;:::o;6375:169::-;6459:11;6493:6;6488:3;6481:19;6533:4;6528:3;6524:14;6509:29;;6375:169;;;;:::o;6550:229::-;6690:34;6686:1;6678:6;6674:14;6667:58;6759:12;6754:2;6746:6;6742:15;6735:37;6550:229;:::o;6785:366::-;6927:3;6948:67;7012:2;7007:3;6948:67;:::i;:::-;6941:74;;7024:93;7113:3;7024:93;:::i;:::-;7142:2;7137:3;7133:12;7126:19;;6785:366;;;:::o;7157:419::-;7323:4;7361:2;7350:9;7346:18;7338:26;;7410:9;7404:4;7400:20;7396:1;7385:9;7381:17;7374:47;7438:131;7564:4;7438:131;:::i;:::-;7430:139;;7157:419;;;:::o;7582:118::-;7669:24;7687:5;7669:24;:::i;:::-;7664:3;7657:37;7582:118;;:::o;7706:332::-;7827:4;7865:2;7854:9;7850:18;7842:26;;7878:71;7946:1;7935:9;7931:17;7922:6;7878:71;:::i;:::-;7959:72;8027:2;8016:9;8012:18;8003:6;7959:72;:::i;:::-;7706:332;;;;;:::o;8044:122::-;8117:24;8135:5;8117:24;:::i;:::-;8110:5;8107:35;8097:63;;8156:1;8153;8146:12;8097:63;8044:122;:::o;8172:143::-;8229:5;8260:6;8254:13;8245:22;;8276:33;8303:5;8276:33;:::i;:::-;8172:143;;;;:::o;8321:351::-;8391:6;8440:2;8428:9;8419:7;8415:23;8411:32;8408:119;;;8446:79;;:::i;:::-;8408:119;8566:1;8591:64;8647:7;8638:6;8627:9;8623:22;8591:64;:::i;:::-;8581:74;;8537:128;8321:351;;;;:::o;8678:174::-;8818:26;8814:1;8806:6;8802:14;8795:50;8678:174;:::o;8858:366::-;9000:3;9021:67;9085:2;9080:3;9021:67;:::i;:::-;9014:74;;9097:93;9186:3;9097:93;:::i;:::-;9215:2;9210:3;9206:12;9199:19;;8858:366;;;:::o;9230:419::-;9396:4;9434:2;9423:9;9419:18;9411:26;;9483:9;9477:4;9473:20;9469:1;9458:9;9454:17;9447:47;9511:131;9637:4;9511:131;:::i;:::-;9503:139;;9230:419;;;:::o;9655:180::-;9703:77;9700:1;9693:88;9800:4;9797:1;9790:15;9824:4;9821:1;9814:15;9841:442;9990:4;10028:2;10017:9;10013:18;10005:26;;10041:71;10109:1;10098:9;10094:17;10085:6;10041:71;:::i;:::-;10122:72;10190:2;10179:9;10175:18;10166:6;10122:72;:::i;:::-;10204;10272:2;10261:9;10257:18;10248:6;10204:72;:::i;:::-;9841:442;;;;;;:::o;10289:90::-;10323:7;10366:5;10359:13;10352:21;10341:32;;10289:90;;;:::o;10385:116::-;10455:21;10470:5;10455:21;:::i;:::-;10448:5;10445:32;10435:60;;10491:1;10488;10481:12;10435:60;10385:116;:::o;10507:137::-;10561:5;10592:6;10586:13;10577:22;;10608:30;10632:5;10608:30;:::i;:::-;10507:137;;;;:::o;10650:345::-;10717:6;10766:2;10754:9;10745:7;10741:23;10737:32;10734:119;;;10772:79;;:::i;:::-;10734:119;10892:1;10917:61;10970:7;10961:6;10950:9;10946:22;10917:61;:::i;:::-;10907:71;;10863:125;10650:345;;;;:::o;11001:171::-;11141:23;11137:1;11129:6;11125:14;11118:47;11001:171;:::o;11178:366::-;11320:3;11341:67;11405:2;11400:3;11341:67;:::i;:::-;11334:74;;11417:93;11506:3;11417:93;:::i;:::-;11535:2;11530:3;11526:12;11519:19;;11178:366;;;:::o;11550:419::-;11716:4;11754:2;11743:9;11739:18;11731:26;;11803:9;11797:4;11793:20;11789:1;11778:9;11774:17;11767:47;11831:131;11957:4;11831:131;:::i;:::-;11823:139;;11550:419;;;:::o;11975:104::-;12020:7;12049:24;12067:5;12049:24;:::i;:::-;12038:35;;11975:104;;;:::o;12085:138::-;12166:32;12192:5;12166:32;:::i;:::-;12159:5;12156:43;12146:71;;12213:1;12210;12203:12;12146:71;12085:138;:::o;12229:155::-;12283:5;12321:6;12308:20;12299:29;;12337:41;12372:5;12337:41;:::i;:::-;12229:155;;;;:::o;12390:345::-;12457:6;12506:2;12494:9;12485:7;12481:23;12477:32;12474:119;;;12512:79;;:::i;:::-;12474:119;12632:1;12657:61;12710:7;12701:6;12690:9;12686:22;12657:61;:::i;:::-;12647:71;;12603:125;12390:345;;;;:::o;12741:147::-;12842:11;12879:3;12864:18;;12741:147;;;;:::o;12894:114::-;;:::o;13014:398::-;13173:3;13194:83;13275:1;13270:3;13194:83;:::i;:::-;13187:90;;13286:93;13375:3;13286:93;:::i;:::-;13404:1;13399:3;13395:11;13388:18;;13014:398;;;:::o;13418:379::-;13602:3;13624:147;13767:3;13624:147;:::i;:::-;13617:154;;13788:3;13781:10;;13418:379;;;:::o;13803:176::-;13943:28;13939:1;13931:6;13927:14;13920:52;13803:176;:::o;13985:366::-;14127:3;14148:67;14212:2;14207:3;14148:67;:::i;:::-;14141:74;;14224:93;14313:3;14224:93;:::i;:::-;14342:2;14337:3;14333:12;14326:19;;13985:366;;;:::o;14357:419::-;14523:4;14561:2;14550:9;14546:18;14538:26;;14610:9;14604:4;14600:20;14596:1;14585:9;14581:17;14574:47;14638:131;14764:4;14638:131;:::i;:::-;14630:139;;14357:419;;;:::o;14782:163::-;14922:15;14918:1;14910:6;14906:14;14899:39;14782:163;:::o;14951:366::-;15093:3;15114:67;15178:2;15173:3;15114:67;:::i;:::-;15107:74;;15190:93;15279:3;15190:93;:::i;:::-;15308:2;15303:3;15299:12;15292:19;;14951:366;;;:::o;15323:419::-;15489:4;15527:2;15516:9;15512:18;15504:26;;15576:9;15570:4;15566:20;15562:1;15551:9;15547:17;15540:47;15604:131;15730:4;15604:131;:::i;:::-;15596:139;;15323:419;;;:::o;15748:180::-;15796:77;15793:1;15786:88;15893:4;15890:1;15883:15;15917:4;15914:1;15907:15;15934:191;15974:3;15993:20;16011:1;15993:20;:::i;:::-;15988:25;;16027:20;16045:1;16027:20;:::i;:::-;16022:25;;16070:1;16067;16063:9;16056:16;;16091:3;16088:1;16085:10;16082:36;;;16098:18;;:::i;:::-;16082:36;15934:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getSum(uint256[])":"ccb8c1e0","multiTransferETH(address[],uint256[])":"77988cf8","multiTransferToken(address,address[],uint256[])":"41ed24a2","withdrawFromFailList(address)":"acacd8ee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_arr\",\"type\":\"uint256[]\"}],\"name\":\"getSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_addresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransferToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawFromFailList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multiTransferToken(address,address[],uint256[])\":{\"params\":{\"_addresses\":\"\\u7a7a\\u6295\\u5730\\u5740\\u6570\\u7ec4\",\"_amounts\":\"\\u4ee3\\u5e01\\u6570\\u91cf\\u6570\\u7ec4\\uff08\\u6bcf\\u4e2a\\u5730\\u5740\\u7684\\u7a7a\\u6295\\u6570\\u91cf\\uff09\",\"_token\":\"\\u8f6c\\u8d26\\u7684ERC20\\u4ee3\\u5e01\\u5730\\u5740\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multiTransferETH(address[],uint256[])\":{\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ETH\"},\"multiTransferToken(address,address[],uint256[])\":{\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ERC20\\u4ee3\\u5e01\\uff0c\\u4f7f\\u7528\\u524d\\u9700\\u8981\\u5148\\u6388\\u6743\"}},\"notice\":\"\\u5411\\u591a\\u4e2a\\u5730\\u5740\\u8f6c\\u8d26ERC20\\u4ee3\\u5e01\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/Airdrop.sol\":\"Airdrop\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/Airdrop.sol\":{\"keccak256\":\"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c\",\"dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE\"]},\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"_arr","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"getSum","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]},{"inputs":[{"internalType":"address payable[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"multiTransferETH"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"multiTransferToken"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawFromFailList"}],"devdoc":{"kind":"dev","methods":{"multiTransferToken(address,address[],uint256[])":{"params":{"_addresses":"空投地址数组","_amounts":"代币数量数组(每个地址的空投数量)","_token":"转账的ERC20代币地址"}}},"version":1},"userdoc":{"kind":"user","methods":{"multiTransferETH(address[],uint256[])":{"notice":"向多个地址转账ETH"},"multiTransferToken(address,address[],uint256[])":{"notice":"向多个地址转账ERC20代币,使用前需要先授权"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/Airdrop.sol":"Airdrop"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/Airdrop.sol":{"keccak256":"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07","urls":["bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c","dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE"],"license":"MIT"},"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file diff --git a/out/Airdrop.sol/ERC20.json b/out/Airdrop.sol/ERC20.json index 23e3e136..178b686f 100644 --- a/out/Airdrop.sol/ERC20.json +++ b/out/Airdrop.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122077e816d00b629cb1e8429fb292c1f4bfdbd65d8a52fd66ae6443e1598fd660b564736f6c63430008220033","sourceMap":"3039:1979:82:-:0;;;3366:2;3342:26;;;;;;;;;;;;;;;;;;;;3391:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3464:5;3457:4;:12;;;;;;:::i;:::-;;3488:7;3479:6;:16;;;;;;:::i;:::-;;3391:111;;3039:1979;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;3039:1979:82:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122077e816d00b629cb1e8429fb292c1f4bfdbd65d8a52fd66ae6443e1598fd660b564736f6c63430008220033","sourceMap":"3039:1979:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3271:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3892:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3210:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4193:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4846:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3070:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3305:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4601:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3564:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3271:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3892:229::-;3986:4;4035:6;4002:9;:21;4012:10;4002:21;;;;;;;;;;;;;;;:30;4024:7;4002:30;;;;;;;;;;;;;;;:39;;;;4077:7;4056:37;;4065:10;4056:37;;;4086:6;4056:37;;;;;;:::i;:::-;;;;;;;;4110:4;4103:11;;3892:229;;;;:::o;3210:35::-;;;;:::o;4193:335::-;4318:4;4367:6;4334:9;:17;4344:6;4334:17;;;;;;;;;;;;;;;:29;4352:10;4334:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;4404:6;4383:9;:17;4393:6;4383:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4444:6;4420:9;:20;4430:9;4420:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4482:9;4465:35;;4474:6;4465:35;;;4493:6;4465:35;;;;;;:::i;:::-;;;;;;;;4517:4;4510:11;;4193:335;;;;;:::o;3342:26::-;;;;;;;;;;;;;:::o;4846:170::-;4917:6;4892:9;:21;4902:10;4892:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;4948:6;4933:11;;:21;;;;;;;:::i;:::-;;;;;;;;4998:1;4969:40;;4978:10;4969:40;;;5002:6;4969:40;;;;;;:::i;:::-;;;;;;;;4846:170;:::o;3070:53::-;;;;;;;;;;;;;;;;;:::o;3305:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4601:170::-;4672:6;4647:9;:21;4657:10;4647:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;4703:6;4688:11;;:21;;;;;;;:::i;:::-;;;;;;;;4745:10;4724:40;;4741:1;4724:40;;;4757:6;4724:40;;;;;;:::i;:::-;;;;;;;;4601:170;:::o;3564:266::-;3661:4;3702:6;3677:9;:21;3687:10;3677:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;3742:6;3718:9;:20;3728:9;3718:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3784:9;3763:39;;3772:10;3763:39;;;3795:6;3763:39;;;;;;:::i;:::-;;;;;;;;3819:4;3812:11;;3564:266;;;;:::o;3130:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/Airdrop.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/Airdrop.sol\":{\"keccak256\":\"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c\",\"dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE\"]},\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/Airdrop.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/Airdrop.sol":{"keccak256":"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07","urls":["bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c","dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE"],"license":"MIT"},"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122077e816d00b629cb1e8429fb292c1f4bfdbd65d8a52fd66ae6443e1598fd660b564736f6c63430008220033","sourceMap":"3039:1979:76:-:0;;;3366:2;3342:26;;;;;;;;;;;;;;;;;;;;3391:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3464:5;3457:4;:12;;;;;;:::i;:::-;;3488:7;3479:6;:16;;;;;;:::i;:::-;;3391:111;;3039:1979;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;3039:1979:76:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122077e816d00b629cb1e8429fb292c1f4bfdbd65d8a52fd66ae6443e1598fd660b564736f6c63430008220033","sourceMap":"3039:1979:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3271:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3892:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3210:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4193:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4846:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3070:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3305:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4601:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3564:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3271:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3892:229::-;3986:4;4035:6;4002:9;:21;4012:10;4002:21;;;;;;;;;;;;;;;:30;4024:7;4002:30;;;;;;;;;;;;;;;:39;;;;4077:7;4056:37;;4065:10;4056:37;;;4086:6;4056:37;;;;;;:::i;:::-;;;;;;;;4110:4;4103:11;;3892:229;;;;:::o;3210:35::-;;;;:::o;4193:335::-;4318:4;4367:6;4334:9;:17;4344:6;4334:17;;;;;;;;;;;;;;;:29;4352:10;4334:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;4404:6;4383:9;:17;4393:6;4383:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4444:6;4420:9;:20;4430:9;4420:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4482:9;4465:35;;4474:6;4465:35;;;4493:6;4465:35;;;;;;:::i;:::-;;;;;;;;4517:4;4510:11;;4193:335;;;;;:::o;3342:26::-;;;;;;;;;;;;;:::o;4846:170::-;4917:6;4892:9;:21;4902:10;4892:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;4948:6;4933:11;;:21;;;;;;;:::i;:::-;;;;;;;;4998:1;4969:40;;4978:10;4969:40;;;5002:6;4969:40;;;;;;:::i;:::-;;;;;;;;4846:170;:::o;3070:53::-;;;;;;;;;;;;;;;;;:::o;3305:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4601:170::-;4672:6;4647:9;:21;4657:10;4647:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;4703:6;4688:11;;:21;;;;;;;:::i;:::-;;;;;;;;4745:10;4724:40;;4741:1;4724:40;;;4757:6;4724:40;;;;;;:::i;:::-;;;;;;;;4601:170;:::o;3564:266::-;3661:4;3702:6;3677:9;:21;3687:10;3677:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;3742:6;3718:9;:20;3728:9;3718:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3784:9;3763:39;;3772:10;3763:39;;;3795:6;3763:39;;;;;;:::i;:::-;;;;;;;;3819:4;3812:11;;3564:266;;;;:::o;3130:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/33_Airdrop/Airdrop.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/33_Airdrop/Airdrop.sol\":{\"keccak256\":\"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c\",\"dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE\"]},\"src/33_Airdrop/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/33_Airdrop/Airdrop.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/33_Airdrop/Airdrop.sol":{"keccak256":"0x0e7d1c59319bfc1f464a3035afb59a861bc9c1422e8f0a1d716ee46355533b07","urls":["bzz-raw://f1017fbdf0d07f574e636a78783da95271433a52666171ce5edd2cf59e66b57c","dweb:/ipfs/QmfU6qYU6xN2JzE6o1RUybvFLrpDunCGsM5KhFsGzdkLCE"],"license":"MIT"},"src/33_Airdrop/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file diff --git a/out/ArrayAndStruct.sol/ArrayTypes.json b/out/ArrayAndStruct.sol/ArrayTypes.json index 37c9345e..aed8ff4c 100644 --- a/out/ArrayAndStruct.sol/ArrayTypes.json +++ b/out/ArrayAndStruct.sol/ArrayTypes.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"arrayPush","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"initArray","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052600567ffffffffffffffff81111561001f5761001e6100cb565b5b60405190808252806020026020018201604052801561004d5781602001602082028036833780820191505090505b506071908161005c91906102d6565b50600967ffffffffffffffff811115610078576100776100cb565b5b6040519080825280601f01601f1916602001820160405280156100aa5781602001600182028036833780820191505090505b50607290816100b99190610492565b503480156100c5575f5ffd5b50610561565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f819050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261016c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610131565b6101768683610131565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6101b16101ac6101a784610102565b61018e565b610102565b9050919050565b5f819050919050565b6101ca83610197565b6101de6101d6826101b8565b84845461013d565b825550505050565b5f5f905090565b6101f56101e6565b6102008184846101c1565b505050565b5f5b828110156102265761021b5f8284016101ed565b600181019050610207565b505050565b5f82821c905092915050565b8183101561026e576102488261010b565b6102518461010b565b61025a8361011f565b81810161026983850382610205565b505050505b505050565b6801000000000000000082111561028d5761028c6100cb565b5b610296816100f8565b8282556102a4838284610237565b505050565b5f81519050919050565b5f6102be8251610102565b80915050919050565b5f819050602082019050919050565b6102df826102a9565b67ffffffffffffffff8111156102f8576102f76100cb565b5b6103028183610273565b61030b836102c7565b6103148361011f565b600183045f5b81811015610351575f61032c856102b3565b610335816101b8565b809250602087019650505080828501555060018101905061031a565b50505050505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a857607f821691505b6020821081036103bb576103ba610364565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f5b82811015610403576103f85f8284016101ed565b6001810190506103e4565b505050565b601f821115610456578282111561045557610422816103c1565b61042b836103d3565b610434856103d3565b6020861015610441575f90505b808301610450828403826103e2565b505050505b5b505050565b5f61046a5f198460080261022b565b1980831691505092915050565b5f610482838361045b565b9150826002028217905092915050565b61049b8261035a565b67ffffffffffffffff8111156104b4576104b36100cb565b5b6104be8254610391565b6104c9828285610408565b5f60209050601f8311600181146104fa575f84156104e8578287015190505b6104f28582610477565b865550610559565b601f198416610508866103c1565b5f5b8281101561052f5784890151825560018201915060208501945060208101905061050a565b8683101561054c5784890151610548601f89168261045b565b8355505b6001600288020188555050505b505050505050565b61058e8061056e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806347f6ac111461003857806382a8181b14610056575b5f5ffd5b610040610074565b60405161004d9190610297565b60405180910390f35b61005e61011c565b60405161006b9190610297565b60405180910390f35b60605f6040518060400160405280600181526020016002815250905080606d908161009f91906104a7565b50606d6003908060018154018082558091505060019003905f5260205f20015f9091909190915055606d80548060200260200160405190810160405280929190818152602001828054801561011157602002820191905f5260205f20905b8154815260200190600101908083116100fd575b505050505091505090565b60605f600367ffffffffffffffff81111561013a576101396102b7565b5b6040519080825280602002602001820160405280156101685781602001602082028036833780820191505090505b5090506001815f815181106101805761017f61052b565b5b6020026020010181815250506003816001815181106101a2576101a161052b565b5b6020026020010181815250506004816002815181106101c4576101c361052b565b5b6020026020010181815250508091505090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61021281610200565b82525050565b5f6102238383610209565b60208301905092915050565b5f602082019050919050565b5f610245826101d7565b61024f81856101e1565b935061025a836101f1565b805f5b8381101561028a5781516102718882610218565b975061027c8361022f565b92505060018101905061025d565b5085935050505092915050565b5f6020820190508181035f8301526102af818461023b565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261034f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610314565b6103598683610314565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61039461038f61038a84610200565b610371565b610200565b9050919050565b5f819050919050565b6103ad8361037a565b6103c16103b98261039b565b848454610320565b825550505050565b5f5f905090565b6103d86103c9565b6103e38184846103a4565b505050565b5f5b82811015610409576103fe5f8284016103d0565b6001810190506103ea565b505050565b818310156104455761041f826102ee565b610428846102ee565b61043183610302565b818101610440838503826103e8565b505050505b505050565b68010000000000000000821115610464576104636102b7565b5b61046d816102e4565b82825561047b83828461040e565b505050565b5f60029050919050565b5f6104958251610200565b80915050919050565b5f819050919050565b6104b082610480565b67ffffffffffffffff8111156104c9576104c86102b7565b5b6104d3818361044a565b6104dc8361049e565b6104e583610302565b600183045f5b81811015610522575f6104fd8561048a565b6105068161039b565b80925060208701965050508082850155506001810190506104eb565b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e3dd00f606543d681ee2098efc7bae718eb2703d1f02ce2eb5e817879b47c02e64736f6c63430008220033","sourceMap":"57:718:49:-:0;;;347:1;336:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;320:29;;;;;;;:::i;:::-;;380:1;370:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;355:27;;;;;;;:::i;:::-;;57:718;;;;;;;;;;;;7:180:145;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:111;257:6;291:5;285:12;275:22;;193:111;;;:::o;310:77::-;347:7;376:5;365:16;;310:77;;;:::o;995:203::-;1076:4;1099:6;1091:14;;1189:1;1184;1181;1177:9;1169:6;1165:22;1161:30;1153:38;;995:203;;;:::o;1203:156::-;1267:4;1290:3;1282:11;;1313:3;1310:1;1303:14;1347:4;1344:1;1334:18;1326:26;;1203:156;;;:::o;1365:107::-;1409:8;1459:5;1453:4;1449:16;1428:37;;1365:107;;;;:::o;1478:393::-;1547:6;1597:1;1585:10;1581:18;1620:97;1650:66;1639:9;1620:97;:::i;:::-;1738:39;1768:8;1757:9;1738:39;:::i;:::-;1726:51;;1810:4;1806:9;1799:5;1795:21;1786:30;;1859:4;1849:8;1845:19;1838:5;1835:30;1825:40;;1554:317;;1478:393;;;;;:::o;1877:60::-;1905:3;1926:5;1919:12;;1877:60;;;:::o;1943:142::-;1993:9;2026:53;2044:34;2053:24;2071:5;2053:24;:::i;:::-;2044:34;:::i;:::-;2026:53;:::i;:::-;2013:66;;1943:142;;;:::o;2091:75::-;2134:3;2155:5;2148:12;;2091:75;;;:::o;2172:269::-;2282:39;2313:7;2282:39;:::i;:::-;2343:91;2392:41;2416:16;2392:41;:::i;:::-;2384:6;2377:4;2371:11;2343:91;:::i;:::-;2337:4;2330:105;2248:193;2172:269;;;:::o;2447:73::-;2492:3;2513:1;2506:8;;2447:73;:::o;2526:189::-;2603:32;;:::i;:::-;2644:65;2702:6;2694;2688:4;2644:65;:::i;:::-;2579:136;2526:189;;:::o;2721:215::-;2807:1;2792:138;2817:9;2814:1;2811:16;2792:138;;;2869:51;2918:1;2914;2903:9;2899:17;2869:51;:::i;:::-;2842:1;2839;2835:9;2830:14;;2792:138;;;2796:14;2721:215;;:::o;2942:117::-;2996:8;3046:5;3040:4;3036:16;3015:37;;2942:117;;;;:::o;3315:640::-;3435:3;3423:10;3420:19;3417:531;;;3526:65;3587:3;3526:65;:::i;:::-;3624:72;3685:10;3624:72;:::i;:::-;3731:53;3778:5;3731:53;:::i;:::-;3836:12;3820:14;3816:33;3863:75;3924:12;3910;3906:31;3893:11;3863:75;:::i;:::-;3440:508;;;;3417:531;3315:640;;;:::o;3961:388::-;4054:20;4046:6;4043:32;4040:78;;;4090:18;;:::i;:::-;4040:78;4142:51;4187:5;4142:51;:::i;:::-;4245:6;4238:5;4231:21;4262:80;4335:6;4327;4320:5;4262:80;:::i;:::-;4030:319;3961:388;;:::o;4354:114::-;4421:6;4455:5;4449:12;4439:22;;4354:114;;;:::o;4474:154::-;4517:11;4553:29;4577:3;4571:10;4553:29;:::i;:::-;4616:5;4592:29;;4529:99;4474:154;;;:::o;4634:132::-;4701:4;4724:3;4716:11;;4754:4;4749:3;4745:14;4737:22;;4634:132;;;:::o;5069:1001::-;5210:52;5258:3;5210:52;:::i;:::-;5327:18;5319:6;5316:30;5313:56;;;5349:18;;:::i;:::-;5313:56;5378:57;5428:6;5423:3;5378:57;:::i;:::-;5459:54;5509:3;5459:54;:::i;:::-;5537:51;5584:3;5537:51;:::i;:::-;5627:1;5619:6;5615:14;5654:1;5639:424;5664:9;5661:1;5658:16;5639:424;;;5728:1;5781:33;5807:6;5781:33;:::i;:::-;5849:36;5873:11;5849:36;:::i;:::-;5935:9;5902:42;;5984:2;5976:6;5972:15;5962:25;;5743:259;;6040:12;6036:1;6027:7;6023:15;6016:37;5694:369;5689:1;5686;5682:9;5677:14;;5639:424;;;5643:14;5185:885;;;;5069:1001;;:::o;6076:98::-;6127:6;6161:5;6155:12;6145:22;;6076:98;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:320;6410:6;6447:1;6441:4;6437:12;6427:22;;6494:1;6488:4;6484:12;6515:18;6505:81;;6571:4;6563:6;6559:17;6549:27;;6505:81;6633:2;6625:6;6622:14;6602:18;6599:38;6596:84;;6652:18;;:::i;:::-;6596:84;6417:269;6366:320;;;:::o;6692:140::-;6740:4;6763:3;6755:11;;6786:3;6783:1;6776:14;6820:4;6817:1;6807:18;6799:26;;6692:140;;;:::o;6838:93::-;6875:6;6922:2;6917;6910:5;6906:14;6902:23;6892:33;;6838:93;;;:::o;6937:214::-;7022:1;7007:138;7032:9;7029:1;7026:16;7007:138;;;7084:51;7133:1;7129;7118:9;7114:17;7084:51;:::i;:::-;7057:1;7054;7050:9;7045:14;;7007:138;;;7011:14;6937:214;;:::o;7157:744::-;7257:2;7252:3;7249:11;7246:648;;;7286:10;7281:3;7278:19;7275:609;;;7332:37;7363:5;7332:37;:::i;:::-;7406:22;7424:3;7406:22;:::i;:::-;7465:29;7483:10;7465:29;:::i;:::-;7655:2;7643:10;7640:18;7637:79;;;7697:1;7681:17;;7637:79;7766:12;7756:8;7752:27;7796:74;7856:12;7842;7838:31;7825:11;7796:74;:::i;:::-;7298:586;;;;7275:609;7246:648;7157:744;;;:::o;7907:169::-;7951:6;7984:51;8032:1;8028:6;8020:5;8017:1;8013:13;7984:51;:::i;:::-;7980:56;8065:4;8059;8055:15;8045:25;;7958:118;7907:169;;;;:::o;8081:295::-;8157:4;8303:29;8328:3;8322:4;8303:29;:::i;:::-;8295:37;;8365:3;8362:1;8358:11;8352:4;8349:21;8341:29;;8081:295;;;;:::o;8381:1390::-;8496:36;8528:3;8496:36;:::i;:::-;8597:18;8589:6;8586:30;8583:56;;;8619:18;;:::i;:::-;8583:56;8663:38;8695:4;8689:11;8663:38;:::i;:::-;8748:66;8807:6;8799;8793:4;8748:66;:::i;:::-;8841:1;8865:4;8852:17;;8897:2;8889:6;8886:14;8914:1;8909:617;;;;9570:1;9587:6;9584:77;;;9636:9;9631:3;9627:19;9621:26;9612:35;;9584:77;9687:67;9747:6;9740:5;9687:67;:::i;:::-;9681:4;9674:81;9543:222;8879:886;;8909:617;8961:4;8957:9;8949:6;8945:22;8995:36;9026:4;8995:36;:::i;:::-;9053:1;9067:208;9081:7;9078:1;9075:14;9067:208;;;9160:9;9155:3;9151:19;9145:26;9137:6;9130:42;9211:1;9203:6;9199:14;9189:24;;9258:2;9247:9;9243:18;9230:31;;9104:4;9101:1;9097:12;9092:17;;9067:208;;;9303:6;9294:7;9291:19;9288:179;;;9361:9;9356:3;9352:19;9346:26;9404:48;9446:4;9438:6;9434:17;9423:9;9404:48;:::i;:::-;9396:6;9389:64;9311:156;9288:179;9513:1;9509;9501:6;9497:14;9493:22;9487:4;9480:36;8916:610;;;8879:886;;8471:1300;;;8381:1390;;:::o;57:718:49:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806347f6ac111461003857806382a8181b14610056575b5f5ffd5b610040610074565b60405161004d9190610297565b60405180910390f35b61005e61011c565b60405161006b9190610297565b60405180910390f35b60605f6040518060400160405280600181526020016002815250905080606d908161009f91906104a7565b50606d6003908060018154018082558091505060019003905f5260205f20015f9091909190915055606d80548060200260200160405190810160405280929190818152602001828054801561011157602002820191905f5260205f20905b8154815260200190600101908083116100fd575b505050505091505090565b60605f600367ffffffffffffffff81111561013a576101396102b7565b5b6040519080825280602002602001820160405280156101685781602001602082028036833780820191505090505b5090506001815f815181106101805761017f61052b565b5b6020026020010181815250506003816001815181106101a2576101a161052b565b5b6020026020010181815250506004816002815181106101c4576101c361052b565b5b6020026020010181815250508091505090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61021281610200565b82525050565b5f6102238383610209565b60208301905092915050565b5f602082019050919050565b5f610245826101d7565b61024f81856101e1565b935061025a836101f1565b805f5b8381101561028a5781516102718882610218565b975061027c8361022f565b92505060018101905061025d565b5085935050505092915050565b5f6020820190508181035f8301526102af818461023b565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261034f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610314565b6103598683610314565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61039461038f61038a84610200565b610371565b610200565b9050919050565b5f819050919050565b6103ad8361037a565b6103c16103b98261039b565b848454610320565b825550505050565b5f5f905090565b6103d86103c9565b6103e38184846103a4565b505050565b5f5b82811015610409576103fe5f8284016103d0565b6001810190506103ea565b505050565b818310156104455761041f826102ee565b610428846102ee565b61043183610302565b818101610440838503826103e8565b505050505b505050565b68010000000000000000821115610464576104636102b7565b5b61046d816102e4565b82825561047b83828461040e565b505050565b5f60029050919050565b5f6104958251610200565b80915050919050565b5f819050919050565b6104b082610480565b67ffffffffffffffff8111156104c9576104c86102b7565b5b6104d3818361044a565b6104dc8361049e565b6104e583610302565b600183045f5b81811015610522575f6104fd8561048a565b6105068161039b565b80925060208701965050508082850155506001810190506104eb565b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e3dd00f606543d681ee2098efc7bae718eb2703d1f02ce2eb5e817879b47c02e64736f6c63430008220033","sourceMap":"57:718:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;609:164;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;424:178;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;609:164;645:13;669:16;:30;;;;;;;;694:1;669:30;;;;697:1;669:30;;;;;718:1;709:6;:10;;;;;;:::i;:::-;;729:6;741:1;729:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:6;753:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;609:164;:::o;424:178::-;467:13;491:15;520:1;509:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:31;;539:1;532;534;532:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;557:1;550;552;550:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;575:1;568;570;568:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;593:1;586:9;;;424:178;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:77::-;492:7;521:5;510:16;;455:77;;;:::o;538:108::-;615:24;633:5;615:24;:::i;:::-;610:3;603:37;538:108;;:::o;652:179::-;721:10;742:46;784:3;776:6;742:46;:::i;:::-;820:4;815:3;811:14;797:28;;652:179;;;;:::o;837:113::-;907:4;939;934:3;930:14;922:22;;837:113;;;:::o;986:732::-;1105:3;1134:54;1182:5;1134:54;:::i;:::-;1204:86;1283:6;1278:3;1204:86;:::i;:::-;1197:93;;1314:56;1364:5;1314:56;:::i;:::-;1393:7;1424:1;1409:284;1434:6;1431:1;1428:13;1409:284;;;1510:6;1504:13;1537:63;1596:3;1581:13;1537:63;:::i;:::-;1530:70;;1623:60;1676:6;1623:60;:::i;:::-;1613:70;;1469:224;1456:1;1453;1449:9;1444:14;;1409:284;;;1413:14;1709:3;1702:10;;1110:608;;;986:732;;;;:::o;1724:373::-;1867:4;1905:2;1894:9;1890:18;1882:26;;1954:9;1948:4;1944:20;1940:1;1929:9;1925:17;1918:47;1982:108;2085:4;2076:6;1982:108;:::i;:::-;1974:116;;1724:373;;;;:::o;2103:180::-;2151:77;2148:1;2141:88;2248:4;2245:1;2238:15;2272:4;2269:1;2262:15;2289:111;2353:6;2387:5;2381:12;2371:22;;2289:111;;;:::o;3008:203::-;3089:4;3112:6;3104:14;;3202:1;3197;3194;3190:9;3182:6;3178:22;3174:30;3166:38;;3008:203;;;:::o;3216:156::-;3280:4;3303:3;3295:11;;3326:3;3323:1;3316:14;3360:4;3357:1;3347:18;3339:26;;3216:156;;;:::o;3378:107::-;3422:8;3472:5;3466:4;3462:16;3441:37;;3378:107;;;;:::o;3491:393::-;3560:6;3610:1;3598:10;3594:18;3633:97;3663:66;3652:9;3633:97;:::i;:::-;3751:39;3781:8;3770:9;3751:39;:::i;:::-;3739:51;;3823:4;3819:9;3812:5;3808:21;3799:30;;3872:4;3862:8;3858:19;3851:5;3848:30;3838:40;;3567:317;;3491:393;;;;;:::o;3890:60::-;3918:3;3939:5;3932:12;;3890:60;;;:::o;3956:142::-;4006:9;4039:53;4057:34;4066:24;4084:5;4066:24;:::i;:::-;4057:34;:::i;:::-;4039:53;:::i;:::-;4026:66;;3956:142;;;:::o;4104:75::-;4147:3;4168:5;4161:12;;4104:75;;;:::o;4185:269::-;4295:39;4326:7;4295:39;:::i;:::-;4356:91;4405:41;4429:16;4405:41;:::i;:::-;4397:6;4390:4;4384:11;4356:91;:::i;:::-;4350:4;4343:105;4261:193;4185:269;;;:::o;4460:73::-;4505:3;4526:1;4519:8;;4460:73;:::o;4539:189::-;4616:32;;:::i;:::-;4657:65;4715:6;4707;4701:4;4657:65;:::i;:::-;4592:136;4539:189;;:::o;4734:215::-;4820:1;4805:138;4830:9;4827:1;4824:16;4805:138;;;4882:51;4931:1;4927;4916:9;4912:17;4882:51;:::i;:::-;4855:1;4852;4848:9;4843:14;;4805:138;;;4809:14;4734:215;;:::o;5328:640::-;5448:3;5436:10;5433:19;5430:531;;;5539:65;5600:3;5539:65;:::i;:::-;5637:72;5698:10;5637:72;:::i;:::-;5744:53;5791:5;5744:53;:::i;:::-;5849:12;5833:14;5829:33;5876:75;5937:12;5923;5919:31;5906:11;5876:75;:::i;:::-;5453:508;;;;5430:531;5328:640;;;:::o;5974:388::-;6067:20;6059:6;6056:32;6053:78;;;6103:18;;:::i;:::-;6053:78;6155:51;6200:5;6155:51;:::i;:::-;6258:6;6251:5;6244:21;6275:80;6348:6;6340;6333:5;6275:80;:::i;:::-;6043:319;5974:388;;:::o;6367:104::-;6432:6;6460:4;6450:14;;6367:104;;;:::o;6477:154::-;6520:11;6556:29;6580:3;6574:10;6556:29;:::i;:::-;6619:5;6595:29;;6532:99;6477:154;;;:::o;6637:98::-;6702:4;6725:3;6717:11;;6637:98;;;:::o;7038:995::-;7177:50;7223:3;7177:50;:::i;:::-;7292:18;7284:6;7281:30;7278:56;;;7314:18;;:::i;:::-;7278:56;7343:57;7393:6;7388:3;7343:57;:::i;:::-;7424:52;7472:3;7424:52;:::i;:::-;7500:51;7547:3;7500:51;:::i;:::-;7590:1;7582:6;7578:14;7617:1;7602:424;7627:9;7624:1;7621:16;7602:424;;;7691:1;7744:33;7770:6;7744:33;:::i;:::-;7812:36;7836:11;7812:36;:::i;:::-;7898:9;7865:42;;7947:2;7939:6;7935:15;7925:25;;7706:259;;8003:12;7999:1;7990:7;7986:15;7979:37;7657:369;7652:1;7649;7645:9;7640:14;;7602:424;;;7606:14;7152:881;;;;7038:995;;:::o;8039:180::-;8087:77;8084:1;8077:88;8184:4;8181:1;8174:15;8208:4;8205:1;8198:15","linkReferences":{}},"methodIdentifiers":{"arrayPush()":"47f6ac11","initArray()":"82a8181b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arrayPush\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":\"ArrayTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":{\"keccak256\":\"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c\",\"dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"arrayPush","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"initArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":"ArrayTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":{"keccak256":"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b","urls":["bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c","dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file +{"abi":[{"type":"function","name":"arrayPush","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"initArray","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052600567ffffffffffffffff81111561001f5761001e6100cb565b5b60405190808252806020026020018201604052801561004d5781602001602082028036833780820191505090505b506071908161005c91906102d6565b50600967ffffffffffffffff811115610078576100776100cb565b5b6040519080825280601f01601f1916602001820160405280156100aa5781602001600182028036833780820191505090505b50607290816100b99190610492565b503480156100c5575f5ffd5b50610561565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f819050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261016c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610131565b6101768683610131565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6101b16101ac6101a784610102565b61018e565b610102565b9050919050565b5f819050919050565b6101ca83610197565b6101de6101d6826101b8565b84845461013d565b825550505050565b5f5f905090565b6101f56101e6565b6102008184846101c1565b505050565b5f5b828110156102265761021b5f8284016101ed565b600181019050610207565b505050565b5f82821c905092915050565b8183101561026e576102488261010b565b6102518461010b565b61025a8361011f565b81810161026983850382610205565b505050505b505050565b6801000000000000000082111561028d5761028c6100cb565b5b610296816100f8565b8282556102a4838284610237565b505050565b5f81519050919050565b5f6102be8251610102565b80915050919050565b5f819050602082019050919050565b6102df826102a9565b67ffffffffffffffff8111156102f8576102f76100cb565b5b6103028183610273565b61030b836102c7565b6103148361011f565b600183045f5b81811015610351575f61032c856102b3565b610335816101b8565b809250602087019650505080828501555060018101905061031a565b50505050505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103a857607f821691505b6020821081036103bb576103ba610364565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f5b82811015610403576103f85f8284016101ed565b6001810190506103e4565b505050565b601f821115610456578282111561045557610422816103c1565b61042b836103d3565b610434856103d3565b6020861015610441575f90505b808301610450828403826103e2565b505050505b5b505050565b5f61046a5f198460080261022b565b1980831691505092915050565b5f610482838361045b565b9150826002028217905092915050565b61049b8261035a565b67ffffffffffffffff8111156104b4576104b36100cb565b5b6104be8254610391565b6104c9828285610408565b5f60209050601f8311600181146104fa575f84156104e8578287015190505b6104f28582610477565b865550610559565b601f198416610508866103c1565b5f5b8281101561052f5784890151825560018201915060208501945060208101905061050a565b8683101561054c5784890151610548601f89168261045b565b8355505b6001600288020188555050505b505050505050565b61058e8061056e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806347f6ac111461003857806382a8181b14610056575b5f5ffd5b610040610074565b60405161004d9190610297565b60405180910390f35b61005e61011c565b60405161006b9190610297565b60405180910390f35b60605f6040518060400160405280600181526020016002815250905080606d908161009f91906104a7565b50606d6003908060018154018082558091505060019003905f5260205f20015f9091909190915055606d80548060200260200160405190810160405280929190818152602001828054801561011157602002820191905f5260205f20905b8154815260200190600101908083116100fd575b505050505091505090565b60605f600367ffffffffffffffff81111561013a576101396102b7565b5b6040519080825280602002602001820160405280156101685781602001602082028036833780820191505090505b5090506001815f815181106101805761017f61052b565b5b6020026020010181815250506003816001815181106101a2576101a161052b565b5b6020026020010181815250506004816002815181106101c4576101c361052b565b5b6020026020010181815250508091505090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61021281610200565b82525050565b5f6102238383610209565b60208301905092915050565b5f602082019050919050565b5f610245826101d7565b61024f81856101e1565b935061025a836101f1565b805f5b8381101561028a5781516102718882610218565b975061027c8361022f565b92505060018101905061025d565b5085935050505092915050565b5f6020820190508181035f8301526102af818461023b565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261034f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610314565b6103598683610314565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61039461038f61038a84610200565b610371565b610200565b9050919050565b5f819050919050565b6103ad8361037a565b6103c16103b98261039b565b848454610320565b825550505050565b5f5f905090565b6103d86103c9565b6103e38184846103a4565b505050565b5f5b82811015610409576103fe5f8284016103d0565b6001810190506103ea565b505050565b818310156104455761041f826102ee565b610428846102ee565b61043183610302565b818101610440838503826103e8565b505050505b505050565b68010000000000000000821115610464576104636102b7565b5b61046d816102e4565b82825561047b83828461040e565b505050565b5f60029050919050565b5f6104958251610200565b80915050919050565b5f819050919050565b6104b082610480565b67ffffffffffffffff8111156104c9576104c86102b7565b5b6104d3818361044a565b6104dc8361049e565b6104e583610302565b600183045f5b81811015610522575f6104fd8561048a565b6105068161039b565b80925060208701965050508082850155506001810190506104eb565b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e3dd00f606543d681ee2098efc7bae718eb2703d1f02ce2eb5e817879b47c02e64736f6c63430008220033","sourceMap":"57:718:49:-:0;;;347:1;336:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;320:29;;;;;;;:::i;:::-;;380:1;370:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;355:27;;;;;;;:::i;:::-;;57:718;;;;;;;;;;;;7:180:139;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:111;257:6;291:5;285:12;275:22;;193:111;;;:::o;310:77::-;347:7;376:5;365:16;;310:77;;;:::o;995:203::-;1076:4;1099:6;1091:14;;1189:1;1184;1181;1177:9;1169:6;1165:22;1161:30;1153:38;;995:203;;;:::o;1203:156::-;1267:4;1290:3;1282:11;;1313:3;1310:1;1303:14;1347:4;1344:1;1334:18;1326:26;;1203:156;;;:::o;1365:107::-;1409:8;1459:5;1453:4;1449:16;1428:37;;1365:107;;;;:::o;1478:393::-;1547:6;1597:1;1585:10;1581:18;1620:97;1650:66;1639:9;1620:97;:::i;:::-;1738:39;1768:8;1757:9;1738:39;:::i;:::-;1726:51;;1810:4;1806:9;1799:5;1795:21;1786:30;;1859:4;1849:8;1845:19;1838:5;1835:30;1825:40;;1554:317;;1478:393;;;;;:::o;1877:60::-;1905:3;1926:5;1919:12;;1877:60;;;:::o;1943:142::-;1993:9;2026:53;2044:34;2053:24;2071:5;2053:24;:::i;:::-;2044:34;:::i;:::-;2026:53;:::i;:::-;2013:66;;1943:142;;;:::o;2091:75::-;2134:3;2155:5;2148:12;;2091:75;;;:::o;2172:269::-;2282:39;2313:7;2282:39;:::i;:::-;2343:91;2392:41;2416:16;2392:41;:::i;:::-;2384:6;2377:4;2371:11;2343:91;:::i;:::-;2337:4;2330:105;2248:193;2172:269;;;:::o;2447:73::-;2492:3;2513:1;2506:8;;2447:73;:::o;2526:189::-;2603:32;;:::i;:::-;2644:65;2702:6;2694;2688:4;2644:65;:::i;:::-;2579:136;2526:189;;:::o;2721:215::-;2807:1;2792:138;2817:9;2814:1;2811:16;2792:138;;;2869:51;2918:1;2914;2903:9;2899:17;2869:51;:::i;:::-;2842:1;2839;2835:9;2830:14;;2792:138;;;2796:14;2721:215;;:::o;2942:117::-;2996:8;3046:5;3040:4;3036:16;3015:37;;2942:117;;;;:::o;3315:640::-;3435:3;3423:10;3420:19;3417:531;;;3526:65;3587:3;3526:65;:::i;:::-;3624:72;3685:10;3624:72;:::i;:::-;3731:53;3778:5;3731:53;:::i;:::-;3836:12;3820:14;3816:33;3863:75;3924:12;3910;3906:31;3893:11;3863:75;:::i;:::-;3440:508;;;;3417:531;3315:640;;;:::o;3961:388::-;4054:20;4046:6;4043:32;4040:78;;;4090:18;;:::i;:::-;4040:78;4142:51;4187:5;4142:51;:::i;:::-;4245:6;4238:5;4231:21;4262:80;4335:6;4327;4320:5;4262:80;:::i;:::-;4030:319;3961:388;;:::o;4354:114::-;4421:6;4455:5;4449:12;4439:22;;4354:114;;;:::o;4474:154::-;4517:11;4553:29;4577:3;4571:10;4553:29;:::i;:::-;4616:5;4592:29;;4529:99;4474:154;;;:::o;4634:132::-;4701:4;4724:3;4716:11;;4754:4;4749:3;4745:14;4737:22;;4634:132;;;:::o;5069:1001::-;5210:52;5258:3;5210:52;:::i;:::-;5327:18;5319:6;5316:30;5313:56;;;5349:18;;:::i;:::-;5313:56;5378:57;5428:6;5423:3;5378:57;:::i;:::-;5459:54;5509:3;5459:54;:::i;:::-;5537:51;5584:3;5537:51;:::i;:::-;5627:1;5619:6;5615:14;5654:1;5639:424;5664:9;5661:1;5658:16;5639:424;;;5728:1;5781:33;5807:6;5781:33;:::i;:::-;5849:36;5873:11;5849:36;:::i;:::-;5935:9;5902:42;;5984:2;5976:6;5972:15;5962:25;;5743:259;;6040:12;6036:1;6027:7;6023:15;6016:37;5694:369;5689:1;5686;5682:9;5677:14;;5639:424;;;5643:14;5185:885;;;;5069:1001;;:::o;6076:98::-;6127:6;6161:5;6155:12;6145:22;;6076:98;;;:::o;6180:180::-;6228:77;6225:1;6218:88;6325:4;6322:1;6315:15;6349:4;6346:1;6339:15;6366:320;6410:6;6447:1;6441:4;6437:12;6427:22;;6494:1;6488:4;6484:12;6515:18;6505:81;;6571:4;6563:6;6559:17;6549:27;;6505:81;6633:2;6625:6;6622:14;6602:18;6599:38;6596:84;;6652:18;;:::i;:::-;6596:84;6417:269;6366:320;;;:::o;6692:140::-;6740:4;6763:3;6755:11;;6786:3;6783:1;6776:14;6820:4;6817:1;6807:18;6799:26;;6692:140;;;:::o;6838:93::-;6875:6;6922:2;6917;6910:5;6906:14;6902:23;6892:33;;6838:93;;;:::o;6937:214::-;7022:1;7007:138;7032:9;7029:1;7026:16;7007:138;;;7084:51;7133:1;7129;7118:9;7114:17;7084:51;:::i;:::-;7057:1;7054;7050:9;7045:14;;7007:138;;;7011:14;6937:214;;:::o;7157:744::-;7257:2;7252:3;7249:11;7246:648;;;7286:10;7281:3;7278:19;7275:609;;;7332:37;7363:5;7332:37;:::i;:::-;7406:22;7424:3;7406:22;:::i;:::-;7465:29;7483:10;7465:29;:::i;:::-;7655:2;7643:10;7640:18;7637:79;;;7697:1;7681:17;;7637:79;7766:12;7756:8;7752:27;7796:74;7856:12;7842;7838:31;7825:11;7796:74;:::i;:::-;7298:586;;;;7275:609;7246:648;7157:744;;;:::o;7907:169::-;7951:6;7984:51;8032:1;8028:6;8020:5;8017:1;8013:13;7984:51;:::i;:::-;7980:56;8065:4;8059;8055:15;8045:25;;7958:118;7907:169;;;;:::o;8081:295::-;8157:4;8303:29;8328:3;8322:4;8303:29;:::i;:::-;8295:37;;8365:3;8362:1;8358:11;8352:4;8349:21;8341:29;;8081:295;;;;:::o;8381:1390::-;8496:36;8528:3;8496:36;:::i;:::-;8597:18;8589:6;8586:30;8583:56;;;8619:18;;:::i;:::-;8583:56;8663:38;8695:4;8689:11;8663:38;:::i;:::-;8748:66;8807:6;8799;8793:4;8748:66;:::i;:::-;8841:1;8865:4;8852:17;;8897:2;8889:6;8886:14;8914:1;8909:617;;;;9570:1;9587:6;9584:77;;;9636:9;9631:3;9627:19;9621:26;9612:35;;9584:77;9687:67;9747:6;9740:5;9687:67;:::i;:::-;9681:4;9674:81;9543:222;8879:886;;8909:617;8961:4;8957:9;8949:6;8945:22;8995:36;9026:4;8995:36;:::i;:::-;9053:1;9067:208;9081:7;9078:1;9075:14;9067:208;;;9160:9;9155:3;9151:19;9145:26;9137:6;9130:42;9211:1;9203:6;9199:14;9189:24;;9258:2;9247:9;9243:18;9230:31;;9104:4;9101:1;9097:12;9092:17;;9067:208;;;9303:6;9294:7;9291:19;9288:179;;;9361:9;9356:3;9352:19;9346:26;9404:48;9446:4;9438:6;9434:17;9423:9;9404:48;:::i;:::-;9396:6;9389:64;9311:156;9288:179;9513:1;9509;9501:6;9497:14;9493:22;9487:4;9480:36;8916:610;;;8879:886;;8471:1300;;;8381:1390;;:::o;57:718:49:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806347f6ac111461003857806382a8181b14610056575b5f5ffd5b610040610074565b60405161004d9190610297565b60405180910390f35b61005e61011c565b60405161006b9190610297565b60405180910390f35b60605f6040518060400160405280600181526020016002815250905080606d908161009f91906104a7565b50606d6003908060018154018082558091505060019003905f5260205f20015f9091909190915055606d80548060200260200160405190810160405280929190818152602001828054801561011157602002820191905f5260205f20905b8154815260200190600101908083116100fd575b505050505091505090565b60605f600367ffffffffffffffff81111561013a576101396102b7565b5b6040519080825280602002602001820160405280156101685781602001602082028036833780820191505090505b5090506001815f815181106101805761017f61052b565b5b6020026020010181815250506003816001815181106101a2576101a161052b565b5b6020026020010181815250506004816002815181106101c4576101c361052b565b5b6020026020010181815250508091505090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61021281610200565b82525050565b5f6102238383610209565b60208301905092915050565b5f602082019050919050565b5f610245826101d7565b61024f81856101e1565b935061025a836101f1565b805f5b8381101561028a5781516102718882610218565b975061027c8361022f565b92505060018101905061025d565b5085935050505092915050565b5f6020820190508181035f8301526102af818461023b565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f6008830261034f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610314565b6103598683610314565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61039461038f61038a84610200565b610371565b610200565b9050919050565b5f819050919050565b6103ad8361037a565b6103c16103b98261039b565b848454610320565b825550505050565b5f5f905090565b6103d86103c9565b6103e38184846103a4565b505050565b5f5b82811015610409576103fe5f8284016103d0565b6001810190506103ea565b505050565b818310156104455761041f826102ee565b610428846102ee565b61043183610302565b818101610440838503826103e8565b505050505b505050565b68010000000000000000821115610464576104636102b7565b5b61046d816102e4565b82825561047b83828461040e565b505050565b5f60029050919050565b5f6104958251610200565b80915050919050565b5f819050919050565b6104b082610480565b67ffffffffffffffff8111156104c9576104c86102b7565b5b6104d3818361044a565b6104dc8361049e565b6104e583610302565b600183045f5b81811015610522575f6104fd8561048a565b6105068161039b565b80925060208701965050508082850155506001810190506104eb565b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220e3dd00f606543d681ee2098efc7bae718eb2703d1f02ce2eb5e817879b47c02e64736f6c63430008220033","sourceMap":"57:718:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;609:164;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;424:178;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;609:164;645:13;669:16;:30;;;;;;;;694:1;669:30;;;;697:1;669:30;;;;;718:1;709:6;:10;;;;;;:::i;:::-;;729:6;741:1;729:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;760:6;753:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;609:164;:::o;424:178::-;467:13;491:15;520:1;509:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:31;;539:1;532;534;532:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;557:1;550;552;550:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;575:1;568;570;568:4;;;;;;;;:::i;:::-;;;;;;;:8;;;;;593:1;586:9;;;424:178;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:77::-;492:7;521:5;510:16;;455:77;;;:::o;538:108::-;615:24;633:5;615:24;:::i;:::-;610:3;603:37;538:108;;:::o;652:179::-;721:10;742:46;784:3;776:6;742:46;:::i;:::-;820:4;815:3;811:14;797:28;;652:179;;;;:::o;837:113::-;907:4;939;934:3;930:14;922:22;;837:113;;;:::o;986:732::-;1105:3;1134:54;1182:5;1134:54;:::i;:::-;1204:86;1283:6;1278:3;1204:86;:::i;:::-;1197:93;;1314:56;1364:5;1314:56;:::i;:::-;1393:7;1424:1;1409:284;1434:6;1431:1;1428:13;1409:284;;;1510:6;1504:13;1537:63;1596:3;1581:13;1537:63;:::i;:::-;1530:70;;1623:60;1676:6;1623:60;:::i;:::-;1613:70;;1469:224;1456:1;1453;1449:9;1444:14;;1409:284;;;1413:14;1709:3;1702:10;;1110:608;;;986:732;;;;:::o;1724:373::-;1867:4;1905:2;1894:9;1890:18;1882:26;;1954:9;1948:4;1944:20;1940:1;1929:9;1925:17;1918:47;1982:108;2085:4;2076:6;1982:108;:::i;:::-;1974:116;;1724:373;;;;:::o;2103:180::-;2151:77;2148:1;2141:88;2248:4;2245:1;2238:15;2272:4;2269:1;2262:15;2289:111;2353:6;2387:5;2381:12;2371:22;;2289:111;;;:::o;3008:203::-;3089:4;3112:6;3104:14;;3202:1;3197;3194;3190:9;3182:6;3178:22;3174:30;3166:38;;3008:203;;;:::o;3216:156::-;3280:4;3303:3;3295:11;;3326:3;3323:1;3316:14;3360:4;3357:1;3347:18;3339:26;;3216:156;;;:::o;3378:107::-;3422:8;3472:5;3466:4;3462:16;3441:37;;3378:107;;;;:::o;3491:393::-;3560:6;3610:1;3598:10;3594:18;3633:97;3663:66;3652:9;3633:97;:::i;:::-;3751:39;3781:8;3770:9;3751:39;:::i;:::-;3739:51;;3823:4;3819:9;3812:5;3808:21;3799:30;;3872:4;3862:8;3858:19;3851:5;3848:30;3838:40;;3567:317;;3491:393;;;;;:::o;3890:60::-;3918:3;3939:5;3932:12;;3890:60;;;:::o;3956:142::-;4006:9;4039:53;4057:34;4066:24;4084:5;4066:24;:::i;:::-;4057:34;:::i;:::-;4039:53;:::i;:::-;4026:66;;3956:142;;;:::o;4104:75::-;4147:3;4168:5;4161:12;;4104:75;;;:::o;4185:269::-;4295:39;4326:7;4295:39;:::i;:::-;4356:91;4405:41;4429:16;4405:41;:::i;:::-;4397:6;4390:4;4384:11;4356:91;:::i;:::-;4350:4;4343:105;4261:193;4185:269;;;:::o;4460:73::-;4505:3;4526:1;4519:8;;4460:73;:::o;4539:189::-;4616:32;;:::i;:::-;4657:65;4715:6;4707;4701:4;4657:65;:::i;:::-;4592:136;4539:189;;:::o;4734:215::-;4820:1;4805:138;4830:9;4827:1;4824:16;4805:138;;;4882:51;4931:1;4927;4916:9;4912:17;4882:51;:::i;:::-;4855:1;4852;4848:9;4843:14;;4805:138;;;4809:14;4734:215;;:::o;5328:640::-;5448:3;5436:10;5433:19;5430:531;;;5539:65;5600:3;5539:65;:::i;:::-;5637:72;5698:10;5637:72;:::i;:::-;5744:53;5791:5;5744:53;:::i;:::-;5849:12;5833:14;5829:33;5876:75;5937:12;5923;5919:31;5906:11;5876:75;:::i;:::-;5453:508;;;;5430:531;5328:640;;;:::o;5974:388::-;6067:20;6059:6;6056:32;6053:78;;;6103:18;;:::i;:::-;6053:78;6155:51;6200:5;6155:51;:::i;:::-;6258:6;6251:5;6244:21;6275:80;6348:6;6340;6333:5;6275:80;:::i;:::-;6043:319;5974:388;;:::o;6367:104::-;6432:6;6460:4;6450:14;;6367:104;;;:::o;6477:154::-;6520:11;6556:29;6580:3;6574:10;6556:29;:::i;:::-;6619:5;6595:29;;6532:99;6477:154;;;:::o;6637:98::-;6702:4;6725:3;6717:11;;6637:98;;;:::o;7038:995::-;7177:50;7223:3;7177:50;:::i;:::-;7292:18;7284:6;7281:30;7278:56;;;7314:18;;:::i;:::-;7278:56;7343:57;7393:6;7388:3;7343:57;:::i;:::-;7424:52;7472:3;7424:52;:::i;:::-;7500:51;7547:3;7500:51;:::i;:::-;7590:1;7582:6;7578:14;7617:1;7602:424;7627:9;7624:1;7621:16;7602:424;;;7691:1;7744:33;7770:6;7744:33;:::i;:::-;7812:36;7836:11;7812:36;:::i;:::-;7898:9;7865:42;;7947:2;7939:6;7935:15;7925:25;;7706:259;;8003:12;7999:1;7990:7;7986:15;7979:37;7657:369;7652:1;7649;7645:9;7640:14;;7602:424;;;7606:14;7152:881;;;;7038:995;;:::o;8039:180::-;8087:77;8084:1;8077:88;8184:4;8181:1;8174:15;8208:4;8205:1;8198:15","linkReferences":{}},"methodIdentifiers":{"arrayPush()":"47f6ac11","initArray()":"82a8181b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arrayPush\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":\"ArrayTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":{\"keccak256\":\"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c\",\"dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"arrayPush","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"initArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":"ArrayTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":{"keccak256":"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b","urls":["bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c","dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file diff --git a/out/ArrayAndStruct.sol/EnumTypes.json b/out/ArrayAndStruct.sol/EnumTypes.json index 7a205007..33e4c6b4 100644 --- a/out/ArrayAndStruct.sol/EnumTypes.json +++ b/out/ArrayAndStruct.sol/EnumTypes.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"enumToUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040525f5f5f6101000a81548160ff0219169083600281111560245760236038565b5b02179055503480156033575f5ffd5b506065565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60f7806100715f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c80630101995814602a575b5f5ffd5b60306044565b604051603b9190607d565b60405180910390f35b5f5f5f9054906101000a900460ff16600281111560625760616094565b5b905090565b5f819050919050565b6077816067565b82525050565b5f602082019050608e5f8301846070565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220b40f79ada1fe0118e262086237ad3a55c9747c37ed38ce304b4a71067716c65c64736f6c63430008220033","sourceMap":"1640:312:49:-:0;;;1805:13;1786:32;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1640:312;;;;;;;;;;;;7:180:145;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;1640:312:49;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f5ffd5b50600436106026575f3560e01c80630101995814602a575b5f5ffd5b60306044565b604051603b9190607d565b60405180910390f35b5f5f5f9054906101000a900460ff16600281111560625760616094565b5b905090565b5f819050919050565b6077816067565b82525050565b5f602082019050608e5f8301846070565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220b40f79ada1fe0118e262086237ad3a55c9747c37ed38ce304b4a71067716c65c64736f6c63430008220033","sourceMap":"1640:312:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1865:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1909:4;1936:6;;;;;;;;;;;1931:12;;;;;;;;:::i;:::-;;1924:19;;1865:85;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15","linkReferences":{}},"methodIdentifiers":{"enumToUint()":"01019958"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"enumToUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":\"EnumTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":{\"keccak256\":\"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c\",\"dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"enumToUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":"EnumTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":{"keccak256":"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b","urls":["bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c","dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file +{"abi":[{"type":"function","name":"enumToUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040525f5f5f6101000a81548160ff0219169083600281111560245760236038565b5b02179055503480156033575f5ffd5b506065565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60f7806100715f395ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c80630101995814602a575b5f5ffd5b60306044565b604051603b9190607d565b60405180910390f35b5f5f5f9054906101000a900460ff16600281111560625760616094565b5b905090565b5f819050919050565b6077816067565b82525050565b5f602082019050608e5f8301846070565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220b40f79ada1fe0118e262086237ad3a55c9747c37ed38ce304b4a71067716c65c64736f6c63430008220033","sourceMap":"1640:312:49:-:0;;;1805:13;1786:32;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1640:312;;;;;;;;;;;;7:180:139;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;1640:312:49;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f5ffd5b50600436106026575f3560e01c80630101995814602a575b5f5ffd5b60306044565b604051603b9190607d565b60405180910390f35b5f5f5f9054906101000a900460ff16600281111560625760616094565b5b905090565b5f819050919050565b6077816067565b82525050565b5f602082019050608e5f8301846070565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea2646970667358221220b40f79ada1fe0118e262086237ad3a55c9747c37ed38ce304b4a71067716c65c64736f6c63430008220033","sourceMap":"1640:312:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1865:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1909:4;1936:6;;;;;;;;;;;1931:12;;;;;;;;:::i;:::-;;1924:19;;1865:85;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15","linkReferences":{}},"methodIdentifiers":{"enumToUint()":"01019958"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"enumToUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":\"EnumTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/06_ArrayAndStruct/ArrayAndStruct.sol\":{\"keccak256\":\"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c\",\"dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"enumToUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":"EnumTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/06_ArrayAndStruct/ArrayAndStruct.sol":{"keccak256":"0x7f887c56afab0c2b049873deb2f279467247667e309835d035fec40184d5ac4b","urls":["bzz-raw://0466e5ca7c8ca4b5284677db4cf085f56ea64c48c6dfe408a5549d38a0f8402c","dweb:/ipfs/QmaaP73PyTjXnMobhzZ5U5pq1h6JYj9Lk7vKdwrhHS2Ety"],"license":"MIT"}},"version":1},"id":49} \ No newline at end of file diff --git a/out/BAYC1155.sol/BAYC1155.json b/out/BAYC1155.sol/BAYC1155.json index 40841642..97f5dec6 100644 --- a/out/BAYC1155.sol/BAYC1155.json +++ b/out/BAYC1155.sol/BAYC1155.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintBatch","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600881526020017f42415943313135350000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4241594331313535000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b612b02806103cc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80634e1273f41161006f5780634e1273f41461019b57806395d89b41146101cb578063a22cb465146101e9578063d81d0a1514610205578063e985e9c514610221578063f242432a14610251576100b1565b8062fdd58e146100b557806301ffc9a7146100e557806306fdde03146101155780630e89341c14610133578063156e29f6146101635780632eb2c2d61461017f575b5f5ffd5b6100cf60048036038101906100ca91906118f0565b61026d565b6040516100dc919061193d565b60405180910390f35b6100ff60048036038101906100fa91906119ab565b610331565b60405161010c91906119f0565b60405180910390f35b61011d61046a565b60405161012a9190611a79565b60405180910390f35b61014d60048036038101906101489190611a99565b6104f5565b60405161015a9190611a79565b60405180910390f35b61017d60048036038101906101789190611ac4565b610551565b005b61019960048036038101906101949190611d04565b6105b4565b005b6101b560048036038101906101b09190611e8f565b61091e565b6040516101c29190611fbc565b60405180910390f35b6101d3610a32565b6040516101e09190611a79565b60405180910390f35b61020360048036038101906101fe9190612006565b610abe565b005b61021f600480360381019061021a9190612044565b610c24565b005b61023b600480360381019061023691906120cc565b610cbd565b60405161024891906119f0565b60405180910390f35b61026b6004803603810190610266919061210a565b610d4b565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d39061220d565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fb57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461047690612258565b80601f01602080910402602001604051908101604052809291908181526020018280546104a290612258565b80156104ed5780601f106104c4576101008083540402835291602001916104ed565b820191905f5260205f20905b8154815290600101906020018083116104d057829003601f168201915b505050505081565b60605f610500611019565b90505f81511161051e5760405180602001604052805f815250610549565b8061052884611039565b6040516020016105399291906122c2565b6040516020818303038152906040525b915050919050565b6127108210610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c9061232f565b60405180910390fd5b6105af83838360405180602001604052805f815250611192565b505050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f78682610cbd565b5b610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e906123bd565b60405180910390fd5b825184511461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106729061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906124d9565b60405180910390fd5b5f5f90505b8451811015610889575f85828151811061070b5761070a6124f7565b5b602002602001015190505f858381518110610729576107286124f7565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90612594565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906125df565b925050819055505050508060010190506106ee565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610900929190612612565b60405180910390a46109168187878787876112f9565b505050505050565b60608151835114610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906126b7565b60405180910390fd5b5f835167ffffffffffffffff8111156109805761097f611b18565b5b6040519080825280602002602001820160405280156109ae5781602001602082028036833780820191505090505b5090505f5f90505b8451811015610a27576109fd8582815181106109d5576109d46124f7565b5b60200260200101518583815181106109f0576109ef6124f7565b5b602002602001015161026d565b828281518110610a1057610a0f6124f7565b5b6020026020010181815250508060010190506109b6565b508091505092915050565b60018054610a3f90612258565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90612258565b8015610ab65780601f10610a8d57610100808354040283529160200191610ab6565b820191905f5260205f20905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612745565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906119f0565b60405180910390a35050565b5f5f90505b8251811015610c9d57612710838281518110610c4857610c476124f7565b5b602002602001015110610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061232f565b60405180910390fd5b8080600101915050610c29565b50610cb883838360405180602001604052805f8152506114a8565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610d8f5750610d8e8682610cbd565b5b610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906123bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906124d9565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612594565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f7d91906125df565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610ffa929190612763565b60405180910390a46110108288888888886116a3565b50505050505050565b6060604051806060016040528060368152602001612a9760369139905090565b60605f820361107f576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118d565b5f8290505f5b5f82146110ae5780806110979061278a565b915050600a826110a791906127fe565b9150611085565b5f8167ffffffffffffffff8111156110c9576110c8611b18565b5b6040519080825280601f01601f1916602001820160405280156110fb5781602001600182028036833780820191505090505b5090505b5f851461118657600182611113919061282e565b9150600a856111229190612861565b603061112e91906125df565b60f81b818381518110611144576111436124f7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117f91906127fe565b94506110ff565b8093505050505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612901565b60405180910390fd5b5f3390508260025f8681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461125f91906125df565b925050819055508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516112dc929190612763565b60405180910390a46112f2815f878787876116a3565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156114a0578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611359959493929190612980565b6020604051808303815f875af192505050801561139457506040513d601f19601f8201168201806040525081019061139191906129fa565b60015b611415573d805f81146113c2576040519150601f19603f3d011682016040523d82523d5f602084013e6113c7565b606091505b505f81510361140d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114049190612a25565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114959190612a25565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612901565b60405180910390fd5b815183511461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061244b565b60405180910390fd5b5f3390505f5f90505b845181101561160f5783818151811061157f5761157e6124f7565b5b602002602001015160025f87848151811061159d5761159c6124f7565b5b602002602001015181526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115fb91906125df565b925050819055508080600101915050611563565b508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611686929190612612565b60405180910390a461169c815f878787876112f9565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561184a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611703959493929190612a3e565b6020604051808303815f875af192505050801561173e57506040513d601f19601f8201168201806040525081019061173b91906129fa565b60015b6117bf573d805f811461176c576040519150601f19603f3d011682016040523d82523d5f602084013e611771565b606091505b505f8151036117b757846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ae9190612a25565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461184857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161183f9190612a25565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61188c82611863565b9050919050565b61189c81611882565b81146118a6575f5ffd5b50565b5f813590506118b781611893565b92915050565b5f819050919050565b6118cf816118bd565b81146118d9575f5ffd5b50565b5f813590506118ea816118c6565b92915050565b5f5f604083850312156119065761190561185b565b5b5f611913858286016118a9565b9250506020611924858286016118dc565b9150509250929050565b611937816118bd565b82525050565b5f6020820190506119505f83018461192e565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61198a81611956565b8114611994575f5ffd5b50565b5f813590506119a581611981565b92915050565b5f602082840312156119c0576119bf61185b565b5b5f6119cd84828501611997565b91505092915050565b5f8115159050919050565b6119ea816119d6565b82525050565b5f602082019050611a035f8301846119e1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a4b82611a09565b611a558185611a13565b9350611a65818560208601611a23565b611a6e81611a31565b840191505092915050565b5f6020820190508181035f830152611a918184611a41565b905092915050565b5f60208284031215611aae57611aad61185b565b5b5f611abb848285016118dc565b91505092915050565b5f5f5f60608486031215611adb57611ada61185b565b5b5f611ae8868287016118a9565b9350506020611af9868287016118dc565b9250506040611b0a868287016118dc565b9150509250925092565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b4e82611a31565b810181811067ffffffffffffffff82111715611b6d57611b6c611b18565b5b80604052505050565b5f611b7f611852565b9050611b8b8282611b45565b919050565b5f67ffffffffffffffff821115611baa57611ba9611b18565b5b602082029050602081019050919050565b5f5ffd5b5f611bd1611bcc84611b90565b611b76565b90508083825260208201905060208402830185811115611bf457611bf3611bbb565b5b835b81811015611c1d5780611c0988826118dc565b845260208401935050602081019050611bf6565b5050509392505050565b5f82601f830112611c3b57611c3a611b14565b5b8135611c4b848260208601611bbf565b91505092915050565b5f5ffd5b5f67ffffffffffffffff821115611c7257611c71611b18565b5b611c7b82611a31565b9050602081019050919050565b828183375f83830152505050565b5f611ca8611ca384611c58565b611b76565b905082815260208101848484011115611cc457611cc3611c54565b5b611ccf848285611c88565b509392505050565b5f82601f830112611ceb57611cea611b14565b5b8135611cfb848260208601611c96565b91505092915050565b5f5f5f5f5f60a08688031215611d1d57611d1c61185b565b5b5f611d2a888289016118a9565b9550506020611d3b888289016118a9565b945050604086013567ffffffffffffffff811115611d5c57611d5b61185f565b5b611d6888828901611c27565b935050606086013567ffffffffffffffff811115611d8957611d8861185f565b5b611d9588828901611c27565b925050608086013567ffffffffffffffff811115611db657611db561185f565b5b611dc288828901611cd7565b9150509295509295909350565b5f67ffffffffffffffff821115611de957611de8611b18565b5b602082029050602081019050919050565b5f611e0c611e0784611dcf565b611b76565b90508083825260208201905060208402830185811115611e2f57611e2e611bbb565b5b835b81811015611e585780611e4488826118a9565b845260208401935050602081019050611e31565b5050509392505050565b5f82601f830112611e7657611e75611b14565b5b8135611e86848260208601611dfa565b91505092915050565b5f5f60408385031215611ea557611ea461185b565b5b5f83013567ffffffffffffffff811115611ec257611ec161185f565b5b611ece85828601611e62565b925050602083013567ffffffffffffffff811115611eef57611eee61185f565b5b611efb85828601611c27565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f37816118bd565b82525050565b5f611f488383611f2e565b60208301905092915050565b5f602082019050919050565b5f611f6a82611f05565b611f748185611f0f565b9350611f7f83611f1f565b805f5b83811015611faf578151611f968882611f3d565b9750611fa183611f54565b925050600181019050611f82565b5085935050505092915050565b5f6020820190508181035f830152611fd48184611f60565b905092915050565b611fe5816119d6565b8114611fef575f5ffd5b50565b5f8135905061200081611fdc565b92915050565b5f5f6040838503121561201c5761201b61185b565b5b5f612029858286016118a9565b925050602061203a85828601611ff2565b9150509250929050565b5f5f5f6060848603121561205b5761205a61185b565b5b5f612068868287016118a9565b935050602084013567ffffffffffffffff8111156120895761208861185f565b5b61209586828701611c27565b925050604084013567ffffffffffffffff8111156120b6576120b561185f565b5b6120c286828701611c27565b9150509250925092565b5f5f604083850312156120e2576120e161185b565b5b5f6120ef858286016118a9565b9250506020612100858286016118a9565b9150509250929050565b5f5f5f5f5f60a086880312156121235761212261185b565b5b5f612130888289016118a9565b9550506020612141888289016118a9565b9450506040612152888289016118dc565b9350506060612163888289016118dc565b925050608086013567ffffffffffffffff8111156121845761218361185f565b5b61219088828901611cd7565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f6121f7602a83611a13565b91506122028261219d565b604082019050919050565b5f6020820190508181035f830152612224816121eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061226f57607f821691505b6020821081036122825761228161222b565b5b50919050565b5f81905092915050565b5f61229c82611a09565b6122a68185612288565b93506122b6818560208601611a23565b80840191505092915050565b5f6122cd8285612292565b91506122d98284612292565b91508190509392505050565b7f6964206f766572666c6f770000000000000000000000000000000000000000005f82015250565b5f612319600b83611a13565b9150612324826122e5565b602082019050919050565b5f6020820190508181035f8301526123468161230d565b9050919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f6123a7602f83611a13565b91506123b28261234d565b604082019050919050565b5f6020820190508181035f8301526123d48161239b565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f612435602883611a13565b9150612440826123db565b604082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124c3602583611a13565b91506124ce82612469565b604082019050919050565b5f6020820190508181035f8301526124f0816124b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f61257e602a83611a13565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e9826118bd565b91506125f4836118bd565b925082820190508082111561260c5761260b6125b2565b5b92915050565b5f6040820190508181035f83015261262a8185611f60565b9050818103602083015261263e8184611f60565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6126a1602983611a13565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61272f602983611a13565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b5f6040820190506127765f83018561192e565b612783602083018461192e565b9392505050565b5f612794826118bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127c6576127c56125b2565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612808826118bd565b9150612813836118bd565b925082612823576128226127d1565b5b828204905092915050565b5f612838826118bd565b9150612843836118bd565b925082820390508181111561285b5761285a6125b2565b5b92915050565b5f61286b826118bd565b9150612876836118bd565b925082612886576128856127d1565b5b828206905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128eb602183611a13565b91506128f682612891565b604082019050919050565b5f6020820190508181035f830152612918816128df565b9050919050565b61292881611882565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6129528261292e565b61295c8185612938565b935061296c818560208601611a23565b61297581611a31565b840191505092915050565b5f60a0820190506129935f83018861291f565b6129a0602083018761291f565b81810360408301526129b28186611f60565b905081810360608301526129c68185611f60565b905081810360808301526129da8184612948565b90509695505050505050565b5f815190506129f481611981565b92915050565b5f60208284031215612a0f57612a0e61185b565b5b5f612a1c848285016129e6565b91505092915050565b5f602082019050612a385f83018461291f565b92915050565b5f60a082019050612a515f83018861291f565b612a5e602083018761291f565b612a6b604083018661192e565b612a78606083018561192e565b8181036080830152612a8a8184612948565b9050969550505050505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa26469706673582212205714af1fe822619b8c9ac05e49434765f25ef1f0d876df96d5efe49a3e33b0ce64736f6c63430008220033","sourceMap":"94:908:95:-:0;;;186:52;;;;;;;;;;900:111:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:5;966:4;:12;;;;;;:::i;:::-;;997:7;988:6;:16;;;;;;:::i;:::-;;900:111;;94:908:95;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;94:908:95:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80634e1273f41161006f5780634e1273f41461019b57806395d89b41146101cb578063a22cb465146101e9578063d81d0a1514610205578063e985e9c514610221578063f242432a14610251576100b1565b8062fdd58e146100b557806301ffc9a7146100e557806306fdde03146101155780630e89341c14610133578063156e29f6146101635780632eb2c2d61461017f575b5f5ffd5b6100cf60048036038101906100ca91906118f0565b61026d565b6040516100dc919061193d565b60405180910390f35b6100ff60048036038101906100fa91906119ab565b610331565b60405161010c91906119f0565b60405180910390f35b61011d61046a565b60405161012a9190611a79565b60405180910390f35b61014d60048036038101906101489190611a99565b6104f5565b60405161015a9190611a79565b60405180910390f35b61017d60048036038101906101789190611ac4565b610551565b005b61019960048036038101906101949190611d04565b6105b4565b005b6101b560048036038101906101b09190611e8f565b61091e565b6040516101c29190611fbc565b60405180910390f35b6101d3610a32565b6040516101e09190611a79565b60405180910390f35b61020360048036038101906101fe9190612006565b610abe565b005b61021f600480360381019061021a9190612044565b610c24565b005b61023b600480360381019061023691906120cc565b610cbd565b60405161024891906119f0565b60405180910390f35b61026b6004803603810190610266919061210a565b610d4b565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d39061220d565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fb57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461047690612258565b80601f01602080910402602001604051908101604052809291908181526020018280546104a290612258565b80156104ed5780601f106104c4576101008083540402835291602001916104ed565b820191905f5260205f20905b8154815290600101906020018083116104d057829003601f168201915b505050505081565b60605f610500611019565b90505f81511161051e5760405180602001604052805f815250610549565b8061052884611039565b6040516020016105399291906122c2565b6040516020818303038152906040525b915050919050565b6127108210610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c9061232f565b60405180910390fd5b6105af83838360405180602001604052805f815250611192565b505050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f78682610cbd565b5b610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e906123bd565b60405180910390fd5b825184511461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106729061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906124d9565b60405180910390fd5b5f5f90505b8451811015610889575f85828151811061070b5761070a6124f7565b5b602002602001015190505f858381518110610729576107286124f7565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90612594565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906125df565b925050819055505050508060010190506106ee565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610900929190612612565b60405180910390a46109168187878787876112f9565b505050505050565b60608151835114610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906126b7565b60405180910390fd5b5f835167ffffffffffffffff8111156109805761097f611b18565b5b6040519080825280602002602001820160405280156109ae5781602001602082028036833780820191505090505b5090505f5f90505b8451811015610a27576109fd8582815181106109d5576109d46124f7565b5b60200260200101518583815181106109f0576109ef6124f7565b5b602002602001015161026d565b828281518110610a1057610a0f6124f7565b5b6020026020010181815250508060010190506109b6565b508091505092915050565b60018054610a3f90612258565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90612258565b8015610ab65780601f10610a8d57610100808354040283529160200191610ab6565b820191905f5260205f20905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612745565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906119f0565b60405180910390a35050565b5f5f90505b8251811015610c9d57612710838281518110610c4857610c476124f7565b5b602002602001015110610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061232f565b60405180910390fd5b8080600101915050610c29565b50610cb883838360405180602001604052805f8152506114a8565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610d8f5750610d8e8682610cbd565b5b610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906123bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906124d9565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612594565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f7d91906125df565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610ffa929190612763565b60405180910390a46110108288888888886116a3565b50505050505050565b6060604051806060016040528060368152602001612a9760369139905090565b60605f820361107f576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118d565b5f8290505f5b5f82146110ae5780806110979061278a565b915050600a826110a791906127fe565b9150611085565b5f8167ffffffffffffffff8111156110c9576110c8611b18565b5b6040519080825280601f01601f1916602001820160405280156110fb5781602001600182028036833780820191505090505b5090505b5f851461118657600182611113919061282e565b9150600a856111229190612861565b603061112e91906125df565b60f81b818381518110611144576111436124f7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117f91906127fe565b94506110ff565b8093505050505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612901565b60405180910390fd5b5f3390508260025f8681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461125f91906125df565b925050819055508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516112dc929190612763565b60405180910390a46112f2815f878787876116a3565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156114a0578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611359959493929190612980565b6020604051808303815f875af192505050801561139457506040513d601f19601f8201168201806040525081019061139191906129fa565b60015b611415573d805f81146113c2576040519150601f19603f3d011682016040523d82523d5f602084013e6113c7565b606091505b505f81510361140d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114049190612a25565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114959190612a25565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612901565b60405180910390fd5b815183511461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061244b565b60405180910390fd5b5f3390505f5f90505b845181101561160f5783818151811061157f5761157e6124f7565b5b602002602001015160025f87848151811061159d5761159c6124f7565b5b602002602001015181526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115fb91906125df565b925050819055508080600101915050611563565b508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611686929190612612565b60405180910390a461169c815f878787876112f9565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561184a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611703959493929190612a3e565b6020604051808303815f875af192505050801561173e57506040513d601f19601f8201168201806040525081019061173b91906129fa565b60015b6117bf573d805f811461176c576040519150601f19603f3d011682016040523d82523d5f602084013e611771565b606091505b505f8151036117b757846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ae9190612a25565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461184857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161183f9190612a25565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61188c82611863565b9050919050565b61189c81611882565b81146118a6575f5ffd5b50565b5f813590506118b781611893565b92915050565b5f819050919050565b6118cf816118bd565b81146118d9575f5ffd5b50565b5f813590506118ea816118c6565b92915050565b5f5f604083850312156119065761190561185b565b5b5f611913858286016118a9565b9250506020611924858286016118dc565b9150509250929050565b611937816118bd565b82525050565b5f6020820190506119505f83018461192e565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61198a81611956565b8114611994575f5ffd5b50565b5f813590506119a581611981565b92915050565b5f602082840312156119c0576119bf61185b565b5b5f6119cd84828501611997565b91505092915050565b5f8115159050919050565b6119ea816119d6565b82525050565b5f602082019050611a035f8301846119e1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a4b82611a09565b611a558185611a13565b9350611a65818560208601611a23565b611a6e81611a31565b840191505092915050565b5f6020820190508181035f830152611a918184611a41565b905092915050565b5f60208284031215611aae57611aad61185b565b5b5f611abb848285016118dc565b91505092915050565b5f5f5f60608486031215611adb57611ada61185b565b5b5f611ae8868287016118a9565b9350506020611af9868287016118dc565b9250506040611b0a868287016118dc565b9150509250925092565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b4e82611a31565b810181811067ffffffffffffffff82111715611b6d57611b6c611b18565b5b80604052505050565b5f611b7f611852565b9050611b8b8282611b45565b919050565b5f67ffffffffffffffff821115611baa57611ba9611b18565b5b602082029050602081019050919050565b5f5ffd5b5f611bd1611bcc84611b90565b611b76565b90508083825260208201905060208402830185811115611bf457611bf3611bbb565b5b835b81811015611c1d5780611c0988826118dc565b845260208401935050602081019050611bf6565b5050509392505050565b5f82601f830112611c3b57611c3a611b14565b5b8135611c4b848260208601611bbf565b91505092915050565b5f5ffd5b5f67ffffffffffffffff821115611c7257611c71611b18565b5b611c7b82611a31565b9050602081019050919050565b828183375f83830152505050565b5f611ca8611ca384611c58565b611b76565b905082815260208101848484011115611cc457611cc3611c54565b5b611ccf848285611c88565b509392505050565b5f82601f830112611ceb57611cea611b14565b5b8135611cfb848260208601611c96565b91505092915050565b5f5f5f5f5f60a08688031215611d1d57611d1c61185b565b5b5f611d2a888289016118a9565b9550506020611d3b888289016118a9565b945050604086013567ffffffffffffffff811115611d5c57611d5b61185f565b5b611d6888828901611c27565b935050606086013567ffffffffffffffff811115611d8957611d8861185f565b5b611d9588828901611c27565b925050608086013567ffffffffffffffff811115611db657611db561185f565b5b611dc288828901611cd7565b9150509295509295909350565b5f67ffffffffffffffff821115611de957611de8611b18565b5b602082029050602081019050919050565b5f611e0c611e0784611dcf565b611b76565b90508083825260208201905060208402830185811115611e2f57611e2e611bbb565b5b835b81811015611e585780611e4488826118a9565b845260208401935050602081019050611e31565b5050509392505050565b5f82601f830112611e7657611e75611b14565b5b8135611e86848260208601611dfa565b91505092915050565b5f5f60408385031215611ea557611ea461185b565b5b5f83013567ffffffffffffffff811115611ec257611ec161185f565b5b611ece85828601611e62565b925050602083013567ffffffffffffffff811115611eef57611eee61185f565b5b611efb85828601611c27565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f37816118bd565b82525050565b5f611f488383611f2e565b60208301905092915050565b5f602082019050919050565b5f611f6a82611f05565b611f748185611f0f565b9350611f7f83611f1f565b805f5b83811015611faf578151611f968882611f3d565b9750611fa183611f54565b925050600181019050611f82565b5085935050505092915050565b5f6020820190508181035f830152611fd48184611f60565b905092915050565b611fe5816119d6565b8114611fef575f5ffd5b50565b5f8135905061200081611fdc565b92915050565b5f5f6040838503121561201c5761201b61185b565b5b5f612029858286016118a9565b925050602061203a85828601611ff2565b9150509250929050565b5f5f5f6060848603121561205b5761205a61185b565b5b5f612068868287016118a9565b935050602084013567ffffffffffffffff8111156120895761208861185f565b5b61209586828701611c27565b925050604084013567ffffffffffffffff8111156120b6576120b561185f565b5b6120c286828701611c27565b9150509250925092565b5f5f604083850312156120e2576120e161185b565b5b5f6120ef858286016118a9565b9250506020612100858286016118a9565b9150509250929050565b5f5f5f5f5f60a086880312156121235761212261185b565b5b5f612130888289016118a9565b9550506020612141888289016118a9565b9450506040612152888289016118dc565b9350506060612163888289016118dc565b925050608086013567ffffffffffffffff8111156121845761218361185f565b5b61219088828901611cd7565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f6121f7602a83611a13565b91506122028261219d565b604082019050919050565b5f6020820190508181035f830152612224816121eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061226f57607f821691505b6020821081036122825761228161222b565b5b50919050565b5f81905092915050565b5f61229c82611a09565b6122a68185612288565b93506122b6818560208601611a23565b80840191505092915050565b5f6122cd8285612292565b91506122d98284612292565b91508190509392505050565b7f6964206f766572666c6f770000000000000000000000000000000000000000005f82015250565b5f612319600b83611a13565b9150612324826122e5565b602082019050919050565b5f6020820190508181035f8301526123468161230d565b9050919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f6123a7602f83611a13565b91506123b28261234d565b604082019050919050565b5f6020820190508181035f8301526123d48161239b565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f612435602883611a13565b9150612440826123db565b604082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124c3602583611a13565b91506124ce82612469565b604082019050919050565b5f6020820190508181035f8301526124f0816124b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f61257e602a83611a13565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e9826118bd565b91506125f4836118bd565b925082820190508082111561260c5761260b6125b2565b5b92915050565b5f6040820190508181035f83015261262a8185611f60565b9050818103602083015261263e8184611f60565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6126a1602983611a13565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61272f602983611a13565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b5f6040820190506127765f83018561192e565b612783602083018461192e565b9392505050565b5f612794826118bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127c6576127c56125b2565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612808826118bd565b9150612813836118bd565b925082612823576128226127d1565b5b828204905092915050565b5f612838826118bd565b9150612843836118bd565b925082820390508181111561285b5761285a6125b2565b5b92915050565b5f61286b826118bd565b9150612876836118bd565b925082612886576128856127d1565b5b828206905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128eb602183611a13565b91506128f682612891565b604082019050919050565b5f6020820190508181035f830152612918816128df565b9050919050565b61292881611882565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6129528261292e565b61295c8185612938565b935061296c818560208601611a23565b61297581611a31565b840191505092915050565b5f60a0820190506129935f83018861291f565b6129a0602083018761291f565b81810360408301526129b28186611f60565b905081810360608301526129c68185611f60565b905081810360808301526129da8184612948565b90509695505050505050565b5f815190506129f481611981565b92915050565b5f60208284031215612a0f57612a0e61185b565b5b5f612a1c848285016129e6565b91505092915050565b5f602082019050612a385f83018461291f565b92915050565b5f60a082019050612a515f83018861291f565b612a5e602083018761291f565b612a6b604083018661192e565b612a78606083018561192e565b8181036080830152612a8a8184612948565b9050969550505050505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa26469706673582212205714af1fe822619b8c9ac05e49434765f25ef1f0d876df96d5efe49a3e33b0ce64736f6c63430008220033","sourceMap":"94:908:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:227:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10786:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;500:183:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4775:1249:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1840:481;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;486:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2490:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:284:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2843:166:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3354:1010;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1495:227;1581:7;1627:1;1608:21;;:7;:21;;;1600:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1693:9;:13;1703:2;1693:13;;;;;;;;;;;:22;1707:7;1693:22;;;;;;;;;;;;;;;;1686:29;;1495:227;;;;:::o;1078:292::-;1163:4;1213:26;1198:41;;;:11;:41;;;;:109;;;;1270:37;1255:52;;;:11;:52;;;;1198:109;:165;;;;1338:25;1323:40;;;:11;:40;;;;1198:165;1179:184;;1078:292;;;:::o;443:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10786:227::-;10849:13;10874:21;10898:10;:8;:10::i;:::-;10874:34;;10949:1;10931:7;10925:21;:25;:81;;;;;;;;;;;;;;;;;10977:7;10986:13;:2;:11;:13::i;:::-;10960:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10925:81;10918:88;;;10786:227;;;:::o;500:183:95:-;154:5;614:2;:11;606:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;651:25;657:2;661;665:6;651:25;;;;;;;;;;;;:5;:25::i;:::-;500:183;;;:::o;4775:1249:96:-;4979:16;4998:10;4979:29;;5095:8;5087:16;;:4;:16;;;:52;;;;5107:32;5124:4;5130:8;5107:16;:32::i;:::-;5087:52;5066:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;5244:7;:14;5230:3;:10;:28;5222:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:1;5321:16;;:2;:16;;;5313:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5436:9;5448:1;5436:13;;5431:411;5455:3;:10;5451:1;:14;5431:411;;;5486:10;5499:3;5503:1;5499:6;;;;;;;;:::i;:::-;;;;;;;;5486:19;;5519:14;5536:7;5544:1;5536:10;;;;;;;;:::i;:::-;;;;;;;;5519:27;;5561:19;5583:9;:13;5593:2;5583:13;;;;;;;;;;;:19;5597:4;5583:19;;;;;;;;;;;;;;;;5561:41;;5639:6;5624:11;:21;;5616:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5770:6;5756:11;:20;5734:9;:13;5744:2;5734:13;;;;;;;;;;;:19;5748:4;5734:19;;;;;;;;;;;;;;;:42;;;;5825:6;5804:9;:13;5814:2;5804:13;;;;;;;;;;;:17;5818:2;5804:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5472:370;;;5467:3;;;;;5431:411;;;;5887:2;5857:47;;5881:4;5857:47;;5871:8;5857:47;;;5891:3;5896:7;5857:47;;;;;;;:::i;:::-;;;;;;;;5938:75;5974:8;5984:4;5990:2;5994:3;5999:7;6008:4;5938:35;:75::i;:::-;4969:1055;4775:1249;;;;;:::o;1840:481::-;1967:16;2026:3;:10;2007:8;:15;:29;1999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;2092:30;2139:8;:15;2125:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:63;;2170:9;2182:1;2170:13;;2165:120;2189:8;:15;2185:1;:19;2165:120;;;2244:30;2254:8;2263:1;2254:11;;;;;;;;:::i;:::-;;;;;;;;2267:3;2271:1;2267:6;;;;;;;;:::i;:::-;;;;;;;;2244:9;:30::i;:::-;2225:13;2239:1;2225:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;2206:3;;;;;2165:120;;;;2301:13;2294:20;;;1840:481;;;;:::o;486:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2490:299::-;2606:8;2592:22;;:10;:22;;;2584:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2713:8;2670:18;:30;2689:10;2670:30;;;;;;;;;;;;;;;:40;2701:8;2670:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2763:8;2736:46;;2751:10;2736:46;;;2773:8;2736:46;;;;;;:::i;:::-;;;;;;;;2490:299;;:::o;715:284:95:-;851:9;863:1;851:13;;846:105;870:3;:10;866:1;:14;846:105;;;154:5;909:3;913:1;909:6;;;;;;;;:::i;:::-;;;;;;;;:15;901:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;882:3;;;;;;;846:105;;;;960:32;971:2;975:3;980:7;960:32;;;;;;;;;;;;:10;:32::i;:::-;715:284;;;:::o;2843:166:96:-;2942:4;2965:18;:27;2984:7;2965:27;;;;;;;;;;;;;;;:37;2993:8;2965:37;;;;;;;;;;;;;;;;;;;;;;;;;2958:44;;2843:166;;;;:::o;3354:1010::-;3533:16;3552:10;3533:29;;3649:8;3641:16;;:4;:16;;;:52;;;;3661:32;3678:4;3684:8;3661:16;:32::i;:::-;3641:52;3620:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;3798:1;3784:16;;:2;:16;;;3776:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3889:19;3911:9;:13;3921:2;3911:13;;;;;;;;;;;:19;3925:4;3911:19;;;;;;;;;;;;;;;;3889:41;;3963:6;3948:11;:21;;3940:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4113:6;4099:11;:20;4077:9;:13;4087:2;4077:13;;;;;;;;;;;:19;4091:4;4077:19;;;;;;;;;;;;;;;:42;;;;4160:6;4139:9;:13;4149:2;4139:13;;;;;;;;;;;:17;4153:2;4139:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4236:2;4205:46;;4230:4;4205:46;;4220:8;4205:46;;;4240:2;4244:6;4205:46;;;;;;;:::i;:::-;;;;;;;;4285:68;4316:8;4326:4;4332:2;4336;4340:6;4348:4;4285:30;:68::i;:::-;3523:841;;3354:1010;;;;;:::o;323:147:95:-;375:13;400:63;;;;;;;;;;;;;;;;;;;323:147;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;6104:438:96:-;6265:1;6251:16;;:2;:16;;;6243:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6316:16;6335:10;6316:29;;6377:6;6356:9;:13;6366:2;6356:13;;;;;;;;;;;:17;6370:2;6356:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6435:2;6398:52;;6431:1;6398:52;;6413:8;6398:52;;;6439:2;6443:6;6398:52;;;;;;;:::i;:::-;;;;;;;;6461:74;6492:8;6510:1;6514:2;6518;6522:6;6530:4;6461:30;:74::i;:::-;6233:309;6104:438;;;;:::o;9722:949::-;9971:1;9954:2;:14;;;:18;9950:715;;;10009:2;9992:43;;;10036:8;10046:4;10052:3;10057:7;10066:4;9992:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9988:667;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:1;10351:6;:13;:18;10347:294;;10423:2;10400:26;;;;;;;;;;;:::i;:::-;;;;;;;;10347:294;10593:6;10587:13;10578:6;10574:2;10570:15;10563:38;9988:667;10162:48;;;10150:60;;;:8;:60;;;;10146:140;;10264:2;10241:26;;;;;;;;;;;:::i;:::-;;;;;;;;10146:140;10072:228;9950:715;9722:949;;;;;;:::o;6627:636::-;6813:1;6799:16;;:2;:16;;;6791:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6885:7;:14;6871:3;:10;:28;6863:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6955:16;6974:10;6955:29;;7000:9;7012:1;7000:13;;6995:101;7019:3;:10;7015:1;:14;6995:101;;;7075:7;7083:1;7075:10;;;;;;;;:::i;:::-;;;;;;;;7050:9;:17;7060:3;7064:1;7060:6;;;;;;;;:::i;:::-;;;;;;;;7050:17;;;;;;;;;;;:21;7068:2;7050:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7031:3;;;;;;;6995:101;;;;7147:2;7111:53;;7143:1;7111:53;;7125:8;7111:53;;;7151:3;7156:7;7111:53;;;;;;;:::i;:::-;;;;;;;;7175:81;7211:8;7229:1;7233:2;7237:3;7242:7;7251:4;7175:35;:81::i;:::-;6781:482;6627:636;;;;:::o;8787:882::-;9011:1;8994:2;:14;;;:18;8990:673;;;9049:2;9032:38;;;9071:8;9081:4;9087:2;9091:6;9099:4;9032:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9028:625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:1;9349:6;:13;:18;9345:294;;9421:2;9398:26;;;;;;;;;;;:::i;:::-;;;;;;;;9345:294;9591:6;9585:13;9576:6;9572:2;9568:15;9561:38;9028:625;9165:43;;;9153:55;;;:8;:55;;;;9149:135;;9262:2;9239:26;;;;;;;;;;;:::i;:::-;;;;;;;;9149:135;9105:193;8990:673;8787:882;;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:99::-;3265:6;3299:5;3293:12;3283:22;;3213:99;;;:::o;3318:169::-;3402:11;3436:6;3431:3;3424:19;3476:4;3471:3;3467:14;3452:29;;3318:169;;;;:::o;3493:139::-;3582:6;3577:3;3572;3566:23;3623:1;3614:6;3609:3;3605:16;3598:27;3493:139;;;:::o;3638:102::-;3679:6;3730:2;3726:7;3721:2;3714:5;3710:14;3706:28;3696:38;;3638:102;;;:::o;3746:377::-;3834:3;3862:39;3895:5;3862:39;:::i;:::-;3917:71;3981:6;3976:3;3917:71;:::i;:::-;3910:78;;3997:65;4055:6;4050:3;4043:4;4036:5;4032:16;3997:65;:::i;:::-;4087:29;4109:6;4087:29;:::i;:::-;4082:3;4078:39;4071:46;;3838:285;3746:377;;;;:::o;4129:313::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4329:9;4323:4;4319:20;4315:1;4304:9;4300:17;4293:47;4357:78;4430:4;4421:6;4357:78;:::i;:::-;4349:86;;4129:313;;;;:::o;4448:329::-;4507:6;4556:2;4544:9;4535:7;4531:23;4527:32;4524:119;;;4562:79;;:::i;:::-;4524:119;4682:1;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4653:117;4448:329;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:117::-;5517:1;5514;5507:12;5531:180;5579:77;5576:1;5569:88;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5717:281;5800:27;5822:4;5800:27;:::i;:::-;5792:6;5788:40;5930:6;5918:10;5915:22;5894:18;5882:10;5879:34;5876:62;5873:88;;;5941:18;;:::i;:::-;5873:88;5981:10;5977:2;5970:22;5760:238;5717:281;;:::o;6004:129::-;6038:6;6065:20;;:::i;:::-;6055:30;;6094:33;6122:4;6114:6;6094:33;:::i;:::-;6004:129;;;:::o;6139:311::-;6216:4;6306:18;6298:6;6295:30;6292:56;;;6328:18;;:::i;:::-;6292:56;6378:4;6370:6;6366:17;6358:25;;6438:4;6432;6428:15;6420:23;;6139:311;;;:::o;6456:117::-;6565:1;6562;6555:12;6596:710;6692:5;6717:81;6733:64;6790:6;6733:64;:::i;:::-;6717:81;:::i;:::-;6708:90;;6818:5;6847:6;6840:5;6833:21;6881:4;6874:5;6870:16;6863:23;;6934:4;6926:6;6922:17;6914:6;6910:30;6963:3;6955:6;6952:15;6949:122;;;6982:79;;:::i;:::-;6949:122;7097:6;7080:220;7114:6;7109:3;7106:15;7080:220;;;7189:3;7218:37;7251:3;7239:10;7218:37;:::i;:::-;7213:3;7206:50;7285:4;7280:3;7276:14;7269:21;;7156:144;7140:4;7135:3;7131:14;7124:21;;7080:220;;;7084:21;6698:608;;6596:710;;;;;:::o;7329:370::-;7400:5;7449:3;7442:4;7434:6;7430:17;7426:27;7416:122;;7457:79;;:::i;:::-;7416:122;7574:6;7561:20;7599:94;7689:3;7681:6;7674:4;7666:6;7662:17;7599:94;:::i;:::-;7590:103;;7406:293;7329:370;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:307;7889:4;7979:18;7971:6;7968:30;7965:56;;;8001:18;;:::i;:::-;7965:56;8039:29;8061:6;8039:29;:::i;:::-;8031:37;;8123:4;8117;8113:15;8105:23;;7828:307;;;:::o;8141:148::-;8239:6;8234:3;8229;8216:30;8280:1;8271:6;8266:3;8262:16;8255:27;8141:148;;;:::o;8295:423::-;8372:5;8397:65;8413:48;8454:6;8413:48;:::i;:::-;8397:65;:::i;:::-;8388:74;;8485:6;8478:5;8471:21;8523:4;8516:5;8512:16;8561:3;8552:6;8547:3;8543:16;8540:25;8537:112;;;8568:79;;:::i;:::-;8537:112;8658:54;8705:6;8700:3;8695;8658:54;:::i;:::-;8378:340;8295:423;;;;;:::o;8737:338::-;8792:5;8841:3;8834:4;8826:6;8822:17;8818:27;8808:122;;8849:79;;:::i;:::-;8808:122;8966:6;8953:20;8991:78;9065:3;9057:6;9050:4;9042:6;9038:17;8991:78;:::i;:::-;8982:87;;8798:277;8737:338;;;;:::o;9081:1509::-;9235:6;9243;9251;9259;9267;9316:3;9304:9;9295:7;9291:23;9287:33;9284:120;;;9323:79;;:::i;:::-;9284:120;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9570:2;9596:53;9641:7;9632:6;9621:9;9617:22;9596:53;:::i;:::-;9586:63;;9541:118;9726:2;9715:9;9711:18;9698:32;9757:18;9749:6;9746:30;9743:117;;;9779:79;;:::i;:::-;9743:117;9884:78;9954:7;9945:6;9934:9;9930:22;9884:78;:::i;:::-;9874:88;;9669:303;10039:2;10028:9;10024:18;10011:32;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9982:303;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10511:62;10565:7;10556:6;10545:9;10541:22;10511:62;:::i;:::-;10501:72;;10295:288;9081:1509;;;;;;;;:::o;10596:311::-;10673:4;10763:18;10755:6;10752:30;10749:56;;;10785:18;;:::i;:::-;10749:56;10835:4;10827:6;10823:17;10815:25;;10895:4;10889;10885:15;10877:23;;10596:311;;;:::o;10930:710::-;11026:5;11051:81;11067:64;11124:6;11067:64;:::i;:::-;11051:81;:::i;:::-;11042:90;;11152:5;11181:6;11174:5;11167:21;11215:4;11208:5;11204:16;11197:23;;11268:4;11260:6;11256:17;11248:6;11244:30;11297:3;11289:6;11286:15;11283:122;;;11316:79;;:::i;:::-;11283:122;11431:6;11414:220;11448:6;11443:3;11440:15;11414:220;;;11523:3;11552:37;11585:3;11573:10;11552:37;:::i;:::-;11547:3;11540:50;11619:4;11614:3;11610:14;11603:21;;11490:144;11474:4;11469:3;11465:14;11458:21;;11414:220;;;11418:21;11032:608;;10930:710;;;;;:::o;11663:370::-;11734:5;11783:3;11776:4;11768:6;11764:17;11760:27;11750:122;;11791:79;;:::i;:::-;11750:122;11908:6;11895:20;11933:94;12023:3;12015:6;12008:4;12000:6;11996:17;11933:94;:::i;:::-;11924:103;;11740:293;11663:370;;;;:::o;12039:894::-;12157:6;12165;12214:2;12202:9;12193:7;12189:23;12185:32;12182:119;;;12220:79;;:::i;:::-;12182:119;12368:1;12357:9;12353:17;12340:31;12398:18;12390:6;12387:30;12384:117;;;12420:79;;:::i;:::-;12384:117;12525:78;12595:7;12586:6;12575:9;12571:22;12525:78;:::i;:::-;12515:88;;12311:302;12680:2;12669:9;12665:18;12652:32;12711:18;12703:6;12700:30;12697:117;;;12733:79;;:::i;:::-;12697:117;12838:78;12908:7;12899:6;12888:9;12884:22;12838:78;:::i;:::-;12828:88;;12623:303;12039:894;;;;;:::o;12939:114::-;13006:6;13040:5;13034:12;13024:22;;12939:114;;;:::o;13059:184::-;13158:11;13192:6;13187:3;13180:19;13232:4;13227:3;13223:14;13208:29;;13059:184;;;;:::o;13249:132::-;13316:4;13339:3;13331:11;;13369:4;13364:3;13360:14;13352:22;;13249:132;;;:::o;13387:108::-;13464:24;13482:5;13464:24;:::i;:::-;13459:3;13452:37;13387:108;;:::o;13501:179::-;13570:10;13591:46;13633:3;13625:6;13591:46;:::i;:::-;13669:4;13664:3;13660:14;13646:28;;13501:179;;;;:::o;13686:113::-;13756:4;13788;13783:3;13779:14;13771:22;;13686:113;;;:::o;13835:732::-;13954:3;13983:54;14031:5;13983:54;:::i;:::-;14053:86;14132:6;14127:3;14053:86;:::i;:::-;14046:93;;14163:56;14213:5;14163:56;:::i;:::-;14242:7;14273:1;14258:284;14283:6;14280:1;14277:13;14258:284;;;14359:6;14353:13;14386:63;14445:3;14430:13;14386:63;:::i;:::-;14379:70;;14472:60;14525:6;14472:60;:::i;:::-;14462:70;;14318:224;14305:1;14302;14298:9;14293:14;;14258:284;;;14262:14;14558:3;14551:10;;13959:608;;;13835:732;;;;:::o;14573:373::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14573:373;;;;:::o;14952:116::-;15022:21;15037:5;15022:21;:::i;:::-;15015:5;15012:32;15002:60;;15058:1;15055;15048:12;15002:60;14952:116;:::o;15074:133::-;15117:5;15155:6;15142:20;15133:29;;15171:30;15195:5;15171:30;:::i;:::-;15074:133;;;;:::o;15213:468::-;15278:6;15286;15335:2;15323:9;15314:7;15310:23;15306:32;15303:119;;;15341:79;;:::i;:::-;15303:119;15461:1;15486:53;15531:7;15522:6;15511:9;15507:22;15486:53;:::i;:::-;15476:63;;15432:117;15588:2;15614:50;15656:7;15647:6;15636:9;15632:22;15614:50;:::i;:::-;15604:60;;15559:115;15213:468;;;;;:::o;15687:1039::-;15814:6;15822;15830;15879:2;15867:9;15858:7;15854:23;15850:32;15847:119;;;15885:79;;:::i;:::-;15847:119;16005:1;16030:53;16075:7;16066:6;16055:9;16051:22;16030:53;:::i;:::-;16020:63;;15976:117;16160:2;16149:9;16145:18;16132:32;16191:18;16183:6;16180:30;16177:117;;;16213:79;;:::i;:::-;16177:117;16318:78;16388:7;16379:6;16368:9;16364:22;16318:78;:::i;:::-;16308:88;;16103:303;16473:2;16462:9;16458:18;16445:32;16504:18;16496:6;16493:30;16490:117;;;16526:79;;:::i;:::-;16490:117;16631:78;16701:7;16692:6;16681:9;16677:22;16631:78;:::i;:::-;16621:88;;16416:303;15687:1039;;;;;:::o;16732:474::-;16800:6;16808;16857:2;16845:9;16836:7;16832:23;16828:32;16825:119;;;16863:79;;:::i;:::-;16825:119;16983:1;17008:53;17053:7;17044:6;17033:9;17029:22;17008:53;:::i;:::-;16998:63;;16954:117;17110:2;17136:53;17181:7;17172:6;17161:9;17157:22;17136:53;:::i;:::-;17126:63;;17081:118;16732:474;;;;;:::o;17212:1089::-;17316:6;17324;17332;17340;17348;17397:3;17385:9;17376:7;17372:23;17368:33;17365:120;;;17404:79;;:::i;:::-;17365:120;17524:1;17549:53;17594:7;17585:6;17574:9;17570:22;17549:53;:::i;:::-;17539:63;;17495:117;17651:2;17677:53;17722:7;17713:6;17702:9;17698:22;17677:53;:::i;:::-;17667:63;;17622:118;17779:2;17805:53;17850:7;17841:6;17830:9;17826:22;17805:53;:::i;:::-;17795:63;;17750:118;17907:2;17933:53;17978:7;17969:6;17958:9;17954:22;17933:53;:::i;:::-;17923:63;;17878:118;18063:3;18052:9;18048:19;18035:33;18095:18;18087:6;18084:30;18081:117;;;18117:79;;:::i;:::-;18081:117;18222:62;18276:7;18267:6;18256:9;18252:22;18222:62;:::i;:::-;18212:72;;18006:288;17212:1089;;;;;;;;:::o;18307:229::-;18447:34;18443:1;18435:6;18431:14;18424:58;18516:12;18511:2;18503:6;18499:15;18492:37;18307:229;:::o;18542:366::-;18684:3;18705:67;18769:2;18764:3;18705:67;:::i;:::-;18698:74;;18781:93;18870:3;18781:93;:::i;:::-;18899:2;18894:3;18890:12;18883:19;;18542:366;;;:::o;18914:419::-;19080:4;19118:2;19107:9;19103:18;19095:26;;19167:9;19161:4;19157:20;19153:1;19142:9;19138:17;19131:47;19195:131;19321:4;19195:131;:::i;:::-;19187:139;;18914:419;;;:::o;19339:180::-;19387:77;19384:1;19377:88;19484:4;19481:1;19474:15;19508:4;19505:1;19498:15;19525:320;19569:6;19606:1;19600:4;19596:12;19586:22;;19653:1;19647:4;19643:12;19674:18;19664:81;;19730:4;19722:6;19718:17;19708:27;;19664:81;19792:2;19784:6;19781:14;19761:18;19758:38;19755:84;;19811:18;;:::i;:::-;19755:84;19576:269;19525:320;;;:::o;19851:148::-;19953:11;19990:3;19975:18;;19851:148;;;;:::o;20005:390::-;20111:3;20139:39;20172:5;20139:39;:::i;:::-;20194:89;20276:6;20271:3;20194:89;:::i;:::-;20187:96;;20292:65;20350:6;20345:3;20338:4;20331:5;20327:16;20292:65;:::i;:::-;20382:6;20377:3;20373:16;20366:23;;20115:280;20005:390;;;;:::o;20401:435::-;20581:3;20603:95;20694:3;20685:6;20603:95;:::i;:::-;20596:102;;20715:95;20806:3;20797:6;20715:95;:::i;:::-;20708:102;;20827:3;20820:10;;20401:435;;;;;:::o;20842:161::-;20982:13;20978:1;20970:6;20966:14;20959:37;20842:161;:::o;21009:366::-;21151:3;21172:67;21236:2;21231:3;21172:67;:::i;:::-;21165:74;;21248:93;21337:3;21248:93;:::i;:::-;21366:2;21361:3;21357:12;21350:19;;21009:366;;;:::o;21381:419::-;21547:4;21585:2;21574:9;21570:18;21562:26;;21634:9;21628:4;21624:20;21620:1;21609:9;21605:17;21598:47;21662:131;21788:4;21662:131;:::i;:::-;21654:139;;21381:419;;;:::o;21806:234::-;21946:34;21942:1;21934:6;21930:14;21923:58;22015:17;22010:2;22002:6;21998:15;21991:42;21806:234;:::o;22046:366::-;22188:3;22209:67;22273:2;22268:3;22209:67;:::i;:::-;22202:74;;22285:93;22374:3;22285:93;:::i;:::-;22403:2;22398:3;22394:12;22387:19;;22046:366;;;:::o;22418:419::-;22584:4;22622:2;22611:9;22607:18;22599:26;;22671:9;22665:4;22661:20;22657:1;22646:9;22642:17;22635:47;22699:131;22825:4;22699:131;:::i;:::-;22691:139;;22418:419;;;:::o;22843:227::-;22983:34;22979:1;22971:6;22967:14;22960:58;23052:10;23047:2;23039:6;23035:15;23028:35;22843:227;:::o;23076:366::-;23218:3;23239:67;23303:2;23298:3;23239:67;:::i;:::-;23232:74;;23315:93;23404:3;23315:93;:::i;:::-;23433:2;23428:3;23424:12;23417:19;;23076:366;;;:::o;23448:419::-;23614:4;23652:2;23641:9;23637:18;23629:26;;23701:9;23695:4;23691:20;23687:1;23676:9;23672:17;23665:47;23729:131;23855:4;23729:131;:::i;:::-;23721:139;;23448:419;;;:::o;23873:224::-;24013:34;24009:1;24001:6;23997:14;23990:58;24082:7;24077:2;24069:6;24065:15;24058:32;23873:224;:::o;24103:366::-;24245:3;24266:67;24330:2;24325:3;24266:67;:::i;:::-;24259:74;;24342:93;24431:3;24342:93;:::i;:::-;24460:2;24455:3;24451:12;24444:19;;24103:366;;;:::o;24475:419::-;24641:4;24679:2;24668:9;24664:18;24656:26;;24728:9;24722:4;24718:20;24714:1;24703:9;24699:17;24692:47;24756:131;24882:4;24756:131;:::i;:::-;24748:139;;24475:419;;;:::o;24900:180::-;24948:77;24945:1;24938:88;25045:4;25042:1;25035:15;25069:4;25066:1;25059:15;25086:229;25226:34;25222:1;25214:6;25210:14;25203:58;25295:12;25290:2;25282:6;25278:15;25271:37;25086:229;:::o;25321:366::-;25463:3;25484:67;25548:2;25543:3;25484:67;:::i;:::-;25477:74;;25560:93;25649:3;25560:93;:::i;:::-;25678:2;25673:3;25669:12;25662:19;;25321:366;;;:::o;25693:419::-;25859:4;25897:2;25886:9;25882:18;25874:26;;25946:9;25940:4;25936:20;25932:1;25921:9;25917:17;25910:47;25974:131;26100:4;25974:131;:::i;:::-;25966:139;;25693:419;;;:::o;26118:180::-;26166:77;26163:1;26156:88;26263:4;26260:1;26253:15;26287:4;26284:1;26277:15;26304:191;26344:3;26363:20;26381:1;26363:20;:::i;:::-;26358:25;;26397:20;26415:1;26397:20;:::i;:::-;26392:25;;26440:1;26437;26433:9;26426:16;;26461:3;26458:1;26455:10;26452:36;;;26468:18;;:::i;:::-;26452:36;26304:191;;;;:::o;26501:634::-;26722:4;26760:2;26749:9;26745:18;26737:26;;26809:9;26803:4;26799:20;26795:1;26784:9;26780:17;26773:47;26837:108;26940:4;26931:6;26837:108;:::i;:::-;26829:116;;26992:9;26986:4;26982:20;26977:2;26966:9;26962:18;26955:48;27020:108;27123:4;27114:6;27020:108;:::i;:::-;27012:116;;26501:634;;;;;:::o;27141:228::-;27281:34;27277:1;27269:6;27265:14;27258:58;27350:11;27345:2;27337:6;27333:15;27326:36;27141:228;:::o;27375:366::-;27517:3;27538:67;27602:2;27597:3;27538:67;:::i;:::-;27531:74;;27614:93;27703:3;27614:93;:::i;:::-;27732:2;27727:3;27723:12;27716:19;;27375:366;;;:::o;27747:419::-;27913:4;27951:2;27940:9;27936:18;27928:26;;28000:9;27994:4;27990:20;27986:1;27975:9;27971:17;27964:47;28028:131;28154:4;28028:131;:::i;:::-;28020:139;;27747:419;;;:::o;28172:228::-;28312:34;28308:1;28300:6;28296:14;28289:58;28381:11;28376:2;28368:6;28364:15;28357:36;28172:228;:::o;28406:366::-;28548:3;28569:67;28633:2;28628:3;28569:67;:::i;:::-;28562:74;;28645:93;28734:3;28645:93;:::i;:::-;28763:2;28758:3;28754:12;28747:19;;28406:366;;;:::o;28778:419::-;28944:4;28982:2;28971:9;28967:18;28959:26;;29031:9;29025:4;29021:20;29017:1;29006:9;29002:17;28995:47;29059:131;29185:4;29059:131;:::i;:::-;29051:139;;28778:419;;;:::o;29203:332::-;29324:4;29362:2;29351:9;29347:18;29339:26;;29375:71;29443:1;29432:9;29428:17;29419:6;29375:71;:::i;:::-;29456:72;29524:2;29513:9;29509:18;29500:6;29456:72;:::i;:::-;29203:332;;;;;:::o;29541:233::-;29580:3;29603:24;29621:5;29603:24;:::i;:::-;29594:33;;29649:66;29642:5;29639:77;29636:103;;29719:18;;:::i;:::-;29636:103;29766:1;29759:5;29755:13;29748:20;;29541:233;;;:::o;29780:180::-;29828:77;29825:1;29818:88;29925:4;29922:1;29915:15;29949:4;29946:1;29939:15;29966:185;30006:1;30023:20;30041:1;30023:20;:::i;:::-;30018:25;;30057:20;30075:1;30057:20;:::i;:::-;30052:25;;30096:1;30086:35;;30101:18;;:::i;:::-;30086:35;30143:1;30140;30136:9;30131:14;;29966:185;;;;:::o;30157:194::-;30197:4;30217:20;30235:1;30217:20;:::i;:::-;30212:25;;30251:20;30269:1;30251:20;:::i;:::-;30246:25;;30295:1;30292;30288:9;30280:17;;30319:1;30313:4;30310:11;30307:37;;;30324:18;;:::i;:::-;30307:37;30157:194;;;;:::o;30357:176::-;30389:1;30406:20;30424:1;30406:20;:::i;:::-;30401:25;;30440:20;30458:1;30440:20;:::i;:::-;30435:25;;30479:1;30469:35;;30484:18;;:::i;:::-;30469:35;30525:1;30522;30518:9;30513:14;;30357:176;;;;:::o;30539:220::-;30679:34;30675:1;30667:6;30663:14;30656:58;30748:3;30743:2;30735:6;30731:15;30724:28;30539:220;:::o;30765:366::-;30907:3;30928:67;30992:2;30987:3;30928:67;:::i;:::-;30921:74;;31004:93;31093:3;31004:93;:::i;:::-;31122:2;31117:3;31113:12;31106:19;;30765:366;;;:::o;31137:419::-;31303:4;31341:2;31330:9;31326:18;31318:26;;31390:9;31384:4;31380:20;31376:1;31365:9;31361:17;31354:47;31418:131;31544:4;31418:131;:::i;:::-;31410:139;;31137:419;;;:::o;31562:118::-;31649:24;31667:5;31649:24;:::i;:::-;31644:3;31637:37;31562:118;;:::o;31686:98::-;31737:6;31771:5;31765:12;31755:22;;31686:98;;;:::o;31790:168::-;31873:11;31907:6;31902:3;31895:19;31947:4;31942:3;31938:14;31923:29;;31790:168;;;;:::o;31964:373::-;32050:3;32078:38;32110:5;32078:38;:::i;:::-;32132:70;32195:6;32190:3;32132:70;:::i;:::-;32125:77;;32211:65;32269:6;32264:3;32257:4;32250:5;32246:16;32211:65;:::i;:::-;32301:29;32323:6;32301:29;:::i;:::-;32296:3;32292:39;32285:46;;32054:283;31964:373;;;;:::o;32343:1053::-;32666:4;32704:3;32693:9;32689:19;32681:27;;32718:71;32786:1;32775:9;32771:17;32762:6;32718:71;:::i;:::-;32799:72;32867:2;32856:9;32852:18;32843:6;32799:72;:::i;:::-;32918:9;32912:4;32908:20;32903:2;32892:9;32888:18;32881:48;32946:108;33049:4;33040:6;32946:108;:::i;:::-;32938:116;;33101:9;33095:4;33091:20;33086:2;33075:9;33071:18;33064:48;33129:108;33232:4;33223:6;33129:108;:::i;:::-;33121:116;;33285:9;33279:4;33275:20;33269:3;33258:9;33254:19;33247:49;33313:76;33384:4;33375:6;33313:76;:::i;:::-;33305:84;;32343:1053;;;;;;;;:::o;33402:141::-;33458:5;33489:6;33483:13;33474:22;;33505:32;33531:5;33505:32;:::i;:::-;33402:141;;;;:::o;33549:349::-;33618:6;33667:2;33655:9;33646:7;33642:23;33638:32;33635:119;;;33673:79;;:::i;:::-;33635:119;33793:1;33818:63;33873:7;33864:6;33853:9;33849:22;33818:63;:::i;:::-;33808:73;;33764:127;33549:349;;;;:::o;33904:222::-;33997:4;34035:2;34024:9;34020:18;34012:26;;34048:71;34116:1;34105:9;34101:17;34092:6;34048:71;:::i;:::-;33904:222;;;;:::o;34132:751::-;34355:4;34393:3;34382:9;34378:19;34370:27;;34407:71;34475:1;34464:9;34460:17;34451:6;34407:71;:::i;:::-;34488:72;34556:2;34545:9;34541:18;34532:6;34488:72;:::i;:::-;34570;34638:2;34627:9;34623:18;34614:6;34570:72;:::i;:::-;34652;34720:2;34709:9;34705:18;34696:6;34652:72;:::i;:::-;34772:9;34766:4;34762:20;34756:3;34745:9;34741:19;34734:49;34800:76;34871:4;34862:6;34800:76;:::i;:::-;34792:84;;34132:751;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,uint256)":"156e29f6","mintBatch(address,uint256[],uint256[])":"d81d0a15","name()":"06fdde03","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2 \\u5b9e\\u73b0IERC1155\\u7684balanceOf\\uff0c\\u8fd4\\u56deaccount\\u5730\\u5740\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u6301\\u4ed3\\u91cf\\u3002\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2 \\u8981\\u6c42: - `accounts` \\u548c `ids` \\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49.\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u67e5\\u8be2\\u6279\\u91cf\\u6388\\u6743.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amounts`\\u6570\\u7ec4\\u5355\\u4f4d\\u7684`ids`\\u6570\\u7ec4\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155BatchReceived. - ids\\u548camounts\\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d\\u7684`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155Received.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u8c03\\u7528\\u8005\\u6388\\u6743operator\\u4f7f\\u7528\\u5176\\u6240\\u6709\\u4ee3\\u5e01 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6 \\u6761\\u4ef6\\uff1amsg.sender != operator\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56deERC1155\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684uri\\uff0c\\u5b58\\u50a8metadata\\uff0c\\u7c7b\\u4f3cERC721\\u7684tokenURI.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/BAYC1155.sol\":\"BAYC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/40_ERC1155/BAYC1155.sol\":{\"keccak256\":\"0xbb65e40faea65ec9ebb5f42756a8525b387f9114a93c98e224037d9cb16e52a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9301e79217fc18f0862ddcdc037395aedb57014a09a06b4f8e75803c8655b9e\",\"dweb:/ipfs/QmPaoTzUYaipS81k7fuLHJ9h3nnPeUeurEGBfz2cP4bexX\"]},\"src/40_ERC1155/ERC1155.sol\":{\"keccak256\":\"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a\",\"dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"mintBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询 实现IERC1155的balanceOf,返回account地址的id种类代币持仓量。"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询 要求: - `accounts` 和 `ids` 数组长度相等."},"isApprovedForAll(address,address)":{"details":"查询批量授权."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账,将`amounts`数组单位的`ids`数组种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155BatchReceived. - ids和amounts数组长度相等"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位的`id`种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155Received."},"setApprovalForAll(address,bool)":{"details":"批量授权,调用者授权operator使用其所有代币 释放{ApprovalForAll}事件 条件:msg.sender != operator"},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"uri(uint256)":{"details":"返回ERC1155的id种类代币的uri,存储metadata,类似ERC721的tokenURI."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/BAYC1155.sol":"BAYC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/40_ERC1155/BAYC1155.sol":{"keccak256":"0xbb65e40faea65ec9ebb5f42756a8525b387f9114a93c98e224037d9cb16e52a4","urls":["bzz-raw://b9301e79217fc18f0862ddcdc037395aedb57014a09a06b4f8e75803c8655b9e","dweb:/ipfs/QmPaoTzUYaipS81k7fuLHJ9h3nnPeUeurEGBfz2cP4bexX"],"license":"MIT"},"src/40_ERC1155/ERC1155.sol":{"keccak256":"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c","urls":["bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a","dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintBatch","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600881526020017f42415943313135350000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4241594331313535000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b612b02806103cc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80634e1273f41161006f5780634e1273f41461019b57806395d89b41146101cb578063a22cb465146101e9578063d81d0a1514610205578063e985e9c514610221578063f242432a14610251576100b1565b8062fdd58e146100b557806301ffc9a7146100e557806306fdde03146101155780630e89341c14610133578063156e29f6146101635780632eb2c2d61461017f575b5f5ffd5b6100cf60048036038101906100ca91906118f0565b61026d565b6040516100dc919061193d565b60405180910390f35b6100ff60048036038101906100fa91906119ab565b610331565b60405161010c91906119f0565b60405180910390f35b61011d61046a565b60405161012a9190611a79565b60405180910390f35b61014d60048036038101906101489190611a99565b6104f5565b60405161015a9190611a79565b60405180910390f35b61017d60048036038101906101789190611ac4565b610551565b005b61019960048036038101906101949190611d04565b6105b4565b005b6101b560048036038101906101b09190611e8f565b61091e565b6040516101c29190611fbc565b60405180910390f35b6101d3610a32565b6040516101e09190611a79565b60405180910390f35b61020360048036038101906101fe9190612006565b610abe565b005b61021f600480360381019061021a9190612044565b610c24565b005b61023b600480360381019061023691906120cc565b610cbd565b60405161024891906119f0565b60405180910390f35b61026b6004803603810190610266919061210a565b610d4b565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d39061220d565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fb57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461047690612258565b80601f01602080910402602001604051908101604052809291908181526020018280546104a290612258565b80156104ed5780601f106104c4576101008083540402835291602001916104ed565b820191905f5260205f20905b8154815290600101906020018083116104d057829003601f168201915b505050505081565b60605f610500611019565b90505f81511161051e5760405180602001604052805f815250610549565b8061052884611039565b6040516020016105399291906122c2565b6040516020818303038152906040525b915050919050565b6127108210610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c9061232f565b60405180910390fd5b6105af83838360405180602001604052805f815250611192565b505050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f78682610cbd565b5b610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e906123bd565b60405180910390fd5b825184511461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106729061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906124d9565b60405180910390fd5b5f5f90505b8451811015610889575f85828151811061070b5761070a6124f7565b5b602002602001015190505f858381518110610729576107286124f7565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90612594565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906125df565b925050819055505050508060010190506106ee565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610900929190612612565b60405180910390a46109168187878787876112f9565b505050505050565b60608151835114610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906126b7565b60405180910390fd5b5f835167ffffffffffffffff8111156109805761097f611b18565b5b6040519080825280602002602001820160405280156109ae5781602001602082028036833780820191505090505b5090505f5f90505b8451811015610a27576109fd8582815181106109d5576109d46124f7565b5b60200260200101518583815181106109f0576109ef6124f7565b5b602002602001015161026d565b828281518110610a1057610a0f6124f7565b5b6020026020010181815250508060010190506109b6565b508091505092915050565b60018054610a3f90612258565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90612258565b8015610ab65780601f10610a8d57610100808354040283529160200191610ab6565b820191905f5260205f20905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612745565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906119f0565b60405180910390a35050565b5f5f90505b8251811015610c9d57612710838281518110610c4857610c476124f7565b5b602002602001015110610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061232f565b60405180910390fd5b8080600101915050610c29565b50610cb883838360405180602001604052805f8152506114a8565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610d8f5750610d8e8682610cbd565b5b610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906123bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906124d9565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612594565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f7d91906125df565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610ffa929190612763565b60405180910390a46110108288888888886116a3565b50505050505050565b6060604051806060016040528060368152602001612a9760369139905090565b60605f820361107f576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118d565b5f8290505f5b5f82146110ae5780806110979061278a565b915050600a826110a791906127fe565b9150611085565b5f8167ffffffffffffffff8111156110c9576110c8611b18565b5b6040519080825280601f01601f1916602001820160405280156110fb5781602001600182028036833780820191505090505b5090505b5f851461118657600182611113919061282e565b9150600a856111229190612861565b603061112e91906125df565b60f81b818381518110611144576111436124f7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117f91906127fe565b94506110ff565b8093505050505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612901565b60405180910390fd5b5f3390508260025f8681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461125f91906125df565b925050819055508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516112dc929190612763565b60405180910390a46112f2815f878787876116a3565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156114a0578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611359959493929190612980565b6020604051808303815f875af192505050801561139457506040513d601f19601f8201168201806040525081019061139191906129fa565b60015b611415573d805f81146113c2576040519150601f19603f3d011682016040523d82523d5f602084013e6113c7565b606091505b505f81510361140d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114049190612a25565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114959190612a25565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612901565b60405180910390fd5b815183511461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061244b565b60405180910390fd5b5f3390505f5f90505b845181101561160f5783818151811061157f5761157e6124f7565b5b602002602001015160025f87848151811061159d5761159c6124f7565b5b602002602001015181526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115fb91906125df565b925050819055508080600101915050611563565b508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611686929190612612565b60405180910390a461169c815f878787876112f9565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561184a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611703959493929190612a3e565b6020604051808303815f875af192505050801561173e57506040513d601f19601f8201168201806040525081019061173b91906129fa565b60015b6117bf573d805f811461176c576040519150601f19603f3d011682016040523d82523d5f602084013e611771565b606091505b505f8151036117b757846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ae9190612a25565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461184857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161183f9190612a25565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61188c82611863565b9050919050565b61189c81611882565b81146118a6575f5ffd5b50565b5f813590506118b781611893565b92915050565b5f819050919050565b6118cf816118bd565b81146118d9575f5ffd5b50565b5f813590506118ea816118c6565b92915050565b5f5f604083850312156119065761190561185b565b5b5f611913858286016118a9565b9250506020611924858286016118dc565b9150509250929050565b611937816118bd565b82525050565b5f6020820190506119505f83018461192e565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61198a81611956565b8114611994575f5ffd5b50565b5f813590506119a581611981565b92915050565b5f602082840312156119c0576119bf61185b565b5b5f6119cd84828501611997565b91505092915050565b5f8115159050919050565b6119ea816119d6565b82525050565b5f602082019050611a035f8301846119e1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a4b82611a09565b611a558185611a13565b9350611a65818560208601611a23565b611a6e81611a31565b840191505092915050565b5f6020820190508181035f830152611a918184611a41565b905092915050565b5f60208284031215611aae57611aad61185b565b5b5f611abb848285016118dc565b91505092915050565b5f5f5f60608486031215611adb57611ada61185b565b5b5f611ae8868287016118a9565b9350506020611af9868287016118dc565b9250506040611b0a868287016118dc565b9150509250925092565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b4e82611a31565b810181811067ffffffffffffffff82111715611b6d57611b6c611b18565b5b80604052505050565b5f611b7f611852565b9050611b8b8282611b45565b919050565b5f67ffffffffffffffff821115611baa57611ba9611b18565b5b602082029050602081019050919050565b5f5ffd5b5f611bd1611bcc84611b90565b611b76565b90508083825260208201905060208402830185811115611bf457611bf3611bbb565b5b835b81811015611c1d5780611c0988826118dc565b845260208401935050602081019050611bf6565b5050509392505050565b5f82601f830112611c3b57611c3a611b14565b5b8135611c4b848260208601611bbf565b91505092915050565b5f5ffd5b5f67ffffffffffffffff821115611c7257611c71611b18565b5b611c7b82611a31565b9050602081019050919050565b828183375f83830152505050565b5f611ca8611ca384611c58565b611b76565b905082815260208101848484011115611cc457611cc3611c54565b5b611ccf848285611c88565b509392505050565b5f82601f830112611ceb57611cea611b14565b5b8135611cfb848260208601611c96565b91505092915050565b5f5f5f5f5f60a08688031215611d1d57611d1c61185b565b5b5f611d2a888289016118a9565b9550506020611d3b888289016118a9565b945050604086013567ffffffffffffffff811115611d5c57611d5b61185f565b5b611d6888828901611c27565b935050606086013567ffffffffffffffff811115611d8957611d8861185f565b5b611d9588828901611c27565b925050608086013567ffffffffffffffff811115611db657611db561185f565b5b611dc288828901611cd7565b9150509295509295909350565b5f67ffffffffffffffff821115611de957611de8611b18565b5b602082029050602081019050919050565b5f611e0c611e0784611dcf565b611b76565b90508083825260208201905060208402830185811115611e2f57611e2e611bbb565b5b835b81811015611e585780611e4488826118a9565b845260208401935050602081019050611e31565b5050509392505050565b5f82601f830112611e7657611e75611b14565b5b8135611e86848260208601611dfa565b91505092915050565b5f5f60408385031215611ea557611ea461185b565b5b5f83013567ffffffffffffffff811115611ec257611ec161185f565b5b611ece85828601611e62565b925050602083013567ffffffffffffffff811115611eef57611eee61185f565b5b611efb85828601611c27565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f37816118bd565b82525050565b5f611f488383611f2e565b60208301905092915050565b5f602082019050919050565b5f611f6a82611f05565b611f748185611f0f565b9350611f7f83611f1f565b805f5b83811015611faf578151611f968882611f3d565b9750611fa183611f54565b925050600181019050611f82565b5085935050505092915050565b5f6020820190508181035f830152611fd48184611f60565b905092915050565b611fe5816119d6565b8114611fef575f5ffd5b50565b5f8135905061200081611fdc565b92915050565b5f5f6040838503121561201c5761201b61185b565b5b5f612029858286016118a9565b925050602061203a85828601611ff2565b9150509250929050565b5f5f5f6060848603121561205b5761205a61185b565b5b5f612068868287016118a9565b935050602084013567ffffffffffffffff8111156120895761208861185f565b5b61209586828701611c27565b925050604084013567ffffffffffffffff8111156120b6576120b561185f565b5b6120c286828701611c27565b9150509250925092565b5f5f604083850312156120e2576120e161185b565b5b5f6120ef858286016118a9565b9250506020612100858286016118a9565b9150509250929050565b5f5f5f5f5f60a086880312156121235761212261185b565b5b5f612130888289016118a9565b9550506020612141888289016118a9565b9450506040612152888289016118dc565b9350506060612163888289016118dc565b925050608086013567ffffffffffffffff8111156121845761218361185f565b5b61219088828901611cd7565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f6121f7602a83611a13565b91506122028261219d565b604082019050919050565b5f6020820190508181035f830152612224816121eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061226f57607f821691505b6020821081036122825761228161222b565b5b50919050565b5f81905092915050565b5f61229c82611a09565b6122a68185612288565b93506122b6818560208601611a23565b80840191505092915050565b5f6122cd8285612292565b91506122d98284612292565b91508190509392505050565b7f6964206f766572666c6f770000000000000000000000000000000000000000005f82015250565b5f612319600b83611a13565b9150612324826122e5565b602082019050919050565b5f6020820190508181035f8301526123468161230d565b9050919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f6123a7602f83611a13565b91506123b28261234d565b604082019050919050565b5f6020820190508181035f8301526123d48161239b565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f612435602883611a13565b9150612440826123db565b604082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124c3602583611a13565b91506124ce82612469565b604082019050919050565b5f6020820190508181035f8301526124f0816124b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f61257e602a83611a13565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e9826118bd565b91506125f4836118bd565b925082820190508082111561260c5761260b6125b2565b5b92915050565b5f6040820190508181035f83015261262a8185611f60565b9050818103602083015261263e8184611f60565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6126a1602983611a13565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61272f602983611a13565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b5f6040820190506127765f83018561192e565b612783602083018461192e565b9392505050565b5f612794826118bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127c6576127c56125b2565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612808826118bd565b9150612813836118bd565b925082612823576128226127d1565b5b828204905092915050565b5f612838826118bd565b9150612843836118bd565b925082820390508181111561285b5761285a6125b2565b5b92915050565b5f61286b826118bd565b9150612876836118bd565b925082612886576128856127d1565b5b828206905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128eb602183611a13565b91506128f682612891565b604082019050919050565b5f6020820190508181035f830152612918816128df565b9050919050565b61292881611882565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6129528261292e565b61295c8185612938565b935061296c818560208601611a23565b61297581611a31565b840191505092915050565b5f60a0820190506129935f83018861291f565b6129a0602083018761291f565b81810360408301526129b28186611f60565b905081810360608301526129c68185611f60565b905081810360808301526129da8184612948565b90509695505050505050565b5f815190506129f481611981565b92915050565b5f60208284031215612a0f57612a0e61185b565b5b5f612a1c848285016129e6565b91505092915050565b5f602082019050612a385f83018461291f565b92915050565b5f60a082019050612a515f83018861291f565b612a5e602083018761291f565b612a6b604083018661192e565b612a78606083018561192e565b8181036080830152612a8a8184612948565b9050969550505050505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa26469706673582212205714af1fe822619b8c9ac05e49434765f25ef1f0d876df96d5efe49a3e33b0ce64736f6c63430008220033","sourceMap":"94:908:89:-:0;;;186:52;;;;;;;;;;900:111:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:5;966:4;:12;;;;;;:::i;:::-;;997:7;988:6;:16;;;;;;:::i;:::-;;900:111;;94:908:89;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;94:908:89:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80634e1273f41161006f5780634e1273f41461019b57806395d89b41146101cb578063a22cb465146101e9578063d81d0a1514610205578063e985e9c514610221578063f242432a14610251576100b1565b8062fdd58e146100b557806301ffc9a7146100e557806306fdde03146101155780630e89341c14610133578063156e29f6146101635780632eb2c2d61461017f575b5f5ffd5b6100cf60048036038101906100ca91906118f0565b61026d565b6040516100dc919061193d565b60405180910390f35b6100ff60048036038101906100fa91906119ab565b610331565b60405161010c91906119f0565b60405180910390f35b61011d61046a565b60405161012a9190611a79565b60405180910390f35b61014d60048036038101906101489190611a99565b6104f5565b60405161015a9190611a79565b60405180910390f35b61017d60048036038101906101789190611ac4565b610551565b005b61019960048036038101906101949190611d04565b6105b4565b005b6101b560048036038101906101b09190611e8f565b61091e565b6040516101c29190611fbc565b60405180910390f35b6101d3610a32565b6040516101e09190611a79565b60405180910390f35b61020360048036038101906101fe9190612006565b610abe565b005b61021f600480360381019061021a9190612044565b610c24565b005b61023b600480360381019061023691906120cc565b610cbd565b60405161024891906119f0565b60405180910390f35b61026b6004803603810190610266919061210a565b610d4b565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d39061220d565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fb57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461047690612258565b80601f01602080910402602001604051908101604052809291908181526020018280546104a290612258565b80156104ed5780601f106104c4576101008083540402835291602001916104ed565b820191905f5260205f20905b8154815290600101906020018083116104d057829003601f168201915b505050505081565b60605f610500611019565b90505f81511161051e5760405180602001604052805f815250610549565b8061052884611039565b6040516020016105399291906122c2565b6040516020818303038152906040525b915050919050565b6127108210610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c9061232f565b60405180910390fd5b6105af83838360405180602001604052805f815250611192565b505050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806105f857506105f78682610cbd565b5b610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e906123bd565b60405180910390fd5b825184511461067b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106729061244b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e0906124d9565b60405180910390fd5b5f5f90505b8451811015610889575f85828151811061070b5761070a6124f7565b5b602002602001015190505f858381518110610729576107286124f7565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156107c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bd90612594565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906125df565b925050819055505050508060010190506106ee565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610900929190612612565b60405180910390a46109168187878787876112f9565b505050505050565b60608151835114610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906126b7565b60405180910390fd5b5f835167ffffffffffffffff8111156109805761097f611b18565b5b6040519080825280602002602001820160405280156109ae5781602001602082028036833780820191505090505b5090505f5f90505b8451811015610a27576109fd8582815181106109d5576109d46124f7565b5b60200260200101518583815181106109f0576109ef6124f7565b5b602002602001015161026d565b828281518110610a1057610a0f6124f7565b5b6020026020010181815250508060010190506109b6565b508091505092915050565b60018054610a3f90612258565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90612258565b8015610ab65780601f10610a8d57610100808354040283529160200191610ab6565b820191905f5260205f20905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612745565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906119f0565b60405180910390a35050565b5f5f90505b8251811015610c9d57612710838281518110610c4857610c476124f7565b5b602002602001015110610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061232f565b60405180910390fd5b8080600101915050610c29565b50610cb883838360405180602001604052805f8152506114a8565b505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610d8f5750610d8e8682610cbd565b5b610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906123bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906124d9565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612594565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f7d91906125df565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610ffa929190612763565b60405180910390a46110108288888888886116a3565b50505050505050565b6060604051806060016040528060368152602001612a9760369139905090565b60605f820361107f576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118d565b5f8290505f5b5f82146110ae5780806110979061278a565b915050600a826110a791906127fe565b9150611085565b5f8167ffffffffffffffff8111156110c9576110c8611b18565b5b6040519080825280601f01601f1916602001820160405280156110fb5781602001600182028036833780820191505090505b5090505b5f851461118657600182611113919061282e565b9150600a856111229190612861565b603061112e91906125df565b60f81b818381518110611144576111436124f7565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117f91906127fe565b94506110ff565b8093505050505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612901565b60405180910390fd5b5f3390508260025f8681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461125f91906125df565b925050819055508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516112dc929190612763565b60405180910390a46112f2815f878787876116a3565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156114a0578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611359959493929190612980565b6020604051808303815f875af192505050801561139457506040513d601f19601f8201168201806040525081019061139191906129fa565b60015b611415573d805f81146113c2576040519150601f19603f3d011682016040523d82523d5f602084013e6113c7565b606091505b505f81510361140d57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114049190612a25565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461149e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114959190612a25565b60405180910390fd5b505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612901565b60405180910390fd5b815183511461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061244b565b60405180910390fd5b5f3390505f5f90505b845181101561160f5783818151811061157f5761157e6124f7565b5b602002602001015160025f87848151811061159d5761159c6124f7565b5b602002602001015181526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115fb91906125df565b925050819055508080600101915050611563565b508473ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611686929190612612565b60405180910390a461169c815f878787876112f9565b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561184a578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611703959493929190612a3e565b6020604051808303815f875af192505050801561173e57506040513d601f19601f8201168201806040525081019061173b91906129fa565b60015b6117bf573d805f811461176c576040519150601f19603f3d011682016040523d82523d5f602084013e611771565b606091505b505f8151036117b757846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016117ae9190612a25565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461184857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161183f9190612a25565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61188c82611863565b9050919050565b61189c81611882565b81146118a6575f5ffd5b50565b5f813590506118b781611893565b92915050565b5f819050919050565b6118cf816118bd565b81146118d9575f5ffd5b50565b5f813590506118ea816118c6565b92915050565b5f5f604083850312156119065761190561185b565b5b5f611913858286016118a9565b9250506020611924858286016118dc565b9150509250929050565b611937816118bd565b82525050565b5f6020820190506119505f83018461192e565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61198a81611956565b8114611994575f5ffd5b50565b5f813590506119a581611981565b92915050565b5f602082840312156119c0576119bf61185b565b5b5f6119cd84828501611997565b91505092915050565b5f8115159050919050565b6119ea816119d6565b82525050565b5f602082019050611a035f8301846119e1565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a4b82611a09565b611a558185611a13565b9350611a65818560208601611a23565b611a6e81611a31565b840191505092915050565b5f6020820190508181035f830152611a918184611a41565b905092915050565b5f60208284031215611aae57611aad61185b565b5b5f611abb848285016118dc565b91505092915050565b5f5f5f60608486031215611adb57611ada61185b565b5b5f611ae8868287016118a9565b9350506020611af9868287016118dc565b9250506040611b0a868287016118dc565b9150509250925092565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b4e82611a31565b810181811067ffffffffffffffff82111715611b6d57611b6c611b18565b5b80604052505050565b5f611b7f611852565b9050611b8b8282611b45565b919050565b5f67ffffffffffffffff821115611baa57611ba9611b18565b5b602082029050602081019050919050565b5f5ffd5b5f611bd1611bcc84611b90565b611b76565b90508083825260208201905060208402830185811115611bf457611bf3611bbb565b5b835b81811015611c1d5780611c0988826118dc565b845260208401935050602081019050611bf6565b5050509392505050565b5f82601f830112611c3b57611c3a611b14565b5b8135611c4b848260208601611bbf565b91505092915050565b5f5ffd5b5f67ffffffffffffffff821115611c7257611c71611b18565b5b611c7b82611a31565b9050602081019050919050565b828183375f83830152505050565b5f611ca8611ca384611c58565b611b76565b905082815260208101848484011115611cc457611cc3611c54565b5b611ccf848285611c88565b509392505050565b5f82601f830112611ceb57611cea611b14565b5b8135611cfb848260208601611c96565b91505092915050565b5f5f5f5f5f60a08688031215611d1d57611d1c61185b565b5b5f611d2a888289016118a9565b9550506020611d3b888289016118a9565b945050604086013567ffffffffffffffff811115611d5c57611d5b61185f565b5b611d6888828901611c27565b935050606086013567ffffffffffffffff811115611d8957611d8861185f565b5b611d9588828901611c27565b925050608086013567ffffffffffffffff811115611db657611db561185f565b5b611dc288828901611cd7565b9150509295509295909350565b5f67ffffffffffffffff821115611de957611de8611b18565b5b602082029050602081019050919050565b5f611e0c611e0784611dcf565b611b76565b90508083825260208201905060208402830185811115611e2f57611e2e611bbb565b5b835b81811015611e585780611e4488826118a9565b845260208401935050602081019050611e31565b5050509392505050565b5f82601f830112611e7657611e75611b14565b5b8135611e86848260208601611dfa565b91505092915050565b5f5f60408385031215611ea557611ea461185b565b5b5f83013567ffffffffffffffff811115611ec257611ec161185f565b5b611ece85828601611e62565b925050602083013567ffffffffffffffff811115611eef57611eee61185f565b5b611efb85828601611c27565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611f37816118bd565b82525050565b5f611f488383611f2e565b60208301905092915050565b5f602082019050919050565b5f611f6a82611f05565b611f748185611f0f565b9350611f7f83611f1f565b805f5b83811015611faf578151611f968882611f3d565b9750611fa183611f54565b925050600181019050611f82565b5085935050505092915050565b5f6020820190508181035f830152611fd48184611f60565b905092915050565b611fe5816119d6565b8114611fef575f5ffd5b50565b5f8135905061200081611fdc565b92915050565b5f5f6040838503121561201c5761201b61185b565b5b5f612029858286016118a9565b925050602061203a85828601611ff2565b9150509250929050565b5f5f5f6060848603121561205b5761205a61185b565b5b5f612068868287016118a9565b935050602084013567ffffffffffffffff8111156120895761208861185f565b5b61209586828701611c27565b925050604084013567ffffffffffffffff8111156120b6576120b561185f565b5b6120c286828701611c27565b9150509250925092565b5f5f604083850312156120e2576120e161185b565b5b5f6120ef858286016118a9565b9250506020612100858286016118a9565b9150509250929050565b5f5f5f5f5f60a086880312156121235761212261185b565b5b5f612130888289016118a9565b9550506020612141888289016118a9565b9450506040612152888289016118dc565b9350506060612163888289016118dc565b925050608086013567ffffffffffffffff8111156121845761218361185f565b5b61219088828901611cd7565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f6121f7602a83611a13565b91506122028261219d565b604082019050919050565b5f6020820190508181035f830152612224816121eb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061226f57607f821691505b6020821081036122825761228161222b565b5b50919050565b5f81905092915050565b5f61229c82611a09565b6122a68185612288565b93506122b6818560208601611a23565b80840191505092915050565b5f6122cd8285612292565b91506122d98284612292565b91508190509392505050565b7f6964206f766572666c6f770000000000000000000000000000000000000000005f82015250565b5f612319600b83611a13565b9150612324826122e5565b602082019050919050565b5f6020820190508181035f8301526123468161230d565b9050919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f6123a7602f83611a13565b91506123b28261234d565b604082019050919050565b5f6020820190508181035f8301526123d48161239b565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f612435602883611a13565b9150612440826123db565b604082019050919050565b5f6020820190508181035f83015261246281612429565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6124c3602583611a13565b91506124ce82612469565b604082019050919050565b5f6020820190508181035f8301526124f0816124b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f61257e602a83611a13565b915061258982612524565b604082019050919050565b5f6020820190508181035f8301526125ab81612572565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e9826118bd565b91506125f4836118bd565b925082820190508082111561260c5761260b6125b2565b5b92915050565b5f6040820190508181035f83015261262a8185611f60565b9050818103602083015261263e8184611f60565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6126a1602983611a13565b91506126ac82612647565b604082019050919050565b5f6020820190508181035f8301526126ce81612695565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61272f602983611a13565b915061273a826126d5565b604082019050919050565b5f6020820190508181035f83015261275c81612723565b9050919050565b5f6040820190506127765f83018561192e565b612783602083018461192e565b9392505050565b5f612794826118bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127c6576127c56125b2565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612808826118bd565b9150612813836118bd565b925082612823576128226127d1565b5b828204905092915050565b5f612838826118bd565b9150612843836118bd565b925082820390508181111561285b5761285a6125b2565b5b92915050565b5f61286b826118bd565b9150612876836118bd565b925082612886576128856127d1565b5b828206905092915050565b7f455243313135353a206d696e7420746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128eb602183611a13565b91506128f682612891565b604082019050919050565b5f6020820190508181035f830152612918816128df565b9050919050565b61292881611882565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6129528261292e565b61295c8185612938565b935061296c818560208601611a23565b61297581611a31565b840191505092915050565b5f60a0820190506129935f83018861291f565b6129a0602083018761291f565b81810360408301526129b28186611f60565b905081810360608301526129c68185611f60565b905081810360808301526129da8184612948565b90509695505050505050565b5f815190506129f481611981565b92915050565b5f60208284031215612a0f57612a0e61185b565b5b5f612a1c848285016129e6565b91505092915050565b5f602082019050612a385f83018461291f565b92915050565b5f60a082019050612a515f83018861291f565b612a5e602083018761291f565b612a6b604083018661192e565b612a78606083018561192e565b8181036080830152612a8a8184612948565b9050969550505050505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa26469706673582212205714af1fe822619b8c9ac05e49434765f25ef1f0d876df96d5efe49a3e33b0ce64736f6c63430008220033","sourceMap":"94:908:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:227:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10786:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;500:183:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4775:1249:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1840:481;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;486:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2490:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:284:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2843:166:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3354:1010;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1495:227;1581:7;1627:1;1608:21;;:7;:21;;;1600:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1693:9;:13;1703:2;1693:13;;;;;;;;;;;:22;1707:7;1693:22;;;;;;;;;;;;;;;;1686:29;;1495:227;;;;:::o;1078:292::-;1163:4;1213:26;1198:41;;;:11;:41;;;;:109;;;;1270:37;1255:52;;;:11;:52;;;;1198:109;:165;;;;1338:25;1323:40;;;:11;:40;;;;1198:165;1179:184;;1078:292;;;:::o;443:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10786:227::-;10849:13;10874:21;10898:10;:8;:10::i;:::-;10874:34;;10949:1;10931:7;10925:21;:25;:81;;;;;;;;;;;;;;;;;10977:7;10986:13;:2;:11;:13::i;:::-;10960:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10925:81;10918:88;;;10786:227;;;:::o;500:183:89:-;154:5;614:2;:11;606:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;651:25;657:2;661;665:6;651:25;;;;;;;;;;;;:5;:25::i;:::-;500:183;;;:::o;4775:1249:90:-;4979:16;4998:10;4979:29;;5095:8;5087:16;;:4;:16;;;:52;;;;5107:32;5124:4;5130:8;5107:16;:32::i;:::-;5087:52;5066:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;5244:7;:14;5230:3;:10;:28;5222:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:1;5321:16;;:2;:16;;;5313:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5436:9;5448:1;5436:13;;5431:411;5455:3;:10;5451:1;:14;5431:411;;;5486:10;5499:3;5503:1;5499:6;;;;;;;;:::i;:::-;;;;;;;;5486:19;;5519:14;5536:7;5544:1;5536:10;;;;;;;;:::i;:::-;;;;;;;;5519:27;;5561:19;5583:9;:13;5593:2;5583:13;;;;;;;;;;;:19;5597:4;5583:19;;;;;;;;;;;;;;;;5561:41;;5639:6;5624:11;:21;;5616:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5770:6;5756:11;:20;5734:9;:13;5744:2;5734:13;;;;;;;;;;;:19;5748:4;5734:19;;;;;;;;;;;;;;;:42;;;;5825:6;5804:9;:13;5814:2;5804:13;;;;;;;;;;;:17;5818:2;5804:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5472:370;;;5467:3;;;;;5431:411;;;;5887:2;5857:47;;5881:4;5857:47;;5871:8;5857:47;;;5891:3;5896:7;5857:47;;;;;;;:::i;:::-;;;;;;;;5938:75;5974:8;5984:4;5990:2;5994:3;5999:7;6008:4;5938:35;:75::i;:::-;4969:1055;4775:1249;;;;;:::o;1840:481::-;1967:16;2026:3;:10;2007:8;:15;:29;1999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;2092:30;2139:8;:15;2125:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:63;;2170:9;2182:1;2170:13;;2165:120;2189:8;:15;2185:1;:19;2165:120;;;2244:30;2254:8;2263:1;2254:11;;;;;;;;:::i;:::-;;;;;;;;2267:3;2271:1;2267:6;;;;;;;;:::i;:::-;;;;;;;;2244:9;:30::i;:::-;2225:13;2239:1;2225:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;2206:3;;;;;2165:120;;;;2301:13;2294:20;;;1840:481;;;;:::o;486:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2490:299::-;2606:8;2592:22;;:10;:22;;;2584:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2713:8;2670:18;:30;2689:10;2670:30;;;;;;;;;;;;;;;:40;2701:8;2670:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2763:8;2736:46;;2751:10;2736:46;;;2773:8;2736:46;;;;;;:::i;:::-;;;;;;;;2490:299;;:::o;715:284:89:-;851:9;863:1;851:13;;846:105;870:3;:10;866:1;:14;846:105;;;154:5;909:3;913:1;909:6;;;;;;;;:::i;:::-;;;;;;;;:15;901:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;882:3;;;;;;;846:105;;;;960:32;971:2;975:3;980:7;960:32;;;;;;;;;;;;:10;:32::i;:::-;715:284;;;:::o;2843:166:90:-;2942:4;2965:18;:27;2984:7;2965:27;;;;;;;;;;;;;;;:37;2993:8;2965:37;;;;;;;;;;;;;;;;;;;;;;;;;2958:44;;2843:166;;;;:::o;3354:1010::-;3533:16;3552:10;3533:29;;3649:8;3641:16;;:4;:16;;;:52;;;;3661:32;3678:4;3684:8;3661:16;:32::i;:::-;3641:52;3620:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;3798:1;3784:16;;:2;:16;;;3776:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3889:19;3911:9;:13;3921:2;3911:13;;;;;;;;;;;:19;3925:4;3911:19;;;;;;;;;;;;;;;;3889:41;;3963:6;3948:11;:21;;3940:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4113:6;4099:11;:20;4077:9;:13;4087:2;4077:13;;;;;;;;;;;:19;4091:4;4077:19;;;;;;;;;;;;;;;:42;;;;4160:6;4139:9;:13;4149:2;4139:13;;;;;;;;;;;:17;4153:2;4139:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4236:2;4205:46;;4230:4;4205:46;;4220:8;4205:46;;;4240:2;4244:6;4205:46;;;;;;;:::i;:::-;;;;;;;;4285:68;4316:8;4326:4;4332:2;4336;4340:6;4348:4;4285:30;:68::i;:::-;3523:841;;3354:1010;;;;;:::o;323:147:89:-;375:13;400:63;;;;;;;;;;;;;;;;;;;323:147;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;6104:438:90:-;6265:1;6251:16;;:2;:16;;;6243:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6316:16;6335:10;6316:29;;6377:6;6356:9;:13;6366:2;6356:13;;;;;;;;;;;:17;6370:2;6356:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6435:2;6398:52;;6431:1;6398:52;;6413:8;6398:52;;;6439:2;6443:6;6398:52;;;;;;;:::i;:::-;;;;;;;;6461:74;6492:8;6510:1;6514:2;6518;6522:6;6530:4;6461:30;:74::i;:::-;6233:309;6104:438;;;;:::o;9722:949::-;9971:1;9954:2;:14;;;:18;9950:715;;;10009:2;9992:43;;;10036:8;10046:4;10052:3;10057:7;10066:4;9992:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9988:667;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:1;10351:6;:13;:18;10347:294;;10423:2;10400:26;;;;;;;;;;;:::i;:::-;;;;;;;;10347:294;10593:6;10587:13;10578:6;10574:2;10570:15;10563:38;9988:667;10162:48;;;10150:60;;;:8;:60;;;;10146:140;;10264:2;10241:26;;;;;;;;;;;:::i;:::-;;;;;;;;10146:140;10072:228;9950:715;9722:949;;;;;;:::o;6627:636::-;6813:1;6799:16;;:2;:16;;;6791:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6885:7;:14;6871:3;:10;:28;6863:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6955:16;6974:10;6955:29;;7000:9;7012:1;7000:13;;6995:101;7019:3;:10;7015:1;:14;6995:101;;;7075:7;7083:1;7075:10;;;;;;;;:::i;:::-;;;;;;;;7050:9;:17;7060:3;7064:1;7060:6;;;;;;;;:::i;:::-;;;;;;;;7050:17;;;;;;;;;;;:21;7068:2;7050:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7031:3;;;;;;;6995:101;;;;7147:2;7111:53;;7143:1;7111:53;;7125:8;7111:53;;;7151:3;7156:7;7111:53;;;;;;;:::i;:::-;;;;;;;;7175:81;7211:8;7229:1;7233:2;7237:3;7242:7;7251:4;7175:35;:81::i;:::-;6781:482;6627:636;;;;:::o;8787:882::-;9011:1;8994:2;:14;;;:18;8990:673;;;9049:2;9032:38;;;9071:8;9081:4;9087:2;9091:6;9099:4;9032:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9028:625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:1;9349:6;:13;:18;9345:294;;9421:2;9398:26;;;;;;;;;;;:::i;:::-;;;;;;;;9345:294;9591:6;9585:13;9576:6;9572:2;9568:15;9561:38;9028:625;9165:43;;;9153:55;;;:8;:55;;;;9149:135;;9262:2;9239:26;;;;;;;;;;;:::i;:::-;;;;;;;;9149:135;9105:193;8990:673;8787:882;;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:99::-;3265:6;3299:5;3293:12;3283:22;;3213:99;;;:::o;3318:169::-;3402:11;3436:6;3431:3;3424:19;3476:4;3471:3;3467:14;3452:29;;3318:169;;;;:::o;3493:139::-;3582:6;3577:3;3572;3566:23;3623:1;3614:6;3609:3;3605:16;3598:27;3493:139;;;:::o;3638:102::-;3679:6;3730:2;3726:7;3721:2;3714:5;3710:14;3706:28;3696:38;;3638:102;;;:::o;3746:377::-;3834:3;3862:39;3895:5;3862:39;:::i;:::-;3917:71;3981:6;3976:3;3917:71;:::i;:::-;3910:78;;3997:65;4055:6;4050:3;4043:4;4036:5;4032:16;3997:65;:::i;:::-;4087:29;4109:6;4087:29;:::i;:::-;4082:3;4078:39;4071:46;;3838:285;3746:377;;;;:::o;4129:313::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4329:9;4323:4;4319:20;4315:1;4304:9;4300:17;4293:47;4357:78;4430:4;4421:6;4357:78;:::i;:::-;4349:86;;4129:313;;;;:::o;4448:329::-;4507:6;4556:2;4544:9;4535:7;4531:23;4527:32;4524:119;;;4562:79;;:::i;:::-;4524:119;4682:1;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4653:117;4448:329;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:117::-;5517:1;5514;5507:12;5531:180;5579:77;5576:1;5569:88;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5717:281;5800:27;5822:4;5800:27;:::i;:::-;5792:6;5788:40;5930:6;5918:10;5915:22;5894:18;5882:10;5879:34;5876:62;5873:88;;;5941:18;;:::i;:::-;5873:88;5981:10;5977:2;5970:22;5760:238;5717:281;;:::o;6004:129::-;6038:6;6065:20;;:::i;:::-;6055:30;;6094:33;6122:4;6114:6;6094:33;:::i;:::-;6004:129;;;:::o;6139:311::-;6216:4;6306:18;6298:6;6295:30;6292:56;;;6328:18;;:::i;:::-;6292:56;6378:4;6370:6;6366:17;6358:25;;6438:4;6432;6428:15;6420:23;;6139:311;;;:::o;6456:117::-;6565:1;6562;6555:12;6596:710;6692:5;6717:81;6733:64;6790:6;6733:64;:::i;:::-;6717:81;:::i;:::-;6708:90;;6818:5;6847:6;6840:5;6833:21;6881:4;6874:5;6870:16;6863:23;;6934:4;6926:6;6922:17;6914:6;6910:30;6963:3;6955:6;6952:15;6949:122;;;6982:79;;:::i;:::-;6949:122;7097:6;7080:220;7114:6;7109:3;7106:15;7080:220;;;7189:3;7218:37;7251:3;7239:10;7218:37;:::i;:::-;7213:3;7206:50;7285:4;7280:3;7276:14;7269:21;;7156:144;7140:4;7135:3;7131:14;7124:21;;7080:220;;;7084:21;6698:608;;6596:710;;;;;:::o;7329:370::-;7400:5;7449:3;7442:4;7434:6;7430:17;7426:27;7416:122;;7457:79;;:::i;:::-;7416:122;7574:6;7561:20;7599:94;7689:3;7681:6;7674:4;7666:6;7662:17;7599:94;:::i;:::-;7590:103;;7406:293;7329:370;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:307;7889:4;7979:18;7971:6;7968:30;7965:56;;;8001:18;;:::i;:::-;7965:56;8039:29;8061:6;8039:29;:::i;:::-;8031:37;;8123:4;8117;8113:15;8105:23;;7828:307;;;:::o;8141:148::-;8239:6;8234:3;8229;8216:30;8280:1;8271:6;8266:3;8262:16;8255:27;8141:148;;;:::o;8295:423::-;8372:5;8397:65;8413:48;8454:6;8413:48;:::i;:::-;8397:65;:::i;:::-;8388:74;;8485:6;8478:5;8471:21;8523:4;8516:5;8512:16;8561:3;8552:6;8547:3;8543:16;8540:25;8537:112;;;8568:79;;:::i;:::-;8537:112;8658:54;8705:6;8700:3;8695;8658:54;:::i;:::-;8378:340;8295:423;;;;;:::o;8737:338::-;8792:5;8841:3;8834:4;8826:6;8822:17;8818:27;8808:122;;8849:79;;:::i;:::-;8808:122;8966:6;8953:20;8991:78;9065:3;9057:6;9050:4;9042:6;9038:17;8991:78;:::i;:::-;8982:87;;8798:277;8737:338;;;;:::o;9081:1509::-;9235:6;9243;9251;9259;9267;9316:3;9304:9;9295:7;9291:23;9287:33;9284:120;;;9323:79;;:::i;:::-;9284:120;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9570:2;9596:53;9641:7;9632:6;9621:9;9617:22;9596:53;:::i;:::-;9586:63;;9541:118;9726:2;9715:9;9711:18;9698:32;9757:18;9749:6;9746:30;9743:117;;;9779:79;;:::i;:::-;9743:117;9884:78;9954:7;9945:6;9934:9;9930:22;9884:78;:::i;:::-;9874:88;;9669:303;10039:2;10028:9;10024:18;10011:32;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9982:303;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10511:62;10565:7;10556:6;10545:9;10541:22;10511:62;:::i;:::-;10501:72;;10295:288;9081:1509;;;;;;;;:::o;10596:311::-;10673:4;10763:18;10755:6;10752:30;10749:56;;;10785:18;;:::i;:::-;10749:56;10835:4;10827:6;10823:17;10815:25;;10895:4;10889;10885:15;10877:23;;10596:311;;;:::o;10930:710::-;11026:5;11051:81;11067:64;11124:6;11067:64;:::i;:::-;11051:81;:::i;:::-;11042:90;;11152:5;11181:6;11174:5;11167:21;11215:4;11208:5;11204:16;11197:23;;11268:4;11260:6;11256:17;11248:6;11244:30;11297:3;11289:6;11286:15;11283:122;;;11316:79;;:::i;:::-;11283:122;11431:6;11414:220;11448:6;11443:3;11440:15;11414:220;;;11523:3;11552:37;11585:3;11573:10;11552:37;:::i;:::-;11547:3;11540:50;11619:4;11614:3;11610:14;11603:21;;11490:144;11474:4;11469:3;11465:14;11458:21;;11414:220;;;11418:21;11032:608;;10930:710;;;;;:::o;11663:370::-;11734:5;11783:3;11776:4;11768:6;11764:17;11760:27;11750:122;;11791:79;;:::i;:::-;11750:122;11908:6;11895:20;11933:94;12023:3;12015:6;12008:4;12000:6;11996:17;11933:94;:::i;:::-;11924:103;;11740:293;11663:370;;;;:::o;12039:894::-;12157:6;12165;12214:2;12202:9;12193:7;12189:23;12185:32;12182:119;;;12220:79;;:::i;:::-;12182:119;12368:1;12357:9;12353:17;12340:31;12398:18;12390:6;12387:30;12384:117;;;12420:79;;:::i;:::-;12384:117;12525:78;12595:7;12586:6;12575:9;12571:22;12525:78;:::i;:::-;12515:88;;12311:302;12680:2;12669:9;12665:18;12652:32;12711:18;12703:6;12700:30;12697:117;;;12733:79;;:::i;:::-;12697:117;12838:78;12908:7;12899:6;12888:9;12884:22;12838:78;:::i;:::-;12828:88;;12623:303;12039:894;;;;;:::o;12939:114::-;13006:6;13040:5;13034:12;13024:22;;12939:114;;;:::o;13059:184::-;13158:11;13192:6;13187:3;13180:19;13232:4;13227:3;13223:14;13208:29;;13059:184;;;;:::o;13249:132::-;13316:4;13339:3;13331:11;;13369:4;13364:3;13360:14;13352:22;;13249:132;;;:::o;13387:108::-;13464:24;13482:5;13464:24;:::i;:::-;13459:3;13452:37;13387:108;;:::o;13501:179::-;13570:10;13591:46;13633:3;13625:6;13591:46;:::i;:::-;13669:4;13664:3;13660:14;13646:28;;13501:179;;;;:::o;13686:113::-;13756:4;13788;13783:3;13779:14;13771:22;;13686:113;;;:::o;13835:732::-;13954:3;13983:54;14031:5;13983:54;:::i;:::-;14053:86;14132:6;14127:3;14053:86;:::i;:::-;14046:93;;14163:56;14213:5;14163:56;:::i;:::-;14242:7;14273:1;14258:284;14283:6;14280:1;14277:13;14258:284;;;14359:6;14353:13;14386:63;14445:3;14430:13;14386:63;:::i;:::-;14379:70;;14472:60;14525:6;14472:60;:::i;:::-;14462:70;;14318:224;14305:1;14302;14298:9;14293:14;;14258:284;;;14262:14;14558:3;14551:10;;13959:608;;;13835:732;;;;:::o;14573:373::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14573:373;;;;:::o;14952:116::-;15022:21;15037:5;15022:21;:::i;:::-;15015:5;15012:32;15002:60;;15058:1;15055;15048:12;15002:60;14952:116;:::o;15074:133::-;15117:5;15155:6;15142:20;15133:29;;15171:30;15195:5;15171:30;:::i;:::-;15074:133;;;;:::o;15213:468::-;15278:6;15286;15335:2;15323:9;15314:7;15310:23;15306:32;15303:119;;;15341:79;;:::i;:::-;15303:119;15461:1;15486:53;15531:7;15522:6;15511:9;15507:22;15486:53;:::i;:::-;15476:63;;15432:117;15588:2;15614:50;15656:7;15647:6;15636:9;15632:22;15614:50;:::i;:::-;15604:60;;15559:115;15213:468;;;;;:::o;15687:1039::-;15814:6;15822;15830;15879:2;15867:9;15858:7;15854:23;15850:32;15847:119;;;15885:79;;:::i;:::-;15847:119;16005:1;16030:53;16075:7;16066:6;16055:9;16051:22;16030:53;:::i;:::-;16020:63;;15976:117;16160:2;16149:9;16145:18;16132:32;16191:18;16183:6;16180:30;16177:117;;;16213:79;;:::i;:::-;16177:117;16318:78;16388:7;16379:6;16368:9;16364:22;16318:78;:::i;:::-;16308:88;;16103:303;16473:2;16462:9;16458:18;16445:32;16504:18;16496:6;16493:30;16490:117;;;16526:79;;:::i;:::-;16490:117;16631:78;16701:7;16692:6;16681:9;16677:22;16631:78;:::i;:::-;16621:88;;16416:303;15687:1039;;;;;:::o;16732:474::-;16800:6;16808;16857:2;16845:9;16836:7;16832:23;16828:32;16825:119;;;16863:79;;:::i;:::-;16825:119;16983:1;17008:53;17053:7;17044:6;17033:9;17029:22;17008:53;:::i;:::-;16998:63;;16954:117;17110:2;17136:53;17181:7;17172:6;17161:9;17157:22;17136:53;:::i;:::-;17126:63;;17081:118;16732:474;;;;;:::o;17212:1089::-;17316:6;17324;17332;17340;17348;17397:3;17385:9;17376:7;17372:23;17368:33;17365:120;;;17404:79;;:::i;:::-;17365:120;17524:1;17549:53;17594:7;17585:6;17574:9;17570:22;17549:53;:::i;:::-;17539:63;;17495:117;17651:2;17677:53;17722:7;17713:6;17702:9;17698:22;17677:53;:::i;:::-;17667:63;;17622:118;17779:2;17805:53;17850:7;17841:6;17830:9;17826:22;17805:53;:::i;:::-;17795:63;;17750:118;17907:2;17933:53;17978:7;17969:6;17958:9;17954:22;17933:53;:::i;:::-;17923:63;;17878:118;18063:3;18052:9;18048:19;18035:33;18095:18;18087:6;18084:30;18081:117;;;18117:79;;:::i;:::-;18081:117;18222:62;18276:7;18267:6;18256:9;18252:22;18222:62;:::i;:::-;18212:72;;18006:288;17212:1089;;;;;;;;:::o;18307:229::-;18447:34;18443:1;18435:6;18431:14;18424:58;18516:12;18511:2;18503:6;18499:15;18492:37;18307:229;:::o;18542:366::-;18684:3;18705:67;18769:2;18764:3;18705:67;:::i;:::-;18698:74;;18781:93;18870:3;18781:93;:::i;:::-;18899:2;18894:3;18890:12;18883:19;;18542:366;;;:::o;18914:419::-;19080:4;19118:2;19107:9;19103:18;19095:26;;19167:9;19161:4;19157:20;19153:1;19142:9;19138:17;19131:47;19195:131;19321:4;19195:131;:::i;:::-;19187:139;;18914:419;;;:::o;19339:180::-;19387:77;19384:1;19377:88;19484:4;19481:1;19474:15;19508:4;19505:1;19498:15;19525:320;19569:6;19606:1;19600:4;19596:12;19586:22;;19653:1;19647:4;19643:12;19674:18;19664:81;;19730:4;19722:6;19718:17;19708:27;;19664:81;19792:2;19784:6;19781:14;19761:18;19758:38;19755:84;;19811:18;;:::i;:::-;19755:84;19576:269;19525:320;;;:::o;19851:148::-;19953:11;19990:3;19975:18;;19851:148;;;;:::o;20005:390::-;20111:3;20139:39;20172:5;20139:39;:::i;:::-;20194:89;20276:6;20271:3;20194:89;:::i;:::-;20187:96;;20292:65;20350:6;20345:3;20338:4;20331:5;20327:16;20292:65;:::i;:::-;20382:6;20377:3;20373:16;20366:23;;20115:280;20005:390;;;;:::o;20401:435::-;20581:3;20603:95;20694:3;20685:6;20603:95;:::i;:::-;20596:102;;20715:95;20806:3;20797:6;20715:95;:::i;:::-;20708:102;;20827:3;20820:10;;20401:435;;;;;:::o;20842:161::-;20982:13;20978:1;20970:6;20966:14;20959:37;20842:161;:::o;21009:366::-;21151:3;21172:67;21236:2;21231:3;21172:67;:::i;:::-;21165:74;;21248:93;21337:3;21248:93;:::i;:::-;21366:2;21361:3;21357:12;21350:19;;21009:366;;;:::o;21381:419::-;21547:4;21585:2;21574:9;21570:18;21562:26;;21634:9;21628:4;21624:20;21620:1;21609:9;21605:17;21598:47;21662:131;21788:4;21662:131;:::i;:::-;21654:139;;21381:419;;;:::o;21806:234::-;21946:34;21942:1;21934:6;21930:14;21923:58;22015:17;22010:2;22002:6;21998:15;21991:42;21806:234;:::o;22046:366::-;22188:3;22209:67;22273:2;22268:3;22209:67;:::i;:::-;22202:74;;22285:93;22374:3;22285:93;:::i;:::-;22403:2;22398:3;22394:12;22387:19;;22046:366;;;:::o;22418:419::-;22584:4;22622:2;22611:9;22607:18;22599:26;;22671:9;22665:4;22661:20;22657:1;22646:9;22642:17;22635:47;22699:131;22825:4;22699:131;:::i;:::-;22691:139;;22418:419;;;:::o;22843:227::-;22983:34;22979:1;22971:6;22967:14;22960:58;23052:10;23047:2;23039:6;23035:15;23028:35;22843:227;:::o;23076:366::-;23218:3;23239:67;23303:2;23298:3;23239:67;:::i;:::-;23232:74;;23315:93;23404:3;23315:93;:::i;:::-;23433:2;23428:3;23424:12;23417:19;;23076:366;;;:::o;23448:419::-;23614:4;23652:2;23641:9;23637:18;23629:26;;23701:9;23695:4;23691:20;23687:1;23676:9;23672:17;23665:47;23729:131;23855:4;23729:131;:::i;:::-;23721:139;;23448:419;;;:::o;23873:224::-;24013:34;24009:1;24001:6;23997:14;23990:58;24082:7;24077:2;24069:6;24065:15;24058:32;23873:224;:::o;24103:366::-;24245:3;24266:67;24330:2;24325:3;24266:67;:::i;:::-;24259:74;;24342:93;24431:3;24342:93;:::i;:::-;24460:2;24455:3;24451:12;24444:19;;24103:366;;;:::o;24475:419::-;24641:4;24679:2;24668:9;24664:18;24656:26;;24728:9;24722:4;24718:20;24714:1;24703:9;24699:17;24692:47;24756:131;24882:4;24756:131;:::i;:::-;24748:139;;24475:419;;;:::o;24900:180::-;24948:77;24945:1;24938:88;25045:4;25042:1;25035:15;25069:4;25066:1;25059:15;25086:229;25226:34;25222:1;25214:6;25210:14;25203:58;25295:12;25290:2;25282:6;25278:15;25271:37;25086:229;:::o;25321:366::-;25463:3;25484:67;25548:2;25543:3;25484:67;:::i;:::-;25477:74;;25560:93;25649:3;25560:93;:::i;:::-;25678:2;25673:3;25669:12;25662:19;;25321:366;;;:::o;25693:419::-;25859:4;25897:2;25886:9;25882:18;25874:26;;25946:9;25940:4;25936:20;25932:1;25921:9;25917:17;25910:47;25974:131;26100:4;25974:131;:::i;:::-;25966:139;;25693:419;;;:::o;26118:180::-;26166:77;26163:1;26156:88;26263:4;26260:1;26253:15;26287:4;26284:1;26277:15;26304:191;26344:3;26363:20;26381:1;26363:20;:::i;:::-;26358:25;;26397:20;26415:1;26397:20;:::i;:::-;26392:25;;26440:1;26437;26433:9;26426:16;;26461:3;26458:1;26455:10;26452:36;;;26468:18;;:::i;:::-;26452:36;26304:191;;;;:::o;26501:634::-;26722:4;26760:2;26749:9;26745:18;26737:26;;26809:9;26803:4;26799:20;26795:1;26784:9;26780:17;26773:47;26837:108;26940:4;26931:6;26837:108;:::i;:::-;26829:116;;26992:9;26986:4;26982:20;26977:2;26966:9;26962:18;26955:48;27020:108;27123:4;27114:6;27020:108;:::i;:::-;27012:116;;26501:634;;;;;:::o;27141:228::-;27281:34;27277:1;27269:6;27265:14;27258:58;27350:11;27345:2;27337:6;27333:15;27326:36;27141:228;:::o;27375:366::-;27517:3;27538:67;27602:2;27597:3;27538:67;:::i;:::-;27531:74;;27614:93;27703:3;27614:93;:::i;:::-;27732:2;27727:3;27723:12;27716:19;;27375:366;;;:::o;27747:419::-;27913:4;27951:2;27940:9;27936:18;27928:26;;28000:9;27994:4;27990:20;27986:1;27975:9;27971:17;27964:47;28028:131;28154:4;28028:131;:::i;:::-;28020:139;;27747:419;;;:::o;28172:228::-;28312:34;28308:1;28300:6;28296:14;28289:58;28381:11;28376:2;28368:6;28364:15;28357:36;28172:228;:::o;28406:366::-;28548:3;28569:67;28633:2;28628:3;28569:67;:::i;:::-;28562:74;;28645:93;28734:3;28645:93;:::i;:::-;28763:2;28758:3;28754:12;28747:19;;28406:366;;;:::o;28778:419::-;28944:4;28982:2;28971:9;28967:18;28959:26;;29031:9;29025:4;29021:20;29017:1;29006:9;29002:17;28995:47;29059:131;29185:4;29059:131;:::i;:::-;29051:139;;28778:419;;;:::o;29203:332::-;29324:4;29362:2;29351:9;29347:18;29339:26;;29375:71;29443:1;29432:9;29428:17;29419:6;29375:71;:::i;:::-;29456:72;29524:2;29513:9;29509:18;29500:6;29456:72;:::i;:::-;29203:332;;;;;:::o;29541:233::-;29580:3;29603:24;29621:5;29603:24;:::i;:::-;29594:33;;29649:66;29642:5;29639:77;29636:103;;29719:18;;:::i;:::-;29636:103;29766:1;29759:5;29755:13;29748:20;;29541:233;;;:::o;29780:180::-;29828:77;29825:1;29818:88;29925:4;29922:1;29915:15;29949:4;29946:1;29939:15;29966:185;30006:1;30023:20;30041:1;30023:20;:::i;:::-;30018:25;;30057:20;30075:1;30057:20;:::i;:::-;30052:25;;30096:1;30086:35;;30101:18;;:::i;:::-;30086:35;30143:1;30140;30136:9;30131:14;;29966:185;;;;:::o;30157:194::-;30197:4;30217:20;30235:1;30217:20;:::i;:::-;30212:25;;30251:20;30269:1;30251:20;:::i;:::-;30246:25;;30295:1;30292;30288:9;30280:17;;30319:1;30313:4;30310:11;30307:37;;;30324:18;;:::i;:::-;30307:37;30157:194;;;;:::o;30357:176::-;30389:1;30406:20;30424:1;30406:20;:::i;:::-;30401:25;;30440:20;30458:1;30440:20;:::i;:::-;30435:25;;30479:1;30469:35;;30484:18;;:::i;:::-;30469:35;30525:1;30522;30518:9;30513:14;;30357:176;;;;:::o;30539:220::-;30679:34;30675:1;30667:6;30663:14;30656:58;30748:3;30743:2;30735:6;30731:15;30724:28;30539:220;:::o;30765:366::-;30907:3;30928:67;30992:2;30987:3;30928:67;:::i;:::-;30921:74;;31004:93;31093:3;31004:93;:::i;:::-;31122:2;31117:3;31113:12;31106:19;;30765:366;;;:::o;31137:419::-;31303:4;31341:2;31330:9;31326:18;31318:26;;31390:9;31384:4;31380:20;31376:1;31365:9;31361:17;31354:47;31418:131;31544:4;31418:131;:::i;:::-;31410:139;;31137:419;;;:::o;31562:118::-;31649:24;31667:5;31649:24;:::i;:::-;31644:3;31637:37;31562:118;;:::o;31686:98::-;31737:6;31771:5;31765:12;31755:22;;31686:98;;;:::o;31790:168::-;31873:11;31907:6;31902:3;31895:19;31947:4;31942:3;31938:14;31923:29;;31790:168;;;;:::o;31964:373::-;32050:3;32078:38;32110:5;32078:38;:::i;:::-;32132:70;32195:6;32190:3;32132:70;:::i;:::-;32125:77;;32211:65;32269:6;32264:3;32257:4;32250:5;32246:16;32211:65;:::i;:::-;32301:29;32323:6;32301:29;:::i;:::-;32296:3;32292:39;32285:46;;32054:283;31964:373;;;;:::o;32343:1053::-;32666:4;32704:3;32693:9;32689:19;32681:27;;32718:71;32786:1;32775:9;32771:17;32762:6;32718:71;:::i;:::-;32799:72;32867:2;32856:9;32852:18;32843:6;32799:72;:::i;:::-;32918:9;32912:4;32908:20;32903:2;32892:9;32888:18;32881:48;32946:108;33049:4;33040:6;32946:108;:::i;:::-;32938:116;;33101:9;33095:4;33091:20;33086:2;33075:9;33071:18;33064:48;33129:108;33232:4;33223:6;33129:108;:::i;:::-;33121:116;;33285:9;33279:4;33275:20;33269:3;33258:9;33254:19;33247:49;33313:76;33384:4;33375:6;33313:76;:::i;:::-;33305:84;;32343:1053;;;;;;;;:::o;33402:141::-;33458:5;33489:6;33483:13;33474:22;;33505:32;33531:5;33505:32;:::i;:::-;33402:141;;;;:::o;33549:349::-;33618:6;33667:2;33655:9;33646:7;33642:23;33638:32;33635:119;;;33673:79;;:::i;:::-;33635:119;33793:1;33818:63;33873:7;33864:6;33853:9;33849:22;33818:63;:::i;:::-;33808:73;;33764:127;33549:349;;;;:::o;33904:222::-;33997:4;34035:2;34024:9;34020:18;34012:26;;34048:71;34116:1;34105:9;34101:17;34092:6;34048:71;:::i;:::-;33904:222;;;;:::o;34132:751::-;34355:4;34393:3;34382:9;34378:19;34370:27;;34407:71;34475:1;34464:9;34460:17;34451:6;34407:71;:::i;:::-;34488:72;34556:2;34545:9;34541:18;34532:6;34488:72;:::i;:::-;34570;34638:2;34627:9;34623:18;34614:6;34570:72;:::i;:::-;34652;34720:2;34709:9;34705:18;34696:6;34652:72;:::i;:::-;34772:9;34766:4;34762:20;34756:3;34745:9;34741:19;34734:49;34800:76;34871:4;34862:6;34800:76;:::i;:::-;34792:84;;34132:751;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,uint256)":"156e29f6","mintBatch(address,uint256[],uint256[])":"d81d0a15","name()":"06fdde03","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2 \\u5b9e\\u73b0IERC1155\\u7684balanceOf\\uff0c\\u8fd4\\u56deaccount\\u5730\\u5740\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u6301\\u4ed3\\u91cf\\u3002\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2 \\u8981\\u6c42: - `accounts` \\u548c `ids` \\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49.\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u67e5\\u8be2\\u6279\\u91cf\\u6388\\u6743.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amounts`\\u6570\\u7ec4\\u5355\\u4f4d\\u7684`ids`\\u6570\\u7ec4\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155BatchReceived. - ids\\u548camounts\\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d\\u7684`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155Received.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u8c03\\u7528\\u8005\\u6388\\u6743operator\\u4f7f\\u7528\\u5176\\u6240\\u6709\\u4ee3\\u5e01 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6 \\u6761\\u4ef6\\uff1amsg.sender != operator\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56deERC1155\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684uri\\uff0c\\u5b58\\u50a8metadata\\uff0c\\u7c7b\\u4f3cERC721\\u7684tokenURI.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/BAYC1155.sol\":\"BAYC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/40_ERC1155/BAYC1155.sol\":{\"keccak256\":\"0xbb65e40faea65ec9ebb5f42756a8525b387f9114a93c98e224037d9cb16e52a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9301e79217fc18f0862ddcdc037395aedb57014a09a06b4f8e75803c8655b9e\",\"dweb:/ipfs/QmPaoTzUYaipS81k7fuLHJ9h3nnPeUeurEGBfz2cP4bexX\"]},\"src/40_ERC1155/ERC1155.sol\":{\"keccak256\":\"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a\",\"dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"mintBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询 实现IERC1155的balanceOf,返回account地址的id种类代币持仓量。"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询 要求: - `accounts` 和 `ids` 数组长度相等."},"isApprovedForAll(address,address)":{"details":"查询批量授权."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账,将`amounts`数组单位的`ids`数组种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155BatchReceived. - ids和amounts数组长度相等"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位的`id`种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155Received."},"setApprovalForAll(address,bool)":{"details":"批量授权,调用者授权operator使用其所有代币 释放{ApprovalForAll}事件 条件:msg.sender != operator"},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"uri(uint256)":{"details":"返回ERC1155的id种类代币的uri,存储metadata,类似ERC721的tokenURI."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/BAYC1155.sol":"BAYC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/40_ERC1155/BAYC1155.sol":{"keccak256":"0xbb65e40faea65ec9ebb5f42756a8525b387f9114a93c98e224037d9cb16e52a4","urls":["bzz-raw://b9301e79217fc18f0862ddcdc037395aedb57014a09a06b4f8e75803c8655b9e","dweb:/ipfs/QmPaoTzUYaipS81k7fuLHJ9h3nnPeUeurEGBfz2cP4bexX"],"license":"MIT"},"src/40_ERC1155/ERC1155.sol":{"keccak256":"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c","urls":["bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a","dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file diff --git a/out/BadRandomness.sol/Attack.json b/out/BadRandomness.sol/Attack.json index f6b8ff97..4249bf51 100644 --- a/out/BadRandomness.sol/Attack.json +++ b/out/BadRandomness.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"attackMint","inputs":[{"name":"nftAddr","type":"address","internalType":"contract BadRandomness"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061032c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063432344b51461002d575b5f5ffd5b61004760048036038101906100429190610169565b610049565b005b5f606460014361005991906101ca565b404260405160200161006c929190610246565b604051602081830303815290604052805190602001205f1c61008e919061029e565b90508173ffffffffffffffffffffffffffffffffffffffff16638726d836826040518263ffffffff1660e01b81526004016100c991906102dd565b5f604051808303815f87803b1580156100e0575f5ffd5b505af11580156100f2573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b5f6101388261011d565b9050919050565b6101488161012e565b8114610152575f5ffd5b50565b5f813590506101638161013f565b92915050565b5f6020828403121561017e5761017d6100fa565b5b5f61018b84828501610155565b91505092915050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101d482610194565b91506101df83610194565b92508282039050818111156101f7576101f661019d565b5b92915050565b5f819050919050565b5f819050919050565b61022061021b826101fd565b610206565b82525050565b5f819050919050565b61024061023b82610194565b610226565b82525050565b5f610251828561020f565b602082019150610261828461022f565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6102a882610194565b91506102b383610194565b9250826102c3576102c2610271565b5b828206905092915050565b6102d781610194565b82525050565b5f6020820190506102f05f8301846102ce565b9291505056fea26469706673582212205d3c621e6daad24985f48805065ceadb943d31ada951fc15a0718e1c208c962164736f6c63430008220033","sourceMap":"689:335:133:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063432344b51461002d575b5f5ffd5b61004760048036038101906100429190610169565b610049565b005b5f606460014361005991906101ca565b404260405160200161006c929190610246565b604051602081830303815290604052805190602001205f1c61008e919061029e565b90508173ffffffffffffffffffffffffffffffffffffffff16638726d836826040518263ffffffff1660e01b81526004016100c991906102dd565b5f604051808303815f87803b1580156100e0575f5ffd5b505af11580156100f2573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b5f6101388261011d565b9050919050565b6101488161012e565b8114610152575f5ffd5b50565b5f813590506101638161013f565b92915050565b5f6020828403121561017e5761017d6100fa565b5b5f61018b84828501610155565b91505092915050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101d482610194565b91506101df83610194565b92508282039050818111156101f7576101f661019d565b5b92915050565b5f819050919050565b5f819050919050565b61022061021b826101fd565b610206565b82525050565b5f819050919050565b61024061023b82610194565b610226565b82525050565b5f610251828561020f565b602082019150610261828461022f565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6102a882610194565b91506102b383610194565b9250826102c3576102c2610271565b5b828206905092915050565b6102d781610194565b82525050565b5f6020820190506102f05f8301846102ce565b9291505056fea26469706673582212205d3c621e6daad24985f48805065ceadb943d31ada951fc15a0718e1c208c962164736f6c63430008220033","sourceMap":"689:335:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;806:19;935:3;901:1;886:12;:16;;;;:::i;:::-;876:27;905:15;859:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;849:73;;;;;;828:104;;:110;;;;:::i;:::-;806:132;;985:7;:17;;;1003:11;985:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:259;711:311;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:185::-;936:5;974:6;961:20;952:29;;990:56;1040:5;990:56;:::i;:::-;867:185;;;;:::o;1058:375::-;1140:6;1189:2;1177:9;1168:7;1164:23;1160:32;1157:119;;;1195:79;;:::i;:::-;1157:119;1315:1;1340:76;1408:7;1399:6;1388:9;1384:22;1340:76;:::i;:::-;1330:86;;1286:140;1058:375;;;;:::o;1439:77::-;1476:7;1505:5;1494:16;;1439:77;;;:::o;1522:180::-;1570:77;1567:1;1560:88;1667:4;1664:1;1657:15;1691:4;1688:1;1681:15;1708:194;1748:4;1768:20;1786:1;1768:20;:::i;:::-;1763:25;;1802:20;1820:1;1802:20;:::i;:::-;1797:25;;1846:1;1843;1839:9;1831:17;;1870:1;1864:4;1861:11;1858:37;;;1875:18;;:::i;:::-;1858:37;1708:194;;;;:::o;1908:77::-;1945:7;1974:5;1963:16;;1908:77;;;:::o;1991:79::-;2030:7;2059:5;2048:16;;1991:79;;;:::o;2076:157::-;2181:45;2201:24;2219:5;2201:24;:::i;:::-;2181:45;:::i;:::-;2176:3;2169:58;2076:157;;:::o;2239:79::-;2278:7;2307:5;2296:16;;2239:79;;;:::o;2324:157::-;2429:45;2449:24;2467:5;2449:24;:::i;:::-;2429:45;:::i;:::-;2424:3;2417:58;2324:157;;:::o;2487:397::-;2627:3;2642:75;2713:3;2704:6;2642:75;:::i;:::-;2742:2;2737:3;2733:12;2726:19;;2755:75;2826:3;2817:6;2755:75;:::i;:::-;2855:2;2850:3;2846:12;2839:19;;2875:3;2868:10;;2487:397;;;;;:::o;2890:180::-;2938:77;2935:1;2928:88;3035:4;3032:1;3025:15;3059:4;3056:1;3049:15;3076:176;3108:1;3125:20;3143:1;3125:20;:::i;:::-;3120:25;;3159:20;3177:1;3159:20;:::i;:::-;3154:25;;3198:1;3188:35;;3203:18;;:::i;:::-;3188:35;3244:1;3241;3237:9;3232:14;;3076:176;;;;:::o;3258:118::-;3345:24;3363:5;3345:24;:::i;:::-;3340:3;3333:37;3258:118;;:::o;3382:222::-;3475:4;3513:2;3502:9;3498:18;3490:26;;3526:71;3594:1;3583:9;3579:17;3570:6;3526:71;:::i;:::-;3382:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attackMint(address)":"432344b5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract BadRandomness\",\"name\":\"nftAddr\",\"type\":\"address\"}],\"name\":\"attackMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S07_BadRandomness/BadRandomness.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/S07_BadRandomness/BadRandomness.sol\":{\"keccak256\":\"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac\",\"dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract BadRandomness","name":"nftAddr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attackMint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S07_BadRandomness/BadRandomness.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/S07_BadRandomness/BadRandomness.sol":{"keccak256":"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b","urls":["bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac","dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file +{"abi":[{"type":"function","name":"attackMint","inputs":[{"name":"nftAddr","type":"address","internalType":"contract BadRandomness"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061032c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063432344b51461002d575b5f5ffd5b61004760048036038101906100429190610169565b610049565b005b5f606460014361005991906101ca565b404260405160200161006c929190610246565b604051602081830303815290604052805190602001205f1c61008e919061029e565b90508173ffffffffffffffffffffffffffffffffffffffff16638726d836826040518263ffffffff1660e01b81526004016100c991906102dd565b5f604051808303815f87803b1580156100e0575f5ffd5b505af11580156100f2573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b5f6101388261011d565b9050919050565b6101488161012e565b8114610152575f5ffd5b50565b5f813590506101638161013f565b92915050565b5f6020828403121561017e5761017d6100fa565b5b5f61018b84828501610155565b91505092915050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101d482610194565b91506101df83610194565b92508282039050818111156101f7576101f661019d565b5b92915050565b5f819050919050565b5f819050919050565b61022061021b826101fd565b610206565b82525050565b5f819050919050565b61024061023b82610194565b610226565b82525050565b5f610251828561020f565b602082019150610261828461022f565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6102a882610194565b91506102b383610194565b9250826102c3576102c2610271565b5b828206905092915050565b6102d781610194565b82525050565b5f6020820190506102f05f8301846102ce565b9291505056fea26469706673582212205d3c621e6daad24985f48805065ceadb943d31ada951fc15a0718e1c208c962164736f6c63430008220033","sourceMap":"689:335:127:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063432344b51461002d575b5f5ffd5b61004760048036038101906100429190610169565b610049565b005b5f606460014361005991906101ca565b404260405160200161006c929190610246565b604051602081830303815290604052805190602001205f1c61008e919061029e565b90508173ffffffffffffffffffffffffffffffffffffffff16638726d836826040518263ffffffff1660e01b81526004016100c991906102dd565b5f604051808303815f87803b1580156100e0575f5ffd5b505af11580156100f2573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b5f6101388261011d565b9050919050565b6101488161012e565b8114610152575f5ffd5b50565b5f813590506101638161013f565b92915050565b5f6020828403121561017e5761017d6100fa565b5b5f61018b84828501610155565b91505092915050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101d482610194565b91506101df83610194565b92508282039050818111156101f7576101f661019d565b5b92915050565b5f819050919050565b5f819050919050565b61022061021b826101fd565b610206565b82525050565b5f819050919050565b61024061023b82610194565b610226565b82525050565b5f610251828561020f565b602082019150610261828461022f565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6102a882610194565b91506102b383610194565b9250826102c3576102c2610271565b5b828206905092915050565b6102d781610194565b82525050565b5f6020820190506102f05f8301846102ce565b9291505056fea26469706673582212205d3c621e6daad24985f48805065ceadb943d31ada951fc15a0718e1c208c962164736f6c63430008220033","sourceMap":"689:335:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;806:19;935:3;901:1;886:12;:16;;;;:::i;:::-;876:27;905:15;859:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;849:73;;;;;;828:104;;:110;;;;:::i;:::-;806:132;;985:7;:17;;;1003:11;985:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:259;711:311;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:185::-;936:5;974:6;961:20;952:29;;990:56;1040:5;990:56;:::i;:::-;867:185;;;;:::o;1058:375::-;1140:6;1189:2;1177:9;1168:7;1164:23;1160:32;1157:119;;;1195:79;;:::i;:::-;1157:119;1315:1;1340:76;1408:7;1399:6;1388:9;1384:22;1340:76;:::i;:::-;1330:86;;1286:140;1058:375;;;;:::o;1439:77::-;1476:7;1505:5;1494:16;;1439:77;;;:::o;1522:180::-;1570:77;1567:1;1560:88;1667:4;1664:1;1657:15;1691:4;1688:1;1681:15;1708:194;1748:4;1768:20;1786:1;1768:20;:::i;:::-;1763:25;;1802:20;1820:1;1802:20;:::i;:::-;1797:25;;1846:1;1843;1839:9;1831:17;;1870:1;1864:4;1861:11;1858:37;;;1875:18;;:::i;:::-;1858:37;1708:194;;;;:::o;1908:77::-;1945:7;1974:5;1963:16;;1908:77;;;:::o;1991:79::-;2030:7;2059:5;2048:16;;1991:79;;;:::o;2076:157::-;2181:45;2201:24;2219:5;2201:24;:::i;:::-;2181:45;:::i;:::-;2176:3;2169:58;2076:157;;:::o;2239:79::-;2278:7;2307:5;2296:16;;2239:79;;;:::o;2324:157::-;2429:45;2449:24;2467:5;2449:24;:::i;:::-;2429:45;:::i;:::-;2424:3;2417:58;2324:157;;:::o;2487:397::-;2627:3;2642:75;2713:3;2704:6;2642:75;:::i;:::-;2742:2;2737:3;2733:12;2726:19;;2755:75;2826:3;2817:6;2755:75;:::i;:::-;2855:2;2850:3;2846:12;2839:19;;2875:3;2868:10;;2487:397;;;;;:::o;2890:180::-;2938:77;2935:1;2928:88;3035:4;3032:1;3025:15;3059:4;3056:1;3049:15;3076:176;3108:1;3125:20;3143:1;3125:20;:::i;:::-;3120:25;;3159:20;3177:1;3159:20;:::i;:::-;3154:25;;3198:1;3188:35;;3203:18;;:::i;:::-;3188:35;3244:1;3241;3237:9;3232:14;;3076:176;;;;:::o;3258:118::-;3345:24;3363:5;3345:24;:::i;:::-;3340:3;3333:37;3258:118;;:::o;3382:222::-;3475:4;3513:2;3502:9;3498:18;3490:26;;3526:71;3594:1;3583:9;3579:17;3570:6;3526:71;:::i;:::-;3382:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attackMint(address)":"432344b5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract BadRandomness\",\"name\":\"nftAddr\",\"type\":\"address\"}],\"name\":\"attackMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S07_BadRandomness/BadRandomness.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/S07_BadRandomness/BadRandomness.sol\":{\"keccak256\":\"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac\",\"dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract BadRandomness","name":"nftAddr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attackMint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S07_BadRandomness/BadRandomness.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/S07_BadRandomness/BadRandomness.sol":{"keccak256":"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b","urls":["bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac","dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file diff --git a/out/BadRandomness.sol/BadRandomness.json b/out/BadRandomness.sol/BadRandomness.json index be00a240..0278b975 100644 --- a/out/BadRandomness.sol/BadRandomness.json +++ b/out/BadRandomness.sol/BadRandomness.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"luckyMint","inputs":[{"name":"luckyNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b61237b8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063a22cb46511610064578063a22cb46514610258578063b88d4fde14610274578063c87b56dd14610290578063e985e9c5146102c0576100e8565b806370a08231146101ee5780638726d8361461021e57806395d89b411461023a576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611697565b6102f0565b60405161011391906116dc565b60405180910390f35b610124610429565b6040516101319190611765565b60405180910390f35b610154600480360381019061014f91906117b8565b6104b4565b6040516101619190611822565b60405180910390f35b610184600480360381019061017f9190611865565b61058b565b005b6101a0600480360381019061019b91906118a3565b6106c9565b005b6101bc60048036038101906101b791906118a3565b610731565b005b6101d860048036038101906101d391906117b8565b610750565b6040516101e59190611822565b60405180910390f35b610208600480360381019061020391906118f3565b6107f7565b604051610215919061192d565b60405180910390f35b610238600480360381019061023391906117b8565b6108ab565b005b61024261095b565b60405161024f9190611765565b60405180910390f35b610272600480360381019061026d9190611970565b6109e7565b005b61028e60048036038101906102899190611ada565b610adf565b005b6102aa60048036038101906102a591906117b8565b610b49565b6040516102b79190611765565b60405180910390f35b6102da60048036038101906102d59190611b5a565b610c43565b6040516102e791906116dc565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061042257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461043590611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611bc5565b80156104ac5780601f10610483576101008083540402835291602001916104ac565b820191905f5260205f20905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a90611c3f565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067a575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090611ca7565b60405180910390fd5b6106c4818484610cd1565b505050565b5f6106d382610750565b90506106e0813384610d80565b61071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690611d0f565b60405180910390fd5b61072b81858585610eab565b50505050565b61074b83838360405180602001604052805f815250610adf565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990611c3f565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90611d77565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60646001436108bb9190611dc2565b40426040516020016108ce929190611e3e565b604051602081830303815290604052805190602001205f1c6108f09190611e96565b9050818114610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90611f10565b60405180910390fd5b610940336006546110ea565b60065f81548092919061095290611f2e565b91905055505050565b6001805461096890611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461099490611bc5565b80156109df5780601f106109b6576101008083540402835291602001916109df565b820191905f5260205f20905b8154815290600101906020018083116109c257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad391906116dc565b60405180910390a35050565b5f610ae983610750565b9050610af6813385610d80565b610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611d0f565b60405180910390fd5b610b4281868686866112f8565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611fbf565b60405180910390fd5b5f610bf2611317565b90505f815111610c105760405180602001604052805f815250610c3b565b80610c1a8461132d565b604051602001610c2b929190612017565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e1657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610ea2575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090612084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906120ec565b60405180910390fd5b610f92845f83610cd1565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fdf9190611dc2565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611033919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906121ef565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611243919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61130485858585610eab565b61131084848484611486565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611373576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611481565b5f8290505f5b5f82146113a257808061138b90611f2e565b915050600a8261139b919061220d565b9150611379565b5f8167ffffffffffffffff8111156113bd576113bc6119b6565b5b6040519080825280601f01601f1916602001820160405280156113ef5781602001600182028036833780820191505090505b5090505b5f851461147a576001826114079190611dc2565b9150600a856114169190611e96565b6030611422919061210a565b60f81b8183815181106114385761143761223d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611473919061220d565b94506113f3565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561162b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114e494939291906122bc565b6020604051808303815f875af192505050801561151f57506040513d601f19601f8201168201806040525081019061151c919061231a565b60015b6115a0573d805f811461154d576040519150601f19603f3d011682016040523d82523d5f602084013e611552565b606091505b505f81510361159857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161158f9190611822565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461162957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116209190611822565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167681611642565b8114611680575f5ffd5b50565b5f813590506116918161166d565b92915050565b5f602082840312156116ac576116ab61163a565b5b5f6116b984828501611683565b91505092915050565b5f8115159050919050565b6116d6816116c2565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611737826116f5565b61174181856116ff565b935061175181856020860161170f565b61175a8161171d565b840191505092915050565b5f6020820190508181035f83015261177d818461172d565b905092915050565b5f819050919050565b61179781611785565b81146117a1575f5ffd5b50565b5f813590506117b28161178e565b92915050565b5f602082840312156117cd576117cc61163a565b5b5f6117da848285016117a4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61180c826117e3565b9050919050565b61181c81611802565b82525050565b5f6020820190506118355f830184611813565b92915050565b61184481611802565b811461184e575f5ffd5b50565b5f8135905061185f8161183b565b92915050565b5f5f6040838503121561187b5761187a61163a565b5b5f61188885828601611851565b9250506020611899858286016117a4565b9150509250929050565b5f5f5f606084860312156118ba576118b961163a565b5b5f6118c786828701611851565b93505060206118d886828701611851565b92505060406118e9868287016117a4565b9150509250925092565b5f602082840312156119085761190761163a565b5b5f61191584828501611851565b91505092915050565b61192781611785565b82525050565b5f6020820190506119405f83018461191e565b92915050565b61194f816116c2565b8114611959575f5ffd5b50565b5f8135905061196a81611946565b92915050565b5f5f604083850312156119865761198561163a565b5b5f61199385828601611851565b92505060206119a48582860161195c565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119ec8261171d565b810181811067ffffffffffffffff82111715611a0b57611a0a6119b6565b5b80604052505050565b5f611a1d611631565b9050611a2982826119e3565b919050565b5f67ffffffffffffffff821115611a4857611a476119b6565b5b611a518261171d565b9050602081019050919050565b828183375f83830152505050565b5f611a7e611a7984611a2e565b611a14565b905082815260208101848484011115611a9a57611a996119b2565b5b611aa5848285611a5e565b509392505050565b5f82601f830112611ac157611ac06119ae565b5b8135611ad1848260208601611a6c565b91505092915050565b5f5f5f5f60808587031215611af257611af161163a565b5b5f611aff87828801611851565b9450506020611b1087828801611851565b9350506040611b21878288016117a4565b925050606085013567ffffffffffffffff811115611b4257611b4161163e565b5b611b4e87828801611aad565b91505092959194509250565b5f5f60408385031215611b7057611b6f61163a565b5b5f611b7d85828601611851565b9250506020611b8e85828601611851565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bdc57607f821691505b602082108103611bef57611bee611b98565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c296013836116ff565b9150611c3482611bf5565b602082019050919050565b5f6020820190508181035f830152611c5681611c1d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c91601e836116ff565b9150611c9c82611c5d565b602082019050919050565b5f6020820190508181035f830152611cbe81611c85565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611cf96016836116ff565b9150611d0482611cc5565b602082019050919050565b5f6020820190508181035f830152611d2681611ced565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611d616014836116ff565b9150611d6c82611d2d565b602082019050919050565b5f6020820190508181035f830152611d8e81611d55565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcc82611785565b9150611dd783611785565b9250828203905081811115611def57611dee611d95565b5b92915050565b5f819050919050565b5f819050919050565b611e18611e1382611df5565b611dfe565b82525050565b5f819050919050565b611e38611e3382611785565b611e1e565b82525050565b5f611e498285611e07565b602082019150611e598284611e27565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ea082611785565b9150611eab83611785565b925082611ebb57611eba611e69565b5b828206905092915050565b7f426574746572206c75636b206e6578742074696d6521000000000000000000005f82015250565b5f611efa6016836116ff565b9150611f0582611ec6565b602082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b5f611f3882611785565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f6a57611f69611d95565b5b600182019050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611fa9600f836116ff565b9150611fb482611f75565b602082019050919050565b5f6020820190508181035f830152611fd681611f9d565b9050919050565b5f81905092915050565b5f611ff1826116f5565b611ffb8185611fdd565b935061200b81856020860161170f565b80840191505092915050565b5f6120228285611fe7565b915061202e8284611fe7565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61206e6009836116ff565b91506120798261203a565b602082019050919050565b5f6020820190508181035f83015261209b81612062565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6120d6601c836116ff565b91506120e1826120a2565b602082019050919050565b5f6020820190508181035f830152612103816120ca565b9050919050565b5f61211482611785565b915061211f83611785565b925082820190508082111561213757612136611d95565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6121716014836116ff565b915061217c8261213d565b602082019050919050565b5f6020820190508181035f83015261219e81612165565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6121d96014836116ff565b91506121e4826121a5565b602082019050919050565b5f6020820190508181035f830152612206816121cd565b9050919050565b5f61221782611785565b915061222283611785565b92508261223257612231611e69565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61228e8261226a565b6122988185612274565b93506122a881856020860161170f565b6122b18161171d565b840191505092915050565b5f6080820190506122cf5f830187611813565b6122dc6020830186611813565b6122e9604083018561191e565b81810360608301526122fb8184612284565b905095945050505050565b5f815190506123148161166d565b92915050565b5f6020828403121561232f5761232e61163a565b5b5f61233c84828501612306565b9150509291505056fea26469706673582212204ee57169177569317ee293e2eb2de4abc759c7966bed29841356474632f52afd64736f6c63430008220033","sourceMap":"103:584:133:-:0;;;227:30;;;;;;;;;;1005:111:84;;;;;;;;;;;;;;;;;;;;;;;;1078:5;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;103:584:133;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;103:584:133:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063a22cb46511610064578063a22cb46514610258578063b88d4fde14610274578063c87b56dd14610290578063e985e9c5146102c0576100e8565b806370a08231146101ee5780638726d8361461021e57806395d89b411461023a576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611697565b6102f0565b60405161011391906116dc565b60405180910390f35b610124610429565b6040516101319190611765565b60405180910390f35b610154600480360381019061014f91906117b8565b6104b4565b6040516101619190611822565b60405180910390f35b610184600480360381019061017f9190611865565b61058b565b005b6101a0600480360381019061019b91906118a3565b6106c9565b005b6101bc60048036038101906101b791906118a3565b610731565b005b6101d860048036038101906101d391906117b8565b610750565b6040516101e59190611822565b60405180910390f35b610208600480360381019061020391906118f3565b6107f7565b604051610215919061192d565b60405180910390f35b610238600480360381019061023391906117b8565b6108ab565b005b61024261095b565b60405161024f9190611765565b60405180910390f35b610272600480360381019061026d9190611970565b6109e7565b005b61028e60048036038101906102899190611ada565b610adf565b005b6102aa60048036038101906102a591906117b8565b610b49565b6040516102b79190611765565b60405180910390f35b6102da60048036038101906102d59190611b5a565b610c43565b6040516102e791906116dc565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061042257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461043590611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611bc5565b80156104ac5780601f10610483576101008083540402835291602001916104ac565b820191905f5260205f20905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a90611c3f565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067a575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090611ca7565b60405180910390fd5b6106c4818484610cd1565b505050565b5f6106d382610750565b90506106e0813384610d80565b61071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690611d0f565b60405180910390fd5b61072b81858585610eab565b50505050565b61074b83838360405180602001604052805f815250610adf565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990611c3f565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90611d77565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60646001436108bb9190611dc2565b40426040516020016108ce929190611e3e565b604051602081830303815290604052805190602001205f1c6108f09190611e96565b9050818114610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90611f10565b60405180910390fd5b610940336006546110ea565b60065f81548092919061095290611f2e565b91905055505050565b6001805461096890611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461099490611bc5565b80156109df5780601f106109b6576101008083540402835291602001916109df565b820191905f5260205f20905b8154815290600101906020018083116109c257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad391906116dc565b60405180910390a35050565b5f610ae983610750565b9050610af6813385610d80565b610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611d0f565b60405180910390fd5b610b4281868686866112f8565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611fbf565b60405180910390fd5b5f610bf2611317565b90505f815111610c105760405180602001604052805f815250610c3b565b80610c1a8461132d565b604051602001610c2b929190612017565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e1657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610ea2575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090612084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906120ec565b60405180910390fd5b610f92845f83610cd1565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fdf9190611dc2565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611033919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906121ef565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611243919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61130485858585610eab565b61131084848484611486565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611373576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611481565b5f8290505f5b5f82146113a257808061138b90611f2e565b915050600a8261139b919061220d565b9150611379565b5f8167ffffffffffffffff8111156113bd576113bc6119b6565b5b6040519080825280601f01601f1916602001820160405280156113ef5781602001600182028036833780820191505090505b5090505b5f851461147a576001826114079190611dc2565b9150600a856114169190611e96565b6030611422919061210a565b60f81b8183815181106114385761143761223d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611473919061220d565b94506113f3565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561162b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114e494939291906122bc565b6020604051808303815f875af192505050801561151f57506040513d601f19601f8201168201806040525081019061151c919061231a565b60015b6115a0573d805f811461154d576040519150601f19603f3d011682016040523d82523d5f602084013e611552565b606091505b505f81510361159857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161158f9190611822565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461162957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116209190611822565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167681611642565b8114611680575f5ffd5b50565b5f813590506116918161166d565b92915050565b5f602082840312156116ac576116ab61163a565b5b5f6116b984828501611683565b91505092915050565b5f8115159050919050565b6116d6816116c2565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611737826116f5565b61174181856116ff565b935061175181856020860161170f565b61175a8161171d565b840191505092915050565b5f6020820190508181035f83015261177d818461172d565b905092915050565b5f819050919050565b61179781611785565b81146117a1575f5ffd5b50565b5f813590506117b28161178e565b92915050565b5f602082840312156117cd576117cc61163a565b5b5f6117da848285016117a4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61180c826117e3565b9050919050565b61181c81611802565b82525050565b5f6020820190506118355f830184611813565b92915050565b61184481611802565b811461184e575f5ffd5b50565b5f8135905061185f8161183b565b92915050565b5f5f6040838503121561187b5761187a61163a565b5b5f61188885828601611851565b9250506020611899858286016117a4565b9150509250929050565b5f5f5f606084860312156118ba576118b961163a565b5b5f6118c786828701611851565b93505060206118d886828701611851565b92505060406118e9868287016117a4565b9150509250925092565b5f602082840312156119085761190761163a565b5b5f61191584828501611851565b91505092915050565b61192781611785565b82525050565b5f6020820190506119405f83018461191e565b92915050565b61194f816116c2565b8114611959575f5ffd5b50565b5f8135905061196a81611946565b92915050565b5f5f604083850312156119865761198561163a565b5b5f61199385828601611851565b92505060206119a48582860161195c565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119ec8261171d565b810181811067ffffffffffffffff82111715611a0b57611a0a6119b6565b5b80604052505050565b5f611a1d611631565b9050611a2982826119e3565b919050565b5f67ffffffffffffffff821115611a4857611a476119b6565b5b611a518261171d565b9050602081019050919050565b828183375f83830152505050565b5f611a7e611a7984611a2e565b611a14565b905082815260208101848484011115611a9a57611a996119b2565b5b611aa5848285611a5e565b509392505050565b5f82601f830112611ac157611ac06119ae565b5b8135611ad1848260208601611a6c565b91505092915050565b5f5f5f5f60808587031215611af257611af161163a565b5b5f611aff87828801611851565b9450506020611b1087828801611851565b9350506040611b21878288016117a4565b925050606085013567ffffffffffffffff811115611b4257611b4161163e565b5b611b4e87828801611aad565b91505092959194509250565b5f5f60408385031215611b7057611b6f61163a565b5b5f611b7d85828601611851565b9250506020611b8e85828601611851565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bdc57607f821691505b602082108103611bef57611bee611b98565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c296013836116ff565b9150611c3482611bf5565b602082019050919050565b5f6020820190508181035f830152611c5681611c1d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c91601e836116ff565b9150611c9c82611c5d565b602082019050919050565b5f6020820190508181035f830152611cbe81611c85565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611cf96016836116ff565b9150611d0482611cc5565b602082019050919050565b5f6020820190508181035f830152611d2681611ced565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611d616014836116ff565b9150611d6c82611d2d565b602082019050919050565b5f6020820190508181035f830152611d8e81611d55565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcc82611785565b9150611dd783611785565b9250828203905081811115611def57611dee611d95565b5b92915050565b5f819050919050565b5f819050919050565b611e18611e1382611df5565b611dfe565b82525050565b5f819050919050565b611e38611e3382611785565b611e1e565b82525050565b5f611e498285611e07565b602082019150611e598284611e27565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ea082611785565b9150611eab83611785565b925082611ebb57611eba611e69565b5b828206905092915050565b7f426574746572206c75636b206e6578742074696d6521000000000000000000005f82015250565b5f611efa6016836116ff565b9150611f0582611ec6565b602082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b5f611f3882611785565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f6a57611f69611d95565b5b600182019050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611fa9600f836116ff565b9150611fb482611f75565b602082019050919050565b5f6020820190508181035f830152611fd681611f9d565b9050919050565b5f81905092915050565b5f611ff1826116f5565b611ffb8185611fdd565b935061200b81856020860161170f565b80840191505092915050565b5f6120228285611fe7565b915061202e8284611fe7565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61206e6009836116ff565b91506120798261203a565b602082019050919050565b5f6020820190508181035f83015261209b81612062565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6120d6601c836116ff565b91506120e1826120a2565b602082019050919050565b5f6020820190508181035f830152612103816120ca565b9050919050565b5f61211482611785565b915061211f83611785565b925082820190508082111561213757612136611d95565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6121716014836116ff565b915061217c8261213d565b602082019050919050565b5f6020820190508181035f83015261219e81612165565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6121d96014836116ff565b91506121e4826121a5565b602082019050919050565b5f6020820190508181035f830152612206816121cd565b9050919050565b5f61221782611785565b915061222283611785565b92508261223257612231611e69565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61228e8261226a565b6122988185612274565b93506122a881856020860161170f565b6122b18161171d565b840191505092915050565b5f6080820190506122cf5f830187611813565b6122dc6020830186611813565b6122e9604083018561191e565b81810360608301526122fb8184612284565b905095945050505050565b5f815190506123148161166d565b92915050565b5f6020828403121561232f5761232e61163a565b5b5f61233c84828501612306565b9150509291505056fea26469706673582212204ee57169177569317ee293e2eb2de4abc759c7966bed29841356474632f52afd64736f6c63430008220033","sourceMap":"103:584:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;339:346:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;380:29:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;339:346:133:-;398:20;506:3;481:1;466:12;:16;;;;:::i;:::-;456:27;485:15;439:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;429:73;;;;;;421:82;;:88;;;;:::i;:::-;398:111;;568:11;552:12;:27;544:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;617:30;623:10;635:11;;617:5;:30::i;:::-;665:11;;:13;;;;;;;;;:::i;:::-;;;;;;388:297;339:346;:::o;380:29:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:180::-;14829:77;14826:1;14819:88;14926:4;14923:1;14916:15;14950:4;14947:1;14940:15;14967:194;15007:4;15027:20;15045:1;15027:20;:::i;:::-;15022:25;;15061:20;15079:1;15061:20;:::i;:::-;15056:25;;15105:1;15102;15098:9;15090:17;;15129:1;15123:4;15120:11;15117:37;;;15134:18;;:::i;:::-;15117:37;14967:194;;;;:::o;15167:77::-;15204:7;15233:5;15222:16;;15167:77;;;:::o;15250:79::-;15289:7;15318:5;15307:16;;15250:79;;;:::o;15335:157::-;15440:45;15460:24;15478:5;15460:24;:::i;:::-;15440:45;:::i;:::-;15435:3;15428:58;15335:157;;:::o;15498:79::-;15537:7;15566:5;15555:16;;15498:79;;;:::o;15583:157::-;15688:45;15708:24;15726:5;15708:24;:::i;:::-;15688:45;:::i;:::-;15683:3;15676:58;15583:157;;:::o;15746:397::-;15886:3;15901:75;15972:3;15963:6;15901:75;:::i;:::-;16001:2;15996:3;15992:12;15985:19;;16014:75;16085:3;16076:6;16014:75;:::i;:::-;16114:2;16109:3;16105:12;16098:19;;16134:3;16127:10;;15746:397;;;;;:::o;16149:180::-;16197:77;16194:1;16187:88;16294:4;16291:1;16284:15;16318:4;16315:1;16308:15;16335:176;16367:1;16384:20;16402:1;16384:20;:::i;:::-;16379:25;;16418:20;16436:1;16418:20;:::i;:::-;16413:25;;16457:1;16447:35;;16462:18;;:::i;:::-;16447:35;16503:1;16500;16496:9;16491:14;;16335:176;;;;:::o;16517:172::-;16657:24;16653:1;16645:6;16641:14;16634:48;16517:172;:::o;16695:366::-;16837:3;16858:67;16922:2;16917:3;16858:67;:::i;:::-;16851:74;;16934:93;17023:3;16934:93;:::i;:::-;17052:2;17047:3;17043:12;17036:19;;16695:366;;;:::o;17067:419::-;17233:4;17271:2;17260:9;17256:18;17248:26;;17320:9;17314:4;17310:20;17306:1;17295:9;17291:17;17284:47;17348:131;17474:4;17348:131;:::i;:::-;17340:139;;17067:419;;;:::o;17492:233::-;17531:3;17554:24;17572:5;17554:24;:::i;:::-;17545:33;;17600:66;17593:5;17590:77;17587:103;;17670:18;;:::i;:::-;17587:103;17717:1;17710:5;17706:13;17699:20;;17492:233;;;:::o;17731:165::-;17871:17;17867:1;17859:6;17855:14;17848:41;17731:165;:::o;17902:366::-;18044:3;18065:67;18129:2;18124:3;18065:67;:::i;:::-;18058:74;;18141:93;18230:3;18141:93;:::i;:::-;18259:2;18254:3;18250:12;18243:19;;17902:366;;;:::o;18274:419::-;18440:4;18478:2;18467:9;18463:18;18455:26;;18527:9;18521:4;18517:20;18513:1;18502:9;18498:17;18491:47;18555:131;18681:4;18555:131;:::i;:::-;18547:139;;18274:419;;;:::o;18699:148::-;18801:11;18838:3;18823:18;;18699:148;;;;:::o;18853:390::-;18959:3;18987:39;19020:5;18987:39;:::i;:::-;19042:89;19124:6;19119:3;19042:89;:::i;:::-;19035:96;;19140:65;19198:6;19193:3;19186:4;19179:5;19175:16;19140:65;:::i;:::-;19230:6;19225:3;19221:16;19214:23;;18963:280;18853:390;;;;:::o;19249:435::-;19429:3;19451:95;19542:3;19533:6;19451:95;:::i;:::-;19444:102;;19563:95;19654:3;19645:6;19563:95;:::i;:::-;19556:102;;19675:3;19668:10;;19249:435;;;;;:::o;19690:159::-;19830:11;19826:1;19818:6;19814:14;19807:35;19690:159;:::o;19855:365::-;19997:3;20018:66;20082:1;20077:3;20018:66;:::i;:::-;20011:73;;20093:93;20182:3;20093:93;:::i;:::-;20211:2;20206:3;20202:12;20195:19;;19855:365;;;:::o;20226:419::-;20392:4;20430:2;20419:9;20415:18;20407:26;;20479:9;20473:4;20469:20;20465:1;20454:9;20450:17;20443:47;20507:131;20633:4;20507:131;:::i;:::-;20499:139;;20226:419;;;:::o;20651:178::-;20791:30;20787:1;20779:6;20775:14;20768:54;20651:178;:::o;20835:366::-;20977:3;20998:67;21062:2;21057:3;20998:67;:::i;:::-;20991:74;;21074:93;21163:3;21074:93;:::i;:::-;21192:2;21187:3;21183:12;21176:19;;20835:366;;;:::o;21207:419::-;21373:4;21411:2;21400:9;21396:18;21388:26;;21460:9;21454:4;21450:20;21446:1;21435:9;21431:17;21424:47;21488:131;21614:4;21488:131;:::i;:::-;21480:139;;21207:419;;;:::o;21632:191::-;21672:3;21691:20;21709:1;21691:20;:::i;:::-;21686:25;;21725:20;21743:1;21725:20;:::i;:::-;21720:25;;21768:1;21765;21761:9;21754:16;;21789:3;21786:1;21783:10;21780:36;;;21796:18;;:::i;:::-;21780:36;21632:191;;;;:::o;21829:170::-;21969:22;21965:1;21957:6;21953:14;21946:46;21829:170;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:170::-;22942:22;22938:1;22930:6;22926:14;22919:46;22802:170;:::o;22978:366::-;23120:3;23141:67;23205:2;23200:3;23141:67;:::i;:::-;23134:74;;23217:93;23306:3;23217:93;:::i;:::-;23335:2;23330:3;23326:12;23319:19;;22978:366;;;:::o;23350:419::-;23516:4;23554:2;23543:9;23539:18;23531:26;;23603:9;23597:4;23593:20;23589:1;23578:9;23574:17;23567:47;23631:131;23757:4;23631:131;:::i;:::-;23623:139;;23350:419;;;:::o;23775:185::-;23815:1;23832:20;23850:1;23832:20;:::i;:::-;23827:25;;23866:20;23884:1;23866:20;:::i;:::-;23861:25;;23905:1;23895:35;;23910:18;;:::i;:::-;23895:35;23952:1;23949;23945:9;23940:14;;23775:185;;;;:::o;23966:180::-;24014:77;24011:1;24004:88;24111:4;24108:1;24101:15;24135:4;24132:1;24125:15;24152:98;24203:6;24237:5;24231:12;24221:22;;24152:98;;;:::o;24256:168::-;24339:11;24373:6;24368:3;24361:19;24413:4;24408:3;24404:14;24389:29;;24256:168;;;;:::o;24430:373::-;24516:3;24544:38;24576:5;24544:38;:::i;:::-;24598:70;24661:6;24656:3;24598:70;:::i;:::-;24591:77;;24677:65;24735:6;24730:3;24723:4;24716:5;24712:16;24677:65;:::i;:::-;24767:29;24789:6;24767:29;:::i;:::-;24762:3;24758:39;24751:46;;24520:283;24430:373;;;;:::o;24809:640::-;25004:4;25042:3;25031:9;25027:19;25019:27;;25056:71;25124:1;25113:9;25109:17;25100:6;25056:71;:::i;:::-;25137:72;25205:2;25194:9;25190:18;25181:6;25137:72;:::i;:::-;25219;25287:2;25276:9;25272:18;25263:6;25219:72;:::i;:::-;25338:9;25332:4;25328:20;25323:2;25312:9;25308:18;25301:48;25366:76;25437:4;25428:6;25366:76;:::i;:::-;25358:84;;24809:640;;;;;;;:::o;25455:141::-;25511:5;25542:6;25536:13;25527:22;;25558:32;25584:5;25558:32;:::i;:::-;25455:141;;;;:::o;25602:349::-;25671:6;25720:2;25708:9;25699:7;25695:23;25691:32;25688:119;;;25726:79;;:::i;:::-;25688:119;25846:1;25871:63;25926:7;25917:6;25906:9;25902:22;25871:63;:::i;:::-;25861:73;;25817:127;25602:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","luckyMint(uint256)":"8726d836","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"luckyNumber\",\"type\":\"uint256\"}],\"name\":\"luckyMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S07_BadRandomness/BadRandomness.sol\":\"BadRandomness\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/S07_BadRandomness/BadRandomness.sol\":{\"keccak256\":\"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac\",\"dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"luckyNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"luckyMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S07_BadRandomness/BadRandomness.sol":"BadRandomness"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/S07_BadRandomness/BadRandomness.sol":{"keccak256":"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b","urls":["bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac","dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"luckyMint","inputs":[{"name":"luckyNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b61237b8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063a22cb46511610064578063a22cb46514610258578063b88d4fde14610274578063c87b56dd14610290578063e985e9c5146102c0576100e8565b806370a08231146101ee5780638726d8361461021e57806395d89b411461023a576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611697565b6102f0565b60405161011391906116dc565b60405180910390f35b610124610429565b6040516101319190611765565b60405180910390f35b610154600480360381019061014f91906117b8565b6104b4565b6040516101619190611822565b60405180910390f35b610184600480360381019061017f9190611865565b61058b565b005b6101a0600480360381019061019b91906118a3565b6106c9565b005b6101bc60048036038101906101b791906118a3565b610731565b005b6101d860048036038101906101d391906117b8565b610750565b6040516101e59190611822565b60405180910390f35b610208600480360381019061020391906118f3565b6107f7565b604051610215919061192d565b60405180910390f35b610238600480360381019061023391906117b8565b6108ab565b005b61024261095b565b60405161024f9190611765565b60405180910390f35b610272600480360381019061026d9190611970565b6109e7565b005b61028e60048036038101906102899190611ada565b610adf565b005b6102aa60048036038101906102a591906117b8565b610b49565b6040516102b79190611765565b60405180910390f35b6102da60048036038101906102d59190611b5a565b610c43565b6040516102e791906116dc565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061042257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461043590611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611bc5565b80156104ac5780601f10610483576101008083540402835291602001916104ac565b820191905f5260205f20905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a90611c3f565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067a575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090611ca7565b60405180910390fd5b6106c4818484610cd1565b505050565b5f6106d382610750565b90506106e0813384610d80565b61071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690611d0f565b60405180910390fd5b61072b81858585610eab565b50505050565b61074b83838360405180602001604052805f815250610adf565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990611c3f565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90611d77565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60646001436108bb9190611dc2565b40426040516020016108ce929190611e3e565b604051602081830303815290604052805190602001205f1c6108f09190611e96565b9050818114610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90611f10565b60405180910390fd5b610940336006546110ea565b60065f81548092919061095290611f2e565b91905055505050565b6001805461096890611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461099490611bc5565b80156109df5780601f106109b6576101008083540402835291602001916109df565b820191905f5260205f20905b8154815290600101906020018083116109c257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad391906116dc565b60405180910390a35050565b5f610ae983610750565b9050610af6813385610d80565b610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611d0f565b60405180910390fd5b610b4281868686866112f8565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611fbf565b60405180910390fd5b5f610bf2611317565b90505f815111610c105760405180602001604052805f815250610c3b565b80610c1a8461132d565b604051602001610c2b929190612017565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e1657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610ea2575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090612084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906120ec565b60405180910390fd5b610f92845f83610cd1565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fdf9190611dc2565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611033919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906121ef565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611243919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61130485858585610eab565b61131084848484611486565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611373576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611481565b5f8290505f5b5f82146113a257808061138b90611f2e565b915050600a8261139b919061220d565b9150611379565b5f8167ffffffffffffffff8111156113bd576113bc6119b6565b5b6040519080825280601f01601f1916602001820160405280156113ef5781602001600182028036833780820191505090505b5090505b5f851461147a576001826114079190611dc2565b9150600a856114169190611e96565b6030611422919061210a565b60f81b8183815181106114385761143761223d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611473919061220d565b94506113f3565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561162b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114e494939291906122bc565b6020604051808303815f875af192505050801561151f57506040513d601f19601f8201168201806040525081019061151c919061231a565b60015b6115a0573d805f811461154d576040519150601f19603f3d011682016040523d82523d5f602084013e611552565b606091505b505f81510361159857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161158f9190611822565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461162957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116209190611822565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167681611642565b8114611680575f5ffd5b50565b5f813590506116918161166d565b92915050565b5f602082840312156116ac576116ab61163a565b5b5f6116b984828501611683565b91505092915050565b5f8115159050919050565b6116d6816116c2565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611737826116f5565b61174181856116ff565b935061175181856020860161170f565b61175a8161171d565b840191505092915050565b5f6020820190508181035f83015261177d818461172d565b905092915050565b5f819050919050565b61179781611785565b81146117a1575f5ffd5b50565b5f813590506117b28161178e565b92915050565b5f602082840312156117cd576117cc61163a565b5b5f6117da848285016117a4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61180c826117e3565b9050919050565b61181c81611802565b82525050565b5f6020820190506118355f830184611813565b92915050565b61184481611802565b811461184e575f5ffd5b50565b5f8135905061185f8161183b565b92915050565b5f5f6040838503121561187b5761187a61163a565b5b5f61188885828601611851565b9250506020611899858286016117a4565b9150509250929050565b5f5f5f606084860312156118ba576118b961163a565b5b5f6118c786828701611851565b93505060206118d886828701611851565b92505060406118e9868287016117a4565b9150509250925092565b5f602082840312156119085761190761163a565b5b5f61191584828501611851565b91505092915050565b61192781611785565b82525050565b5f6020820190506119405f83018461191e565b92915050565b61194f816116c2565b8114611959575f5ffd5b50565b5f8135905061196a81611946565b92915050565b5f5f604083850312156119865761198561163a565b5b5f61199385828601611851565b92505060206119a48582860161195c565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119ec8261171d565b810181811067ffffffffffffffff82111715611a0b57611a0a6119b6565b5b80604052505050565b5f611a1d611631565b9050611a2982826119e3565b919050565b5f67ffffffffffffffff821115611a4857611a476119b6565b5b611a518261171d565b9050602081019050919050565b828183375f83830152505050565b5f611a7e611a7984611a2e565b611a14565b905082815260208101848484011115611a9a57611a996119b2565b5b611aa5848285611a5e565b509392505050565b5f82601f830112611ac157611ac06119ae565b5b8135611ad1848260208601611a6c565b91505092915050565b5f5f5f5f60808587031215611af257611af161163a565b5b5f611aff87828801611851565b9450506020611b1087828801611851565b9350506040611b21878288016117a4565b925050606085013567ffffffffffffffff811115611b4257611b4161163e565b5b611b4e87828801611aad565b91505092959194509250565b5f5f60408385031215611b7057611b6f61163a565b5b5f611b7d85828601611851565b9250506020611b8e85828601611851565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bdc57607f821691505b602082108103611bef57611bee611b98565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c296013836116ff565b9150611c3482611bf5565b602082019050919050565b5f6020820190508181035f830152611c5681611c1d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c91601e836116ff565b9150611c9c82611c5d565b602082019050919050565b5f6020820190508181035f830152611cbe81611c85565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611cf96016836116ff565b9150611d0482611cc5565b602082019050919050565b5f6020820190508181035f830152611d2681611ced565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611d616014836116ff565b9150611d6c82611d2d565b602082019050919050565b5f6020820190508181035f830152611d8e81611d55565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcc82611785565b9150611dd783611785565b9250828203905081811115611def57611dee611d95565b5b92915050565b5f819050919050565b5f819050919050565b611e18611e1382611df5565b611dfe565b82525050565b5f819050919050565b611e38611e3382611785565b611e1e565b82525050565b5f611e498285611e07565b602082019150611e598284611e27565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ea082611785565b9150611eab83611785565b925082611ebb57611eba611e69565b5b828206905092915050565b7f426574746572206c75636b206e6578742074696d6521000000000000000000005f82015250565b5f611efa6016836116ff565b9150611f0582611ec6565b602082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b5f611f3882611785565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f6a57611f69611d95565b5b600182019050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611fa9600f836116ff565b9150611fb482611f75565b602082019050919050565b5f6020820190508181035f830152611fd681611f9d565b9050919050565b5f81905092915050565b5f611ff1826116f5565b611ffb8185611fdd565b935061200b81856020860161170f565b80840191505092915050565b5f6120228285611fe7565b915061202e8284611fe7565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61206e6009836116ff565b91506120798261203a565b602082019050919050565b5f6020820190508181035f83015261209b81612062565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6120d6601c836116ff565b91506120e1826120a2565b602082019050919050565b5f6020820190508181035f830152612103816120ca565b9050919050565b5f61211482611785565b915061211f83611785565b925082820190508082111561213757612136611d95565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6121716014836116ff565b915061217c8261213d565b602082019050919050565b5f6020820190508181035f83015261219e81612165565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6121d96014836116ff565b91506121e4826121a5565b602082019050919050565b5f6020820190508181035f830152612206816121cd565b9050919050565b5f61221782611785565b915061222283611785565b92508261223257612231611e69565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61228e8261226a565b6122988185612274565b93506122a881856020860161170f565b6122b18161171d565b840191505092915050565b5f6080820190506122cf5f830187611813565b6122dc6020830186611813565b6122e9604083018561191e565b81810360608301526122fb8184612284565b905095945050505050565b5f815190506123148161166d565b92915050565b5f6020828403121561232f5761232e61163a565b5b5f61233c84828501612306565b9150509291505056fea26469706673582212204ee57169177569317ee293e2eb2de4abc759c7966bed29841356474632f52afd64736f6c63430008220033","sourceMap":"103:584:127:-:0;;;227:30;;;;;;;;;;1005:111:78;;;;;;;;;;;;;;;;;;;;;;;;1078:5;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;103:584:127;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;103:584:127:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063a22cb46511610064578063a22cb46514610258578063b88d4fde14610274578063c87b56dd14610290578063e985e9c5146102c0576100e8565b806370a08231146101ee5780638726d8361461021e57806395d89b411461023a576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611697565b6102f0565b60405161011391906116dc565b60405180910390f35b610124610429565b6040516101319190611765565b60405180910390f35b610154600480360381019061014f91906117b8565b6104b4565b6040516101619190611822565b60405180910390f35b610184600480360381019061017f9190611865565b61058b565b005b6101a0600480360381019061019b91906118a3565b6106c9565b005b6101bc60048036038101906101b791906118a3565b610731565b005b6101d860048036038101906101d391906117b8565b610750565b6040516101e59190611822565b60405180910390f35b610208600480360381019061020391906118f3565b6107f7565b604051610215919061192d565b60405180910390f35b610238600480360381019061023391906117b8565b6108ab565b005b61024261095b565b60405161024f9190611765565b60405180910390f35b610272600480360381019061026d9190611970565b6109e7565b005b61028e60048036038101906102899190611ada565b610adf565b005b6102aa60048036038101906102a591906117b8565b610b49565b6040516102b79190611765565b60405180910390f35b6102da60048036038101906102d59190611b5a565b610c43565b6040516102e791906116dc565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061042257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461043590611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461046190611bc5565b80156104ac5780601f10610483576101008083540402835291602001916104ac565b820191905f5260205f20905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054a90611c3f565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067a575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090611ca7565b60405180910390fd5b6106c4818484610cd1565b505050565b5f6106d382610750565b90506106e0813384610d80565b61071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690611d0f565b60405180910390fd5b61072b81858585610eab565b50505050565b61074b83838360405180602001604052805f815250610adf565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990611c3f565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90611d77565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60646001436108bb9190611dc2565b40426040516020016108ce929190611e3e565b604051602081830303815290604052805190602001205f1c6108f09190611e96565b9050818114610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90611f10565b60405180910390fd5b610940336006546110ea565b60065f81548092919061095290611f2e565b91905055505050565b6001805461096890611bc5565b80601f016020809104026020016040519081016040528092919081815260200182805461099490611bc5565b80156109df5780601f106109b6576101008083540402835291602001916109df565b820191905f5260205f20905b8154815290600101906020018083116109c257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad391906116dc565b60405180910390a35050565b5f610ae983610750565b9050610af6813385610d80565b610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611d0f565b60405180910390fd5b610b4281868686866112f8565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be090611fbf565b60405180910390fd5b5f610bf2611317565b90505f815111610c105760405180602001604052805f815250610c3b565b80610c1a8461132d565b604051602001610c2b929190612017565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e1657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610ea2575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090612084565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e906120ec565b60405180910390fd5b610f92845f83610cd1565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fdf9190611dc2565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611033919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906121ef565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611243919061210a565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61130485858585610eab565b61131084848484611486565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611373576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611481565b5f8290505f5b5f82146113a257808061138b90611f2e565b915050600a8261139b919061220d565b9150611379565b5f8167ffffffffffffffff8111156113bd576113bc6119b6565b5b6040519080825280601f01601f1916602001820160405280156113ef5781602001600182028036833780820191505090505b5090505b5f851461147a576001826114079190611dc2565b9150600a856114169190611e96565b6030611422919061210a565b60f81b8183815181106114385761143761223d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611473919061220d565b94506113f3565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561162b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114e494939291906122bc565b6020604051808303815f875af192505050801561151f57506040513d601f19601f8201168201806040525081019061151c919061231a565b60015b6115a0573d805f811461154d576040519150601f19603f3d011682016040523d82523d5f602084013e611552565b606091505b505f81510361159857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161158f9190611822565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461162957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116209190611822565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61167681611642565b8114611680575f5ffd5b50565b5f813590506116918161166d565b92915050565b5f602082840312156116ac576116ab61163a565b5b5f6116b984828501611683565b91505092915050565b5f8115159050919050565b6116d6816116c2565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611737826116f5565b61174181856116ff565b935061175181856020860161170f565b61175a8161171d565b840191505092915050565b5f6020820190508181035f83015261177d818461172d565b905092915050565b5f819050919050565b61179781611785565b81146117a1575f5ffd5b50565b5f813590506117b28161178e565b92915050565b5f602082840312156117cd576117cc61163a565b5b5f6117da848285016117a4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61180c826117e3565b9050919050565b61181c81611802565b82525050565b5f6020820190506118355f830184611813565b92915050565b61184481611802565b811461184e575f5ffd5b50565b5f8135905061185f8161183b565b92915050565b5f5f6040838503121561187b5761187a61163a565b5b5f61188885828601611851565b9250506020611899858286016117a4565b9150509250929050565b5f5f5f606084860312156118ba576118b961163a565b5b5f6118c786828701611851565b93505060206118d886828701611851565b92505060406118e9868287016117a4565b9150509250925092565b5f602082840312156119085761190761163a565b5b5f61191584828501611851565b91505092915050565b61192781611785565b82525050565b5f6020820190506119405f83018461191e565b92915050565b61194f816116c2565b8114611959575f5ffd5b50565b5f8135905061196a81611946565b92915050565b5f5f604083850312156119865761198561163a565b5b5f61199385828601611851565b92505060206119a48582860161195c565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119ec8261171d565b810181811067ffffffffffffffff82111715611a0b57611a0a6119b6565b5b80604052505050565b5f611a1d611631565b9050611a2982826119e3565b919050565b5f67ffffffffffffffff821115611a4857611a476119b6565b5b611a518261171d565b9050602081019050919050565b828183375f83830152505050565b5f611a7e611a7984611a2e565b611a14565b905082815260208101848484011115611a9a57611a996119b2565b5b611aa5848285611a5e565b509392505050565b5f82601f830112611ac157611ac06119ae565b5b8135611ad1848260208601611a6c565b91505092915050565b5f5f5f5f60808587031215611af257611af161163a565b5b5f611aff87828801611851565b9450506020611b1087828801611851565b9350506040611b21878288016117a4565b925050606085013567ffffffffffffffff811115611b4257611b4161163e565b5b611b4e87828801611aad565b91505092959194509250565b5f5f60408385031215611b7057611b6f61163a565b5b5f611b7d85828601611851565b9250506020611b8e85828601611851565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bdc57607f821691505b602082108103611bef57611bee611b98565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c296013836116ff565b9150611c3482611bf5565b602082019050919050565b5f6020820190508181035f830152611c5681611c1d565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c91601e836116ff565b9150611c9c82611c5d565b602082019050919050565b5f6020820190508181035f830152611cbe81611c85565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611cf96016836116ff565b9150611d0482611cc5565b602082019050919050565b5f6020820190508181035f830152611d2681611ced565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611d616014836116ff565b9150611d6c82611d2d565b602082019050919050565b5f6020820190508181035f830152611d8e81611d55565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcc82611785565b9150611dd783611785565b9250828203905081811115611def57611dee611d95565b5b92915050565b5f819050919050565b5f819050919050565b611e18611e1382611df5565b611dfe565b82525050565b5f819050919050565b611e38611e3382611785565b611e1e565b82525050565b5f611e498285611e07565b602082019150611e598284611e27565b6020820191508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ea082611785565b9150611eab83611785565b925082611ebb57611eba611e69565b5b828206905092915050565b7f426574746572206c75636b206e6578742074696d6521000000000000000000005f82015250565b5f611efa6016836116ff565b9150611f0582611ec6565b602082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b5f611f3882611785565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611f6a57611f69611d95565b5b600182019050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611fa9600f836116ff565b9150611fb482611f75565b602082019050919050565b5f6020820190508181035f830152611fd681611f9d565b9050919050565b5f81905092915050565b5f611ff1826116f5565b611ffb8185611fdd565b935061200b81856020860161170f565b80840191505092915050565b5f6120228285611fe7565b915061202e8284611fe7565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61206e6009836116ff565b91506120798261203a565b602082019050919050565b5f6020820190508181035f83015261209b81612062565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6120d6601c836116ff565b91506120e1826120a2565b602082019050919050565b5f6020820190508181035f830152612103816120ca565b9050919050565b5f61211482611785565b915061211f83611785565b925082820190508082111561213757612136611d95565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6121716014836116ff565b915061217c8261213d565b602082019050919050565b5f6020820190508181035f83015261219e81612165565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6121d96014836116ff565b91506121e4826121a5565b602082019050919050565b5f6020820190508181035f830152612206816121cd565b9050919050565b5f61221782611785565b915061222283611785565b92508261223257612231611e69565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61228e8261226a565b6122988185612274565b93506122a881856020860161170f565b6122b18161171d565b840191505092915050565b5f6080820190506122cf5f830187611813565b6122dc6020830186611813565b6122e9604083018561191e565b81810360608301526122fb8184612284565b905095945050505050565b5f815190506123148161166d565b92915050565b5f6020828403121561232f5761232e61163a565b5b5f61233c84828501612306565b9150509291505056fea26469706673582212204ee57169177569317ee293e2eb2de4abc759c7966bed29841356474632f52afd64736f6c63430008220033","sourceMap":"103:584:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;339:346:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;380:29:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;339:346:127:-;398:20;506:3;481:1;466:12;:16;;;;:::i;:::-;456:27;485:15;439:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;429:73;;;;;;421:82;;:88;;;;:::i;:::-;398:111;;568:11;552:12;:27;544:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;617:30;623:10;635:11;;617:5;:30::i;:::-;665:11;;:13;;;;;;;;;:::i;:::-;;;;;;388:297;339:346;:::o;380:29:78:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:180::-;14829:77;14826:1;14819:88;14926:4;14923:1;14916:15;14950:4;14947:1;14940:15;14967:194;15007:4;15027:20;15045:1;15027:20;:::i;:::-;15022:25;;15061:20;15079:1;15061:20;:::i;:::-;15056:25;;15105:1;15102;15098:9;15090:17;;15129:1;15123:4;15120:11;15117:37;;;15134:18;;:::i;:::-;15117:37;14967:194;;;;:::o;15167:77::-;15204:7;15233:5;15222:16;;15167:77;;;:::o;15250:79::-;15289:7;15318:5;15307:16;;15250:79;;;:::o;15335:157::-;15440:45;15460:24;15478:5;15460:24;:::i;:::-;15440:45;:::i;:::-;15435:3;15428:58;15335:157;;:::o;15498:79::-;15537:7;15566:5;15555:16;;15498:79;;;:::o;15583:157::-;15688:45;15708:24;15726:5;15708:24;:::i;:::-;15688:45;:::i;:::-;15683:3;15676:58;15583:157;;:::o;15746:397::-;15886:3;15901:75;15972:3;15963:6;15901:75;:::i;:::-;16001:2;15996:3;15992:12;15985:19;;16014:75;16085:3;16076:6;16014:75;:::i;:::-;16114:2;16109:3;16105:12;16098:19;;16134:3;16127:10;;15746:397;;;;;:::o;16149:180::-;16197:77;16194:1;16187:88;16294:4;16291:1;16284:15;16318:4;16315:1;16308:15;16335:176;16367:1;16384:20;16402:1;16384:20;:::i;:::-;16379:25;;16418:20;16436:1;16418:20;:::i;:::-;16413:25;;16457:1;16447:35;;16462:18;;:::i;:::-;16447:35;16503:1;16500;16496:9;16491:14;;16335:176;;;;:::o;16517:172::-;16657:24;16653:1;16645:6;16641:14;16634:48;16517:172;:::o;16695:366::-;16837:3;16858:67;16922:2;16917:3;16858:67;:::i;:::-;16851:74;;16934:93;17023:3;16934:93;:::i;:::-;17052:2;17047:3;17043:12;17036:19;;16695:366;;;:::o;17067:419::-;17233:4;17271:2;17260:9;17256:18;17248:26;;17320:9;17314:4;17310:20;17306:1;17295:9;17291:17;17284:47;17348:131;17474:4;17348:131;:::i;:::-;17340:139;;17067:419;;;:::o;17492:233::-;17531:3;17554:24;17572:5;17554:24;:::i;:::-;17545:33;;17600:66;17593:5;17590:77;17587:103;;17670:18;;:::i;:::-;17587:103;17717:1;17710:5;17706:13;17699:20;;17492:233;;;:::o;17731:165::-;17871:17;17867:1;17859:6;17855:14;17848:41;17731:165;:::o;17902:366::-;18044:3;18065:67;18129:2;18124:3;18065:67;:::i;:::-;18058:74;;18141:93;18230:3;18141:93;:::i;:::-;18259:2;18254:3;18250:12;18243:19;;17902:366;;;:::o;18274:419::-;18440:4;18478:2;18467:9;18463:18;18455:26;;18527:9;18521:4;18517:20;18513:1;18502:9;18498:17;18491:47;18555:131;18681:4;18555:131;:::i;:::-;18547:139;;18274:419;;;:::o;18699:148::-;18801:11;18838:3;18823:18;;18699:148;;;;:::o;18853:390::-;18959:3;18987:39;19020:5;18987:39;:::i;:::-;19042:89;19124:6;19119:3;19042:89;:::i;:::-;19035:96;;19140:65;19198:6;19193:3;19186:4;19179:5;19175:16;19140:65;:::i;:::-;19230:6;19225:3;19221:16;19214:23;;18963:280;18853:390;;;;:::o;19249:435::-;19429:3;19451:95;19542:3;19533:6;19451:95;:::i;:::-;19444:102;;19563:95;19654:3;19645:6;19563:95;:::i;:::-;19556:102;;19675:3;19668:10;;19249:435;;;;;:::o;19690:159::-;19830:11;19826:1;19818:6;19814:14;19807:35;19690:159;:::o;19855:365::-;19997:3;20018:66;20082:1;20077:3;20018:66;:::i;:::-;20011:73;;20093:93;20182:3;20093:93;:::i;:::-;20211:2;20206:3;20202:12;20195:19;;19855:365;;;:::o;20226:419::-;20392:4;20430:2;20419:9;20415:18;20407:26;;20479:9;20473:4;20469:20;20465:1;20454:9;20450:17;20443:47;20507:131;20633:4;20507:131;:::i;:::-;20499:139;;20226:419;;;:::o;20651:178::-;20791:30;20787:1;20779:6;20775:14;20768:54;20651:178;:::o;20835:366::-;20977:3;20998:67;21062:2;21057:3;20998:67;:::i;:::-;20991:74;;21074:93;21163:3;21074:93;:::i;:::-;21192:2;21187:3;21183:12;21176:19;;20835:366;;;:::o;21207:419::-;21373:4;21411:2;21400:9;21396:18;21388:26;;21460:9;21454:4;21450:20;21446:1;21435:9;21431:17;21424:47;21488:131;21614:4;21488:131;:::i;:::-;21480:139;;21207:419;;;:::o;21632:191::-;21672:3;21691:20;21709:1;21691:20;:::i;:::-;21686:25;;21725:20;21743:1;21725:20;:::i;:::-;21720:25;;21768:1;21765;21761:9;21754:16;;21789:3;21786:1;21783:10;21780:36;;;21796:18;;:::i;:::-;21780:36;21632:191;;;;:::o;21829:170::-;21969:22;21965:1;21957:6;21953:14;21946:46;21829:170;:::o;22005:366::-;22147:3;22168:67;22232:2;22227:3;22168:67;:::i;:::-;22161:74;;22244:93;22333:3;22244:93;:::i;:::-;22362:2;22357:3;22353:12;22346:19;;22005:366;;;:::o;22377:419::-;22543:4;22581:2;22570:9;22566:18;22558:26;;22630:9;22624:4;22620:20;22616:1;22605:9;22601:17;22594:47;22658:131;22784:4;22658:131;:::i;:::-;22650:139;;22377:419;;;:::o;22802:170::-;22942:22;22938:1;22930:6;22926:14;22919:46;22802:170;:::o;22978:366::-;23120:3;23141:67;23205:2;23200:3;23141:67;:::i;:::-;23134:74;;23217:93;23306:3;23217:93;:::i;:::-;23335:2;23330:3;23326:12;23319:19;;22978:366;;;:::o;23350:419::-;23516:4;23554:2;23543:9;23539:18;23531:26;;23603:9;23597:4;23593:20;23589:1;23578:9;23574:17;23567:47;23631:131;23757:4;23631:131;:::i;:::-;23623:139;;23350:419;;;:::o;23775:185::-;23815:1;23832:20;23850:1;23832:20;:::i;:::-;23827:25;;23866:20;23884:1;23866:20;:::i;:::-;23861:25;;23905:1;23895:35;;23910:18;;:::i;:::-;23895:35;23952:1;23949;23945:9;23940:14;;23775:185;;;;:::o;23966:180::-;24014:77;24011:1;24004:88;24111:4;24108:1;24101:15;24135:4;24132:1;24125:15;24152:98;24203:6;24237:5;24231:12;24221:22;;24152:98;;;:::o;24256:168::-;24339:11;24373:6;24368:3;24361:19;24413:4;24408:3;24404:14;24389:29;;24256:168;;;;:::o;24430:373::-;24516:3;24544:38;24576:5;24544:38;:::i;:::-;24598:70;24661:6;24656:3;24598:70;:::i;:::-;24591:77;;24677:65;24735:6;24730:3;24723:4;24716:5;24712:16;24677:65;:::i;:::-;24767:29;24789:6;24767:29;:::i;:::-;24762:3;24758:39;24751:46;;24520:283;24430:373;;;;:::o;24809:640::-;25004:4;25042:3;25031:9;25027:19;25019:27;;25056:71;25124:1;25113:9;25109:17;25100:6;25056:71;:::i;:::-;25137:72;25205:2;25194:9;25190:18;25181:6;25137:72;:::i;:::-;25219;25287:2;25276:9;25272:18;25263:6;25219:72;:::i;:::-;25338:9;25332:4;25328:20;25323:2;25312:9;25308:18;25301:48;25366:76;25437:4;25428:6;25366:76;:::i;:::-;25358:84;;24809:640;;;;;;;:::o;25455:141::-;25511:5;25542:6;25536:13;25527:22;;25558:32;25584:5;25558:32;:::i;:::-;25455:141;;;;:::o;25602:349::-;25671:6;25720:2;25708:9;25699:7;25695:23;25691:32;25688:119;;;25726:79;;:::i;:::-;25688:119;25846:1;25871:63;25926:7;25917:6;25906:9;25902:22;25871:63;:::i;:::-;25861:73;;25817:127;25602:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","luckyMint(uint256)":"8726d836","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"luckyNumber\",\"type\":\"uint256\"}],\"name\":\"luckyMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S07_BadRandomness/BadRandomness.sol\":\"BadRandomness\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/S07_BadRandomness/BadRandomness.sol\":{\"keccak256\":\"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac\",\"dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"luckyNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"luckyMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S07_BadRandomness/BadRandomness.sol":"BadRandomness"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/S07_BadRandomness/BadRandomness.sol":{"keccak256":"0x2fd89282dc7c8007c1e9faaa881e3bb1839458c692616e0a60c9c286f392760b","urls":["bzz-raw://92b060cd841d8fbe80e1fea95ad2359198fef06ef7c2cf92358f6e28e97660ac","dweb:/ipfs/QmcPD24dMgmaMRjrTL4cx3hxw9w4ZDDKcHpodZPYidmxGn"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file diff --git a/out/Call.sol/Call.json b/out/Call.sol/Call.json index 51f7251d..b13e9719 100644 --- a/out/Call.sol/Call.json +++ b/out/Call.sol/Call.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"callGetX","inputs":[{"name":"_addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"callNonExist","inputs":[{"name":"_addr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetX","inputs":[{"name":"_addr","type":"address","internalType":"address payable"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Response","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107368061001c5f395ff3fe608060405260043610610033575f3560e01c80630c49c74b146100375780633ca065bb1461005f57806366563e691461007b575b5f5ffd5b348015610042575f5ffd5b5061005d600480360381019061005891906104ba565b6100b7565b005b61007960048036038101906100749190610553565b6101e1565b005b348015610086575f5ffd5b506100a1600480360381019061009c91906104ba565b610319565b6040516100ae91906105a0565b60405180910390f35b5f5f8273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2fbebd38000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610160919061060b565b5f604051808303815f865af19150503d805f8114610199576040519150601f19603f3d011682016040523d82523d5f602084013e61019e565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a82826040516101d4929190610693565b60405180910390a1505050565b5f5f8373ffffffffffffffffffffffffffffffffffffffff16348460405160240161020c91906105a0565b6040516020818303038152906040527f4018d9aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610296919061060b565b5f6040518083038185875af1925050503d805f81146102d0576040519150601f19603f3d011682016040523d82523d5f602084013e6102d5565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a828260405161030b929190610693565b60405180910390a150505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f5197c7aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103c3919061060b565b5f604051808303815f865af19150503d805f81146103fc576040519150601f19603f3d011682016040523d82523d5f602084013e610401565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a8282604051610437929190610693565b60405180910390a18080602001905181019061045391906106d5565b92505050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f5ffd5b50565b5f813590506104b481610490565b92915050565b5f602082840312156104cf576104ce61045c565b5b5f6104dc848285016104a6565b91505092915050565b5f6104ef82610460565b9050919050565b6104ff816104e5565b8114610509575f5ffd5b50565b5f8135905061051a816104f6565b92915050565b5f819050919050565b61053281610520565b811461053c575f5ffd5b50565b5f8135905061054d81610529565b92915050565b5f5f604083850312156105695761056861045c565b5b5f6105768582860161050c565b92505060206105878582860161053f565b9150509250929050565b61059a81610520565b82525050565b5f6020820190506105b35f830184610591565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105e5826105b9565b6105ef81856105c3565b93506105ff8185602086016105cd565b80840191505092915050565b5f61061682846105db565b915081905092915050565b5f8115159050919050565b61063581610621565b82525050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610665826105b9565b61066f818561063b565b935061067f8185602086016105cd565b6106888161064b565b840191505092915050565b5f6040820190506106a65f83018561062c565b81810360208301526106b8818461065b565b90509392505050565b5f815190506106cf81610529565b92915050565b5f602082840312156106ea576106e961045c565b5b5f6106f7848285016106c1565b9150509291505056fea264697066735822122025fd8c870b4c6f002e53ba2dd00c6abe48485f6105a9bc2b300098f56e9f20bb64736f6c63430008220033","sourceMap":"747:1025:68:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c80630c49c74b146100375780633ca065bb1461005f57806366563e691461007b575b5f5ffd5b348015610042575f5ffd5b5061005d600480360381019061005891906104ba565b6100b7565b005b61007960048036038101906100749190610553565b6101e1565b005b348015610086575f5ffd5b506100a1600480360381019061009c91906104ba565b610319565b6040516100ae91906105a0565b60405180910390f35b5f5f8273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2fbebd38000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610160919061060b565b5f604051808303815f865af19150503d805f8114610199576040519150601f19603f3d011682016040523d82523d5f602084013e61019e565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a82826040516101d4929190610693565b60405180910390a1505050565b5f5f8373ffffffffffffffffffffffffffffffffffffffff16348460405160240161020c91906105a0565b6040516020818303038152906040527f4018d9aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610296919061060b565b5f6040518083038185875af1925050503d805f81146102d0576040519150601f19603f3d011682016040523d82523d5f602084013e6102d5565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a828260405161030b929190610693565b60405180910390a150505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f5197c7aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103c3919061060b565b5f604051808303815f865af19150503d805f81146103fc576040519150601f19603f3d011682016040523d82523d5f602084013e610401565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a8282604051610437929190610693565b60405180910390a18080602001905181019061045391906106d5565b92505050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f5ffd5b50565b5f813590506104b481610490565b92915050565b5f602082840312156104cf576104ce61045c565b5b5f6104dc848285016104a6565b91505092915050565b5f6104ef82610460565b9050919050565b6104ff816104e5565b8114610509575f5ffd5b50565b5f8135905061051a816104f6565b92915050565b5f819050919050565b61053281610520565b811461053c575f5ffd5b50565b5f8135905061054d81610529565b92915050565b5f5f604083850312156105695761056861045c565b5b5f6105768582860161050c565b92505060206105878582860161053f565b9150509250929050565b61059a81610520565b82525050565b5f6020820190506105b35f830184610591565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105e5826105b9565b6105ef81856105c3565b93506105ff8185602086016105cd565b80840191505092915050565b5f61061682846105db565b915081905092915050565b5f8115159050919050565b61063581610621565b82525050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610665826105b9565b61066f818561063b565b935061067f8185602086016105cd565b6106888161064b565b840191505092915050565b5f6040820190506106a65f83018561062c565b81810360208301526106b8818461065b565b90509392505050565b5f815190506106cf81610529565b92915050565b5f602082840312156106ea576106e961045c565b5b5f6106f7848285016106c1565b9150509291505056fea264697066735822122025fd8c870b4c6f002e53ba2dd00c6abe48485f6105a9bc2b300098f56e9f20bb64736f6c63430008220033","sourceMap":"747:1025:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;883:316;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1205:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1510:260;1601:12;1615:17;1636:5;:10;;1660:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1600:109;;;;1725:23;1734:7;1743:4;1725:23;;;;;;;:::i;:::-;;;;;;;;1555:215;;1510:260;:::o;883:316::-;1008:12;1022:17;1043:5;:10;;1061:9;1126:1;1085:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1043:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:131;;;;1154:23;1163:7;1172:4;1154:23;;;;;;;:::i;:::-;;;;;;;;950:249;;883:316;;:::o;1205:299::-;1255:7;1297:12;1311:17;1332:5;:10;;1356:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1332:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1296:103;;;;1415:23;1424:7;1433:4;1415:23;;;;;;;:::i;:::-;;;;;;;;1481:4;1470:27;;;;;;;;;;;;:::i;:::-;1463:34;;;;1205:299;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:104::-;1221:7;1250:24;1268:5;1250:24;:::i;:::-;1239:35;;1176:104;;;:::o;1286:138::-;1367:32;1393:5;1367:32;:::i;:::-;1360:5;1357:43;1347:71;;1414:1;1411;1404:12;1347:71;1286:138;:::o;1430:155::-;1484:5;1522:6;1509:20;1500:29;;1538:41;1573:5;1538:41;:::i;:::-;1430:155;;;;:::o;1591:77::-;1628:7;1657:5;1646:16;;1591:77;;;:::o;1674:122::-;1747:24;1765:5;1747:24;:::i;:::-;1740:5;1737:35;1727:63;;1786:1;1783;1776:12;1727:63;1674:122;:::o;1802:139::-;1848:5;1886:6;1873:20;1864:29;;1902:33;1929:5;1902:33;:::i;:::-;1802:139;;;;:::o;1947:490::-;2023:6;2031;2080:2;2068:9;2059:7;2055:23;2051:32;2048:119;;;2086:79;;:::i;:::-;2048:119;2206:1;2231:61;2284:7;2275:6;2264:9;2260:22;2231:61;:::i;:::-;2221:71;;2177:125;2341:2;2367:53;2412:7;2403:6;2392:9;2388:22;2367:53;:::i;:::-;2357:63;;2312:118;1947:490;;;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:98::-;2846:6;2880:5;2874:12;2864:22;;2795:98;;;:::o;2899:147::-;3000:11;3037:3;3022:18;;2899:147;;;;:::o;3052:139::-;3141:6;3136:3;3131;3125:23;3182:1;3173:6;3168:3;3164:16;3157:27;3052:139;;;:::o;3197:386::-;3301:3;3329:38;3361:5;3329:38;:::i;:::-;3383:88;3464:6;3459:3;3383:88;:::i;:::-;3376:95;;3480:65;3538:6;3533:3;3526:4;3519:5;3515:16;3480:65;:::i;:::-;3570:6;3565:3;3561:16;3554:23;;3305:278;3197:386;;;;:::o;3589:271::-;3719:3;3741:93;3830:3;3821:6;3741:93;:::i;:::-;3734:100;;3851:3;3844:10;;3589:271;;;;:::o;3866:90::-;3900:7;3943:5;3936:13;3929:21;3918:32;;3866:90;;;:::o;3962:109::-;4043:21;4058:5;4043:21;:::i;:::-;4038:3;4031:34;3962:109;;:::o;4077:168::-;4160:11;4194:6;4189:3;4182:19;4234:4;4229:3;4225:14;4210:29;;4077:168;;;;:::o;4251:102::-;4292:6;4343:2;4339:7;4334:2;4327:5;4323:14;4319:28;4309:38;;4251:102;;;:::o;4359:373::-;4445:3;4473:38;4505:5;4473:38;:::i;:::-;4527:70;4590:6;4585:3;4527:70;:::i;:::-;4520:77;;4606:65;4664:6;4659:3;4652:4;4645:5;4641:16;4606:65;:::i;:::-;4696:29;4718:6;4696:29;:::i;:::-;4691:3;4687:39;4680:46;;4449:283;4359:373;;;;:::o;4738:407::-;4871:4;4909:2;4898:9;4894:18;4886:26;;4922:65;4984:1;4973:9;4969:17;4960:6;4922:65;:::i;:::-;5034:9;5028:4;5024:20;5019:2;5008:9;5004:18;4997:48;5062:76;5133:4;5124:6;5062:76;:::i;:::-;5054:84;;4738:407;;;;;:::o;5151:143::-;5208:5;5239:6;5233:13;5224:22;;5255:33;5282:5;5255:33;:::i;:::-;5151:143;;;;:::o;5300:351::-;5370:6;5419:2;5407:9;5398:7;5394:23;5390:32;5387:119;;;5425:79;;:::i;:::-;5387:119;5545:1;5570:64;5626:7;5617:6;5606:9;5602:22;5570:64;:::i;:::-;5560:74;;5516:128;5300:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callGetX(address)":"66563e69","callNonExist(address)":"0c49c74b","callSetX(address,uint256)":"3ca065bb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Response\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"callGetX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"callNonExist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"callSetX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/22_Call/Call.sol\":\"Call\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/22_Call/Call.sol\":{\"keccak256\":\"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f\",\"dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Response","anonymous":false},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callGetX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callNonExist"},{"inputs":[{"internalType":"address payable","name":"_addr","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callSetX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/22_Call/Call.sol":"Call"},"evmVersion":"prague","libraries":{}},"sources":{"src/22_Call/Call.sol":{"keccak256":"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e","urls":["bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f","dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"function","name":"callGetX","inputs":[{"name":"_addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"callNonExist","inputs":[{"name":"_addr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callSetX","inputs":[{"name":"_addr","type":"address","internalType":"address payable"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Response","inputs":[{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107368061001c5f395ff3fe608060405260043610610033575f3560e01c80630c49c74b146100375780633ca065bb1461005f57806366563e691461007b575b5f5ffd5b348015610042575f5ffd5b5061005d600480360381019061005891906104ba565b6100b7565b005b61007960048036038101906100749190610553565b6101e1565b005b348015610086575f5ffd5b506100a1600480360381019061009c91906104ba565b610319565b6040516100ae91906105a0565b60405180910390f35b5f5f8273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2fbebd38000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610160919061060b565b5f604051808303815f865af19150503d805f8114610199576040519150601f19603f3d011682016040523d82523d5f602084013e61019e565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a82826040516101d4929190610693565b60405180910390a1505050565b5f5f8373ffffffffffffffffffffffffffffffffffffffff16348460405160240161020c91906105a0565b6040516020818303038152906040527f4018d9aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610296919061060b565b5f6040518083038185875af1925050503d805f81146102d0576040519150601f19603f3d011682016040523d82523d5f602084013e6102d5565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a828260405161030b929190610693565b60405180910390a150505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f5197c7aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103c3919061060b565b5f604051808303815f865af19150503d805f81146103fc576040519150601f19603f3d011682016040523d82523d5f602084013e610401565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a8282604051610437929190610693565b60405180910390a18080602001905181019061045391906106d5565b92505050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f5ffd5b50565b5f813590506104b481610490565b92915050565b5f602082840312156104cf576104ce61045c565b5b5f6104dc848285016104a6565b91505092915050565b5f6104ef82610460565b9050919050565b6104ff816104e5565b8114610509575f5ffd5b50565b5f8135905061051a816104f6565b92915050565b5f819050919050565b61053281610520565b811461053c575f5ffd5b50565b5f8135905061054d81610529565b92915050565b5f5f604083850312156105695761056861045c565b5b5f6105768582860161050c565b92505060206105878582860161053f565b9150509250929050565b61059a81610520565b82525050565b5f6020820190506105b35f830184610591565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105e5826105b9565b6105ef81856105c3565b93506105ff8185602086016105cd565b80840191505092915050565b5f61061682846105db565b915081905092915050565b5f8115159050919050565b61063581610621565b82525050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610665826105b9565b61066f818561063b565b935061067f8185602086016105cd565b6106888161064b565b840191505092915050565b5f6040820190506106a65f83018561062c565b81810360208301526106b8818461065b565b90509392505050565b5f815190506106cf81610529565b92915050565b5f602082840312156106ea576106e961045c565b5b5f6106f7848285016106c1565b9150509291505056fea264697066735822122025fd8c870b4c6f002e53ba2dd00c6abe48485f6105a9bc2b300098f56e9f20bb64736f6c63430008220033","sourceMap":"747:1025:64:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c80630c49c74b146100375780633ca065bb1461005f57806366563e691461007b575b5f5ffd5b348015610042575f5ffd5b5061005d600480360381019061005891906104ba565b6100b7565b005b61007960048036038101906100749190610553565b6101e1565b005b348015610086575f5ffd5b506100a1600480360381019061009c91906104ba565b610319565b6040516100ae91906105a0565b60405180910390f35b5f5f8273ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f2fbebd38000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610160919061060b565b5f604051808303815f865af19150503d805f8114610199576040519150601f19603f3d011682016040523d82523d5f602084013e61019e565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a82826040516101d4929190610693565b60405180910390a1505050565b5f5f8373ffffffffffffffffffffffffffffffffffffffff16348460405160240161020c91906105a0565b6040516020818303038152906040527f4018d9aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610296919061060b565b5f6040518083038185875af1925050503d805f81146102d0576040519150601f19603f3d011682016040523d82523d5f602084013e6102d5565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a828260405161030b929190610693565b60405180910390a150505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f5197c7aa000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103c3919061060b565b5f604051808303815f865af19150503d805f81146103fc576040519150601f19603f3d011682016040523d82523d5f602084013e610401565b606091505b50915091507f13848c3e38f8886f3f5d2ad9dff80d8092c2bbb8efd5b887a99c2c6cfc09ac2a8282604051610437929190610693565b60405180910390a18080602001905181019061045391906106d5565b92505050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61048982610460565b9050919050565b6104998161047f565b81146104a3575f5ffd5b50565b5f813590506104b481610490565b92915050565b5f602082840312156104cf576104ce61045c565b5b5f6104dc848285016104a6565b91505092915050565b5f6104ef82610460565b9050919050565b6104ff816104e5565b8114610509575f5ffd5b50565b5f8135905061051a816104f6565b92915050565b5f819050919050565b61053281610520565b811461053c575f5ffd5b50565b5f8135905061054d81610529565b92915050565b5f5f604083850312156105695761056861045c565b5b5f6105768582860161050c565b92505060206105878582860161053f565b9150509250929050565b61059a81610520565b82525050565b5f6020820190506105b35f830184610591565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105e5826105b9565b6105ef81856105c3565b93506105ff8185602086016105cd565b80840191505092915050565b5f61061682846105db565b915081905092915050565b5f8115159050919050565b61063581610621565b82525050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610665826105b9565b61066f818561063b565b935061067f8185602086016105cd565b6106888161064b565b840191505092915050565b5f6040820190506106a65f83018561062c565b81810360208301526106b8818461065b565b90509392505050565b5f815190506106cf81610529565b92915050565b5f602082840312156106ea576106e961045c565b5b5f6106f7848285016106c1565b9150509291505056fea264697066735822122025fd8c870b4c6f002e53ba2dd00c6abe48485f6105a9bc2b300098f56e9f20bb64736f6c63430008220033","sourceMap":"747:1025:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;883:316;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1205:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1510:260;1601:12;1615:17;1636:5;:10;;1660:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1600:109;;;;1725:23;1734:7;1743:4;1725:23;;;;;;;:::i;:::-;;;;;;;;1555:215;;1510:260;:::o;883:316::-;1008:12;1022:17;1043:5;:10;;1061:9;1126:1;1085:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1043:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:131;;;;1154:23;1163:7;1172:4;1154:23;;;;;;;:::i;:::-;;;;;;;;950:249;;883:316;;:::o;1205:299::-;1255:7;1297:12;1311:17;1332:5;:10;;1356:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1332:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1296:103;;;;1415:23;1424:7;1433:4;1415:23;;;;;;;:::i;:::-;;;;;;;;1481:4;1470:27;;;;;;;;;;;;:::i;:::-;1463:34;;;;1205:299;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:104::-;1221:7;1250:24;1268:5;1250:24;:::i;:::-;1239:35;;1176:104;;;:::o;1286:138::-;1367:32;1393:5;1367:32;:::i;:::-;1360:5;1357:43;1347:71;;1414:1;1411;1404:12;1347:71;1286:138;:::o;1430:155::-;1484:5;1522:6;1509:20;1500:29;;1538:41;1573:5;1538:41;:::i;:::-;1430:155;;;;:::o;1591:77::-;1628:7;1657:5;1646:16;;1591:77;;;:::o;1674:122::-;1747:24;1765:5;1747:24;:::i;:::-;1740:5;1737:35;1727:63;;1786:1;1783;1776:12;1727:63;1674:122;:::o;1802:139::-;1848:5;1886:6;1873:20;1864:29;;1902:33;1929:5;1902:33;:::i;:::-;1802:139;;;;:::o;1947:490::-;2023:6;2031;2080:2;2068:9;2059:7;2055:23;2051:32;2048:119;;;2086:79;;:::i;:::-;2048:119;2206:1;2231:61;2284:7;2275:6;2264:9;2260:22;2231:61;:::i;:::-;2221:71;;2177:125;2341:2;2367:53;2412:7;2403:6;2392:9;2388:22;2367:53;:::i;:::-;2357:63;;2312:118;1947:490;;;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:98::-;2846:6;2880:5;2874:12;2864:22;;2795:98;;;:::o;2899:147::-;3000:11;3037:3;3022:18;;2899:147;;;;:::o;3052:139::-;3141:6;3136:3;3131;3125:23;3182:1;3173:6;3168:3;3164:16;3157:27;3052:139;;;:::o;3197:386::-;3301:3;3329:38;3361:5;3329:38;:::i;:::-;3383:88;3464:6;3459:3;3383:88;:::i;:::-;3376:95;;3480:65;3538:6;3533:3;3526:4;3519:5;3515:16;3480:65;:::i;:::-;3570:6;3565:3;3561:16;3554:23;;3305:278;3197:386;;;;:::o;3589:271::-;3719:3;3741:93;3830:3;3821:6;3741:93;:::i;:::-;3734:100;;3851:3;3844:10;;3589:271;;;;:::o;3866:90::-;3900:7;3943:5;3936:13;3929:21;3918:32;;3866:90;;;:::o;3962:109::-;4043:21;4058:5;4043:21;:::i;:::-;4038:3;4031:34;3962:109;;:::o;4077:168::-;4160:11;4194:6;4189:3;4182:19;4234:4;4229:3;4225:14;4210:29;;4077:168;;;;:::o;4251:102::-;4292:6;4343:2;4339:7;4334:2;4327:5;4323:14;4319:28;4309:38;;4251:102;;;:::o;4359:373::-;4445:3;4473:38;4505:5;4473:38;:::i;:::-;4527:70;4590:6;4585:3;4527:70;:::i;:::-;4520:77;;4606:65;4664:6;4659:3;4652:4;4645:5;4641:16;4606:65;:::i;:::-;4696:29;4718:6;4696:29;:::i;:::-;4691:3;4687:39;4680:46;;4449:283;4359:373;;;;:::o;4738:407::-;4871:4;4909:2;4898:9;4894:18;4886:26;;4922:65;4984:1;4973:9;4969:17;4960:6;4922:65;:::i;:::-;5034:9;5028:4;5024:20;5019:2;5008:9;5004:18;4997:48;5062:76;5133:4;5124:6;5062:76;:::i;:::-;5054:84;;4738:407;;;;;:::o;5151:143::-;5208:5;5239:6;5233:13;5224:22;;5255:33;5282:5;5255:33;:::i;:::-;5151:143;;;;:::o;5300:351::-;5370:6;5419:2;5407:9;5398:7;5394:23;5390:32;5387:119;;;5425:79;;:::i;:::-;5387:119;5545:1;5570:64;5626:7;5617:6;5606:9;5602:22;5570:64;:::i;:::-;5560:74;;5516:128;5300:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callGetX(address)":"66563e69","callNonExist(address)":"0c49c74b","callSetX(address,uint256)":"3ca065bb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Response\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"callGetX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"callNonExist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"callSetX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/22_Call/Call.sol\":\"Call\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/22_Call/Call.sol\":{\"keccak256\":\"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f\",\"dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Response","anonymous":false},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callGetX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"callNonExist"},{"inputs":[{"internalType":"address payable","name":"_addr","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callSetX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/22_Call/Call.sol":"Call"},"evmVersion":"prague","libraries":{}},"sources":{"src/22_Call/Call.sol":{"keccak256":"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e","urls":["bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f","dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file diff --git a/out/Call.sol/OtherContract.json b/out/Call.sol/OtherContract.json index e8d496ef..03efb6ae 100644 --- a/out/Call.sol/OtherContract.json +++ b/out/Call.sol/OtherContract.json @@ -1 +1 @@ -{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getX","inputs":[],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setX","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f5f553480156011575f5ffd5b506101eb8061001f5f395ff3fe608060405260043610610037575f3560e01c806312065fe01461003a5780634018d9aa146100645780635197c7aa1461008057610038565b5b005b348015610045575f5ffd5b5061004e6100aa565b60405161005b919061011c565b60405180910390f35b61007e60048036038101906100799190610163565b6100b1565b005b34801561008b575f5ffd5b506100946100fc565b6040516100a1919061011c565b60405180910390f35b5f47905090565b805f819055505f3411156100f9577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100f092919061018e565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011681610104565b82525050565b5f60208201905061012f5f83018461010d565b92915050565b5f5ffd5b61014281610104565b811461014c575f5ffd5b50565b5f8135905061015d81610139565b92915050565b5f6020828403121561017857610177610135565b5b5f6101858482850161014f565b91505092915050565b5f6040820190506101a15f83018561010d565b6101ae602083018461010d565b939250505056fea2646970667358221220c6a6284d4e5eb2968f258df0005926db85da99595179aeeb4f1147efc6de844c64736f6c63430008220033","sourceMap":"58:687:68:-:0;;;108:1;87:22;;58:687;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806312065fe01461003a5780634018d9aa146100645780635197c7aa1461008057610038565b5b005b348015610045575f5ffd5b5061004e6100aa565b60405161005b919061011c565b60405180910390f35b61007e60048036038101906100799190610163565b6100b1565b005b34801561008b575f5ffd5b506100946100fc565b6040516100a1919061011c565b60405180910390f35b5f47905090565b805f819055505f3411156100f9577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100f092919061018e565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011681610104565b82525050565b5f60208201905061012f5f83018461010d565b92915050565b5f5ffd5b61014281610104565b811461014c575f5ffd5b50565b5f8135905061015d81610139565b92915050565b5f6020828403121561017857610177610135565b5b5f6101858482850161014f565b91505092915050565b5f6040820190506101a15f83018561010d565b6101ae602083018461010d565b939250505056fea2646970667358221220c6a6284d4e5eb2968f258df0005926db85da99595179aeeb4f1147efc6de844c64736f6c63430008220033","sourceMap":"58:687:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;279:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;461:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;675:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;279:93;321:4;344:21;337:28;;279:93;:::o;461:193::-;517:1;512:2;:6;;;;591:1;579:9;:13;576:72;;;612:25;616:9;627;612:25;;;;;;;:::i;:::-;;;;;;;;576:72;461:193;:::o;675:68::-;713:6;734:2;;730:6;;675:68;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:332::-;1498:4;1536:2;1525:9;1521:18;1513:26;;1549:71;1617:1;1606:9;1602:17;1593:6;1549:71;:::i;:::-;1630:72;1698:2;1687:9;1683:18;1674:6;1630:72;:::i;:::-;1377:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0","getX()":"5197c7aa","setX(uint256)":"4018d9aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/22_Call/Call.sol\":\"OtherContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/22_Call/Call.sol\":{\"keccak256\":\"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f\",\"dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/22_Call/Call.sol":"OtherContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/22_Call/Call.sol":{"keccak256":"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e","urls":["bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f","dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getX","inputs":[],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setX","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f5f553480156011575f5ffd5b506101eb8061001f5f395ff3fe608060405260043610610037575f3560e01c806312065fe01461003a5780634018d9aa146100645780635197c7aa1461008057610038565b5b005b348015610045575f5ffd5b5061004e6100aa565b60405161005b919061011c565b60405180910390f35b61007e60048036038101906100799190610163565b6100b1565b005b34801561008b575f5ffd5b506100946100fc565b6040516100a1919061011c565b60405180910390f35b5f47905090565b805f819055505f3411156100f9577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100f092919061018e565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011681610104565b82525050565b5f60208201905061012f5f83018461010d565b92915050565b5f5ffd5b61014281610104565b811461014c575f5ffd5b50565b5f8135905061015d81610139565b92915050565b5f6020828403121561017857610177610135565b5b5f6101858482850161014f565b91505092915050565b5f6040820190506101a15f83018561010d565b6101ae602083018461010d565b939250505056fea2646970667358221220c6a6284d4e5eb2968f258df0005926db85da99595179aeeb4f1147efc6de844c64736f6c63430008220033","sourceMap":"58:687:64:-:0;;;108:1;87:22;;58:687;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806312065fe01461003a5780634018d9aa146100645780635197c7aa1461008057610038565b5b005b348015610045575f5ffd5b5061004e6100aa565b60405161005b919061011c565b60405180910390f35b61007e60048036038101906100799190610163565b6100b1565b005b34801561008b575f5ffd5b506100946100fc565b6040516100a1919061011c565b60405180910390f35b5f47905090565b805f819055505f3411156100f9577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100f092919061018e565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011681610104565b82525050565b5f60208201905061012f5f83018461010d565b92915050565b5f5ffd5b61014281610104565b811461014c575f5ffd5b50565b5f8135905061015d81610139565b92915050565b5f6020828403121561017857610177610135565b5b5f6101858482850161014f565b91505092915050565b5f6040820190506101a15f83018561010d565b6101ae602083018461010d565b939250505056fea2646970667358221220c6a6284d4e5eb2968f258df0005926db85da99595179aeeb4f1147efc6de844c64736f6c63430008220033","sourceMap":"58:687:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;279:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;461:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;675:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;279:93;321:4;344:21;337:28;;279:93;:::o;461:193::-;517:1;512:2;:6;;;;591:1;579:9;:13;576:72;;;612:25;616:9;627;612:25;;;;;;;:::i;:::-;;;;;;;;576:72;461:193;:::o;675:68::-;713:6;734:2;;730:6;;675:68;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:332::-;1498:4;1536:2;1525:9;1521:18;1513:26;;1549:71;1617:1;1606:9;1602:17;1593:6;1549:71;:::i;:::-;1630:72;1698:2;1687:9;1683:18;1674:6;1630:72;:::i;:::-;1377:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0","getX()":"5197c7aa","setX(uint256)":"4018d9aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/22_Call/Call.sol\":\"OtherContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/22_Call/Call.sol\":{\"keccak256\":\"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f\",\"dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/22_Call/Call.sol":"OtherContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/22_Call/Call.sol":{"keccak256":"0x05aa3ee567a54c5c053ab7ab98e18ef610ab29890d66cda97e0ac09033f4e37e","urls":["bzz-raw://faffcd281183d922db3ccc06f1c5b64ae00e3efa1ac84626d79a85342345497f","dweb:/ipfs/QmbYYXPUkQa87xTAdcUguUg7R2255nVaGyj7UGDiSgg4AM"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file diff --git a/out/CallContract.sol/CallContract.json b/out/CallContract.sol/CallContract.json index 4f169f74..5956ae9b 100644 --- a/out/CallContract.sol/CallContract.json +++ b/out/CallContract.sol/CallContract.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"callGetX","inputs":[{"name":"_Address","type":"address","internalType":"contract OtherContract"}],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"callGetX2","inputs":[{"name":"_Address","type":"address","internalType":"address"}],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"callSetX","inputs":[{"name":"_Address","type":"address","internalType":"address"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setXTransferETH","inputs":[{"name":"otherContract","type":"address","internalType":"address"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104c08061001c5f395ff3fe60806040526004361061003e575f3560e01c80633004b163146100425780633ca065bb1461005e57806366563e691461008657806394a7b4f4146100c2575b5f5ffd5b61005c60048036038101906100579190610354565b6100fe565b005b348015610069575f5ffd5b50610084600480360381019061007f9190610354565b61016a565b005b348015610091575f5ffd5b506100ac60048036038101906100a791906103cd565b6101d4565b6040516100b99190610407565b60405180910390f35b3480156100cd575f5ffd5b506100e860048036038101906100e39190610420565b610249565b6040516100f59190610407565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa34836040518363ffffffff1660e01b81526004016101389190610407565b5f604051808303818588803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b81526004016101a39190610407565b5f604051808303815f87803b1580156101ba575f5ffd5b505af11580156101cc573d5f5f3e3d5ffd5b505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610242919061045f565b9050919050565b5f5f8290508073ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610297573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bb919061045f565b915050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102f0826102c7565b9050919050565b610300816102e6565b811461030a575f5ffd5b50565b5f8135905061031b816102f7565b92915050565b5f819050919050565b61033381610321565b811461033d575f5ffd5b50565b5f8135905061034e8161032a565b92915050565b5f5f6040838503121561036a576103696102c3565b5b5f6103778582860161030d565b925050602061038885828601610340565b9150509250929050565b5f61039c826102e6565b9050919050565b6103ac81610392565b81146103b6575f5ffd5b50565b5f813590506103c7816103a3565b92915050565b5f602082840312156103e2576103e16102c3565b5b5f6103ef848285016103b9565b91505092915050565b61040181610321565b82525050565b5f60208201905061041a5f8301846103f8565b92915050565b5f60208284031215610435576104346102c3565b5b5f6104428482850161030d565b91505092915050565b5f815190506104598161032a565b92915050565b5f60208284031215610474576104736102c3565b5b5f6104818482850161044b565b9150509291505056fea26469706673582212206f2a50bed59220094cd6e117d3991bf7528f18e2dd5f94dcb522ec29a8cfb33564736f6c63430008220033","sourceMap":"716:551:67:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c80633004b163146100425780633ca065bb1461005e57806366563e691461008657806394a7b4f4146100c2575b5f5ffd5b61005c60048036038101906100579190610354565b6100fe565b005b348015610069575f5ffd5b50610084600480360381019061007f9190610354565b61016a565b005b348015610091575f5ffd5b506100ac60048036038101906100a791906103cd565b6101d4565b6040516100b99190610407565b60405180910390f35b3480156100cd575f5ffd5b506100e860048036038101906100e39190610420565b610249565b6040516100f59190610407565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa34836040518363ffffffff1660e01b81526004016101389190610407565b5f604051808303818588803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b81526004016101a39190610407565b5f604051808303815f87803b1580156101ba575f5ffd5b505af11580156101cc573d5f5f3e3d5ffd5b505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610242919061045f565b9050919050565b5f5f8290508073ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610297573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bb919061045f565b915050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102f0826102c7565b9050919050565b610300816102e6565b811461030a575f5ffd5b50565b5f8135905061031b816102f7565b92915050565b5f819050919050565b61033381610321565b811461033d575f5ffd5b50565b5f8135905061034e8161032a565b92915050565b5f5f6040838503121561036a576103696102c3565b5b5f6103778582860161030d565b925050602061038885828601610340565b9150509250929050565b5f61039c826102e6565b9050919050565b6103ac81610392565b81146103b6575f5ffd5b50565b5f813590506103c7816103a3565b92915050565b5f602082840312156103e2576103e16102c3565b5b5f6103ef848285016103b9565b91505092915050565b61040181610321565b82525050565b5f60208201905061041a5f8301846103f8565b92915050565b5f60208284031215610435576104346102c3565b5b5f6104428482850161030d565b91505092915050565b5f815190506104598161032a565b92915050565b5f60208284031215610474576104736102c3565b5b5f6104818482850161044b565b9150509291505056fea26469706673582212206f2a50bed59220094cd6e117d3991bf7528f18e2dd5f94dcb522ec29a8cfb33564736f6c63430008220033","sourceMap":"716:551:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;743:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;852:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1119:146;1218:13;1204:33;;;1245:9;1256:1;1204:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:146;;:::o;743:103::-;822:8;808:28;;;837:1;808:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:103;;:::o;852:107::-;916:6;937:8;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;933:19;;852:107;;;:::o;965:148::-;1024:6;1041:16;1074:8;1041:42;;1097:2;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1093:13;;1031:82;965:148;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:119::-;1737:7;1766:24;1784:5;1766:24;:::i;:::-;1755:35;;1677:119;;;:::o;1802:168::-;1898:47;1939:5;1898:47;:::i;:::-;1891:5;1888:58;1878:86;;1960:1;1957;1950:12;1878:86;1802:168;:::o;1976:185::-;2045:5;2083:6;2070:20;2061:29;;2099:56;2149:5;2099:56;:::i;:::-;1976:185;;;;:::o;2167:375::-;2249:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:119;;;2304:79;;:::i;:::-;2266:119;2424:1;2449:76;2517:7;2508:6;2497:9;2493:22;2449:76;:::i;:::-;2439:86;;2395:140;2167:375;;;;:::o;2548:118::-;2635:24;2653:5;2635:24;:::i;:::-;2630:3;2623:37;2548:118;;:::o;2672:222::-;2765:4;2803:2;2792:9;2788:18;2780:26;;2816:71;2884:1;2873:9;2869:17;2860:6;2816:71;:::i;:::-;2672:222;;;;:::o;2900:329::-;2959:6;3008:2;2996:9;2987:7;2983:23;2979:32;2976:119;;;3014:79;;:::i;:::-;2976:119;3134:1;3159:53;3204:7;3195:6;3184:9;3180:22;3159:53;:::i;:::-;3149:63;;3105:117;2900:329;;;;:::o;3235:143::-;3292:5;3323:6;3317:13;3308:22;;3339:33;3366:5;3339:33;:::i;:::-;3235:143;;;;:::o;3384:351::-;3454:6;3503:2;3491:9;3482:7;3478:23;3474:32;3471:119;;;3509:79;;:::i;:::-;3471:119;3629:1;3654:64;3710:7;3701:6;3690:9;3686:22;3654:64;:::i;:::-;3644:74;;3600:128;3384:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callGetX(address)":"66563e69","callGetX2(address)":"94a7b4f4","callSetX(address,uint256)":"3ca065bb","setXTransferETH(address,uint256)":"3004b163"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract OtherContract\",\"name\":\"_Address\",\"type\":\"address\"}],\"name\":\"callGetX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_Address\",\"type\":\"address\"}],\"name\":\"callGetX2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"callSetX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"otherContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setXTransferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/21_CallContract/CallContract.sol\":\"CallContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/21_CallContract/CallContract.sol\":{\"keccak256\":\"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611\",\"dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract OtherContract","name":"_Address","type":"address"}],"stateMutability":"view","type":"function","name":"callGetX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_Address","type":"address"}],"stateMutability":"view","type":"function","name":"callGetX2","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_Address","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"callSetX"},{"inputs":[{"internalType":"address","name":"otherContract","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setXTransferETH"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/21_CallContract/CallContract.sol":"CallContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/21_CallContract/CallContract.sol":{"keccak256":"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43","urls":["bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611","dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file +{"abi":[{"type":"function","name":"callGetX","inputs":[{"name":"_Address","type":"address","internalType":"contract OtherContract"}],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"callGetX2","inputs":[{"name":"_Address","type":"address","internalType":"address"}],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"callSetX","inputs":[{"name":"_Address","type":"address","internalType":"address"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setXTransferETH","inputs":[{"name":"otherContract","type":"address","internalType":"address"},{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104c08061001c5f395ff3fe60806040526004361061003e575f3560e01c80633004b163146100425780633ca065bb1461005e57806366563e691461008657806394a7b4f4146100c2575b5f5ffd5b61005c60048036038101906100579190610354565b6100fe565b005b348015610069575f5ffd5b50610084600480360381019061007f9190610354565b61016a565b005b348015610091575f5ffd5b506100ac60048036038101906100a791906103cd565b6101d4565b6040516100b99190610407565b60405180910390f35b3480156100cd575f5ffd5b506100e860048036038101906100e39190610420565b610249565b6040516100f59190610407565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa34836040518363ffffffff1660e01b81526004016101389190610407565b5f604051808303818588803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b81526004016101a39190610407565b5f604051808303815f87803b1580156101ba575f5ffd5b505af11580156101cc573d5f5f3e3d5ffd5b505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610242919061045f565b9050919050565b5f5f8290508073ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610297573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bb919061045f565b915050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102f0826102c7565b9050919050565b610300816102e6565b811461030a575f5ffd5b50565b5f8135905061031b816102f7565b92915050565b5f819050919050565b61033381610321565b811461033d575f5ffd5b50565b5f8135905061034e8161032a565b92915050565b5f5f6040838503121561036a576103696102c3565b5b5f6103778582860161030d565b925050602061038885828601610340565b9150509250929050565b5f61039c826102e6565b9050919050565b6103ac81610392565b81146103b6575f5ffd5b50565b5f813590506103c7816103a3565b92915050565b5f602082840312156103e2576103e16102c3565b5b5f6103ef848285016103b9565b91505092915050565b61040181610321565b82525050565b5f60208201905061041a5f8301846103f8565b92915050565b5f60208284031215610435576104346102c3565b5b5f6104428482850161030d565b91505092915050565b5f815190506104598161032a565b92915050565b5f60208284031215610474576104736102c3565b5b5f6104818482850161044b565b9150509291505056fea26469706673582212206f2a50bed59220094cd6e117d3991bf7528f18e2dd5f94dcb522ec29a8cfb33564736f6c63430008220033","sourceMap":"716:551:63:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c80633004b163146100425780633ca065bb1461005e57806366563e691461008657806394a7b4f4146100c2575b5f5ffd5b61005c60048036038101906100579190610354565b6100fe565b005b348015610069575f5ffd5b50610084600480360381019061007f9190610354565b61016a565b005b348015610091575f5ffd5b506100ac60048036038101906100a791906103cd565b6101d4565b6040516100b99190610407565b60405180910390f35b3480156100cd575f5ffd5b506100e860048036038101906100e39190610420565b610249565b6040516100f59190610407565b60405180910390f35b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa34836040518363ffffffff1660e01b81526004016101389190610407565b5f604051808303818588803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff16634018d9aa826040518263ffffffff1660e01b81526004016101a39190610407565b5f604051808303815f87803b1580156101ba575f5ffd5b505af11580156101cc573d5f5f3e3d5ffd5b505050505050565b5f8173ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610242919061045f565b9050919050565b5f5f8290508073ffffffffffffffffffffffffffffffffffffffff16635197c7aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610297573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bb919061045f565b915050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102f0826102c7565b9050919050565b610300816102e6565b811461030a575f5ffd5b50565b5f8135905061031b816102f7565b92915050565b5f819050919050565b61033381610321565b811461033d575f5ffd5b50565b5f8135905061034e8161032a565b92915050565b5f5f6040838503121561036a576103696102c3565b5b5f6103778582860161030d565b925050602061038885828601610340565b9150509250929050565b5f61039c826102e6565b9050919050565b6103ac81610392565b81146103b6575f5ffd5b50565b5f813590506103c7816103a3565b92915050565b5f602082840312156103e2576103e16102c3565b5b5f6103ef848285016103b9565b91505092915050565b61040181610321565b82525050565b5f60208201905061041a5f8301846103f8565b92915050565b5f60208284031215610435576104346102c3565b5b5f6104428482850161030d565b91505092915050565b5f815190506104598161032a565b92915050565b5f60208284031215610474576104736102c3565b5b5f6104818482850161044b565b9150509291505056fea26469706673582212206f2a50bed59220094cd6e117d3991bf7528f18e2dd5f94dcb522ec29a8cfb33564736f6c63430008220033","sourceMap":"716:551:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;743:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;852:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1119:146;1218:13;1204:33;;;1245:9;1256:1;1204:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:146;;:::o;743:103::-;822:8;808:28;;;837:1;808:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;743:103;;:::o;852:107::-;916:6;937:8;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;933:19;;852:107;;;:::o;965:148::-;1024:6;1041:16;1074:8;1041:42;;1097:2;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1093:13;;1031:82;965:148;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:119::-;1737:7;1766:24;1784:5;1766:24;:::i;:::-;1755:35;;1677:119;;;:::o;1802:168::-;1898:47;1939:5;1898:47;:::i;:::-;1891:5;1888:58;1878:86;;1960:1;1957;1950:12;1878:86;1802:168;:::o;1976:185::-;2045:5;2083:6;2070:20;2061:29;;2099:56;2149:5;2099:56;:::i;:::-;1976:185;;;;:::o;2167:375::-;2249:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:119;;;2304:79;;:::i;:::-;2266:119;2424:1;2449:76;2517:7;2508:6;2497:9;2493:22;2449:76;:::i;:::-;2439:86;;2395:140;2167:375;;;;:::o;2548:118::-;2635:24;2653:5;2635:24;:::i;:::-;2630:3;2623:37;2548:118;;:::o;2672:222::-;2765:4;2803:2;2792:9;2788:18;2780:26;;2816:71;2884:1;2873:9;2869:17;2860:6;2816:71;:::i;:::-;2672:222;;;;:::o;2900:329::-;2959:6;3008:2;2996:9;2987:7;2983:23;2979:32;2976:119;;;3014:79;;:::i;:::-;2976:119;3134:1;3159:53;3204:7;3195:6;3184:9;3180:22;3159:53;:::i;:::-;3149:63;;3105:117;2900:329;;;;:::o;3235:143::-;3292:5;3323:6;3317:13;3308:22;;3339:33;3366:5;3339:33;:::i;:::-;3235:143;;;;:::o;3384:351::-;3454:6;3503:2;3491:9;3482:7;3478:23;3474:32;3471:119;;;3509:79;;:::i;:::-;3471:119;3629:1;3654:64;3710:7;3701:6;3690:9;3686:22;3654:64;:::i;:::-;3644:74;;3600:128;3384:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callGetX(address)":"66563e69","callGetX2(address)":"94a7b4f4","callSetX(address,uint256)":"3ca065bb","setXTransferETH(address,uint256)":"3004b163"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract OtherContract\",\"name\":\"_Address\",\"type\":\"address\"}],\"name\":\"callGetX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_Address\",\"type\":\"address\"}],\"name\":\"callGetX2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_Address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"callSetX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"otherContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setXTransferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/21_CallContract/CallContract.sol\":\"CallContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/21_CallContract/CallContract.sol\":{\"keccak256\":\"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611\",\"dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract OtherContract","name":"_Address","type":"address"}],"stateMutability":"view","type":"function","name":"callGetX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_Address","type":"address"}],"stateMutability":"view","type":"function","name":"callGetX2","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_Address","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"callSetX"},{"inputs":[{"internalType":"address","name":"otherContract","type":"address"},{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setXTransferETH"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/21_CallContract/CallContract.sol":"CallContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/21_CallContract/CallContract.sol":{"keccak256":"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43","urls":["bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611","dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/CallContract.sol/OtherContract.json b/out/CallContract.sol/OtherContract.json index 7b732921..b01d401a 100644 --- a/out/CallContract.sol/OtherContract.json +++ b/out/CallContract.sol/OtherContract.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getX","inputs":[],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setX","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f5f553480156011575f5ffd5b506101e88061001f5f395ff3fe608060405260043610610033575f3560e01c806312065fe0146100375780634018d9aa146100615780635197c7aa1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610119565b60405180910390f35b61007b60048036038101906100769190610160565b6100ae565b005b348015610088575f5ffd5b506100916100f9565b60405161009e9190610119565b60405180910390f35b5f47905090565b805f819055505f3411156100f6577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100ed92919061018b565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011381610101565b82525050565b5f60208201905061012c5f83018461010a565b92915050565b5f5ffd5b61013f81610101565b8114610149575f5ffd5b50565b5f8135905061015a81610136565b92915050565b5f6020828403121561017557610174610132565b5b5f6101828482850161014c565b91505092915050565b5f60408201905061019e5f83018561010a565b6101ab602083018461010a565b939250505056fea2646970667358221220019cb4c153a6d2f7cbfc79202278e777f8f322d117651d255a2cc07c0671147f64736f6c63430008220033","sourceMap":"58:656:67:-:0;;;108:1;87:22;;58:656;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c806312065fe0146100375780634018d9aa146100615780635197c7aa1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610119565b60405180910390f35b61007b60048036038101906100769190610160565b6100ae565b005b348015610088575f5ffd5b506100916100f9565b60405161009e9190610119565b60405180910390f35b5f47905090565b805f819055505f3411156100f6577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100ed92919061018b565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011381610101565b82525050565b5f60208201905061012c5f83018461010a565b92915050565b5f5ffd5b61013f81610101565b8114610149575f5ffd5b50565b5f8135905061015a81610136565b92915050565b5f6020828403121561017557610174610132565b5b5f6101828482850161014c565b91505092915050565b5f60408201905061019e5f83018561010a565b6101ab602083018461010a565b939250505056fea2646970667358221220019cb4c153a6d2f7cbfc79202278e777f8f322d117651d255a2cc07c0671147f64736f6c63430008220033","sourceMap":"58:656:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;430:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;644:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;248:93;290:4;313:21;306:28;;248:93;:::o;430:193::-;486:1;481:2;:6;;;;560:1;548:9;:13;545:72;;;581:25;585:9;596;581:25;;;;;;;:::i;:::-;;;;;;;;545:72;430:193;:::o;644:68::-;682:6;703:2;;699:6;;644:68;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:332::-;1498:4;1536:2;1525:9;1521:18;1513:26;;1549:71;1617:1;1606:9;1602:17;1593:6;1549:71;:::i;:::-;1630:72;1698:2;1687:9;1683:18;1674:6;1630:72;:::i;:::-;1377:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0","getX()":"5197c7aa","setX(uint256)":"4018d9aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/21_CallContract/CallContract.sol\":\"OtherContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/21_CallContract/CallContract.sol\":{\"keccak256\":\"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611\",\"dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/21_CallContract/CallContract.sol":"OtherContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/21_CallContract/CallContract.sol":{"keccak256":"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43","urls":["bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611","dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file +{"abi":[{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getX","inputs":[],"outputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setX","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040525f5f553480156011575f5ffd5b506101e88061001f5f395ff3fe608060405260043610610033575f3560e01c806312065fe0146100375780634018d9aa146100615780635197c7aa1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610119565b60405180910390f35b61007b60048036038101906100769190610160565b6100ae565b005b348015610088575f5ffd5b506100916100f9565b60405161009e9190610119565b60405180910390f35b5f47905090565b805f819055505f3411156100f6577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100ed92919061018b565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011381610101565b82525050565b5f60208201905061012c5f83018461010a565b92915050565b5f5ffd5b61013f81610101565b8114610149575f5ffd5b50565b5f8135905061015a81610136565b92915050565b5f6020828403121561017557610174610132565b5b5f6101828482850161014c565b91505092915050565b5f60408201905061019e5f83018561010a565b6101ab602083018461010a565b939250505056fea2646970667358221220019cb4c153a6d2f7cbfc79202278e777f8f322d117651d255a2cc07c0671147f64736f6c63430008220033","sourceMap":"58:656:63:-:0;;;108:1;87:22;;58:656;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c806312065fe0146100375780634018d9aa146100615780635197c7aa1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610119565b60405180910390f35b61007b60048036038101906100769190610160565b6100ae565b005b348015610088575f5ffd5b506100916100f9565b60405161009e9190610119565b60405180910390f35b5f47905090565b805f819055505f3411156100f6577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a6040516100ed92919061018b565b60405180910390a15b50565b5f5f54905090565b5f819050919050565b61011381610101565b82525050565b5f60208201905061012c5f83018461010a565b92915050565b5f5ffd5b61013f81610101565b8114610149575f5ffd5b50565b5f8135905061015a81610136565b92915050565b5f6020828403121561017557610174610132565b5b5f6101828482850161014c565b91505092915050565b5f60408201905061019e5f83018561010a565b6101ab602083018461010a565b939250505056fea2646970667358221220019cb4c153a6d2f7cbfc79202278e777f8f322d117651d255a2cc07c0671147f64736f6c63430008220033","sourceMap":"58:656:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;430:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;644:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;248:93;290:4;313:21;306:28;;248:93;:::o;430:193::-;486:1;481:2;:6;;;;560:1;548:9;:13;545:72;;;581:25;585:9;596;581:25;;;;;;;:::i;:::-;;;;;;;;545:72;430:193;:::o;644:68::-;682:6;703:2;;699:6;;644:68;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:332::-;1498:4;1536:2;1525:9;1521:18;1513:26;;1549:71;1617:1;1606:9;1602:17;1593:6;1549:71;:::i;:::-;1630:72;1698:2;1687:9;1683:18;1674:6;1630:72;:::i;:::-;1377:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0","getX()":"5197c7aa","setX(uint256)":"4018d9aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"setX\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/21_CallContract/CallContract.sol\":\"OtherContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/21_CallContract/CallContract.sol\":{\"keccak256\":\"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611\",\"dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getX","outputs":[{"internalType":"uint256","name":"x","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/21_CallContract/CallContract.sol":"OtherContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/21_CallContract/CallContract.sol":{"keccak256":"0x549ffc30b9958d8dde7a9e2bfe30bb08bf07c678ad63ccc78a6baca28e5e3d43","urls":["bzz-raw://467e5e03f50419951c8034fcd655c1ba68d6448543522047bdb46292e7ea4611","dweb:/ipfs/QmdyNt1vYiKx2msSnvwpHBAtAhxfLk6VAm9HA7hxzPA6kK"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file diff --git a/out/Centralization.sol/Centralization.json b/out/Centralization.sol/Centralization.json index 4f87a925..b79e06e4 100644 --- a/out/Centralization.sol/Centralization.json +++ b/out/Centralization.sol/Centralization.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600e81526020017f43656e7472616c697a6174696f6e0000000000000000000000000000000000008152506040518060400160405280600481526020017f43656e7400000000000000000000000000000000000000000000000000000000815250816003908161008c91906105b5565b50806004908161009c91906105b5565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161010691906106c3565b60405180910390fd5b61011e8161014c60201b60201c565b505f73e16c1623c1aa7d919cd2241d8b36d9e79c1be2a290506101468161020f60201b60201c565b506106dc565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61021d61029f60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361028d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161028491906106c3565b60405180910390fd5b61029c8161014c60201b60201c565b50565b6102ad61033860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166102d161033f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610336576102fa61033860201b60201c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161032d91906106c3565b60405180910390fd5b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103e257607f821691505b6020821081036103f5576103f461039e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261041c565b610461868361041c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104a56104a061049b84610479565b610482565b610479565b9050919050565b5f819050919050565b6104be8361048b565b6104d26104ca826104ac565b848454610428565b825550505050565b5f5f905090565b6104e96104da565b6104f48184846104b5565b505050565b5f5b8281101561051a5761050f5f8284016104e1565b6001810190506104fb565b505050565b601f82111561056d578282111561056c57610539816103fb565b6105428361040d565b61054b8561040d565b6020861015610558575f90505b808301610567828403826104f9565b505050505b5b505050565b5f82821c905092915050565b5f61058d5f1984600802610572565b1980831691505092915050565b5f6105a5838361057e565b9150826002028217905092915050565b6105be82610367565b67ffffffffffffffff8111156105d7576105d6610371565b5b6105e182546103cb565b6105ec82828561051f565b5f60209050601f83116001811461061d575f841561060b578287015190505b610615858261059a565b86555061067c565b601f19841661062b866103fb565b5f5b828110156106525784890151825560018201915060208501945060208101905061062d565b8683101561066f578489015161066b601f89168261057e565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ad82610684565b9050919050565b6106bd816106a3565b82525050565b5f6020820190506106d65f8301846106b4565b92915050565b61111c806106e95f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806340c10f191461018b575b5f5ffd5b6100d9610299565b6040516100e69190610d95565b60405180910390f35b61010960048036038101906101049190610e46565b610329565b6040516101169190610e9e565b60405180910390f35b61012761034b565b6040516101349190610ec6565b60405180910390f35b61015760048036038101906101529190610edf565b610354565b6040516101649190610e9e565b60405180910390f35b610175610382565b6040516101829190610f4a565b60405180910390f35b6101a560048036038101906101a09190610e46565b61038a565b005b6101c160048036038101906101bc9190610f63565b6103a0565b6040516101ce9190610ec6565b60405180910390f35b6101df6103e5565b005b6101e96103f8565b6040516101f69190610f9d565b60405180910390f35b610207610420565b6040516102149190610d95565b60405180910390f35b61023760048036038101906102329190610e46565b6104b0565b6040516102449190610e9e565b60405180910390f35b61026760048036038101906102629190610fb6565b6104d2565b6040516102749190610ec6565b60405180910390f35b61029760048036038101906102929190610f63565b610554565b005b6060600380546102a890611021565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490611021565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f5f6103336105d8565b90506103408185856105df565b600191505092915050565b5f600254905090565b5f5f61035e6105d8565b905061036b8582856105f1565b610376858585610684565b60019150509392505050565b5f6012905090565b610392610774565b61039c82826107fb565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103ed610774565b6103f65f61087a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461042f90611021565b80601f016020809104026020016040519081016040528092919081815260200182805461045b90611021565b80156104a65780601f1061047d576101008083540402835291602001916104a6565b820191905f5260205f20905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b5f5f6104ba6105d8565b90506104c7818585610684565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61055c610774565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105cc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105c39190610f9d565b60405180910390fd5b6105d58161087a565b50565b5f33905090565b6105ec838383600161093d565b505050565b5f6105fc84846104d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561067e578181101561066f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161066693929190611051565b60405180910390fd5b61067d84848484035f61093d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106eb9190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610764575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161075b9190610f9d565b60405180910390fd5b61076f838383610b0c565b505050565b61077c6105d8565b73ffffffffffffffffffffffffffffffffffffffff1661079a6103f8565b73ffffffffffffffffffffffffffffffffffffffff16146107f9576107bd6105d8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107f09190610f9d565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086b575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108629190610f9d565b60405180910390fd5b6108765f8383610b0c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109ad575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109a49190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a149190610f9d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b06578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610afd9190610ec6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c578060025f828254610b5091906110b3565b92505081905550610c2a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610be5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610bdc93929190611051565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71578060025f8282540392505081905550610cbb565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d189190610ec6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d6782610d25565b610d718185610d2f565b9350610d81818560208601610d3f565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f5ffd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f5ffd5b50565b5f81359050610e4081610e1c565b92915050565b5f5f60408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f5f5f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f5f60408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b5f6060820190506110645f830186610f8e565b6110716020830185610eb7565b61107e6040830184610eb7565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110bd82610e13565b91506110c883610e13565b92508282019050808211156110e0576110df611086565b5b9291505056fea2646970667358221220c6967e40dc794c9b21dcb0684fcca7d4daeead6827f20640d2b9e7b8ab6ef57964736f6c63430008220033","sourceMap":"168:343:129:-:0;;;216:193;;;;;;;;;;270:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;292:22:129::2;317:42;292:67;;369:33;387:14;369:17;;;:33;;:::i;:::-;282:127;168:343:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2543:215::-;1531:13;:11;;;:13;;:::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;;;:28;;:::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;;;:12;;:::i;:::-;1855:23;;:7;:5;;;:7;;:::i;:::-;:23;;;1851:101;;1928:12;:10;;;:12;;:::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;168:343:129:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806340c10f191461018b575b5f5ffd5b6100d9610299565b6040516100e69190610d95565b60405180910390f35b61010960048036038101906101049190610e46565b610329565b6040516101169190610e9e565b60405180910390f35b61012761034b565b6040516101349190610ec6565b60405180910390f35b61015760048036038101906101529190610edf565b610354565b6040516101649190610e9e565b60405180910390f35b610175610382565b6040516101829190610f4a565b60405180910390f35b6101a560048036038101906101a09190610e46565b61038a565b005b6101c160048036038101906101bc9190610f63565b6103a0565b6040516101ce9190610ec6565b60405180910390f35b6101df6103e5565b005b6101e96103f8565b6040516101f69190610f9d565b60405180910390f35b610207610420565b6040516102149190610d95565b60405180910390f35b61023760048036038101906102329190610e46565b6104b0565b6040516102449190610e9e565b60405180910390f35b61026760048036038101906102629190610fb6565b6104d2565b6040516102749190610ec6565b60405180910390f35b61029760048036038101906102929190610f63565b610554565b005b6060600380546102a890611021565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490611021565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f5f6103336105d8565b90506103408185856105df565b600191505092915050565b5f600254905090565b5f5f61035e6105d8565b905061036b8582856105f1565b610376858585610684565b60019150509392505050565b5f6012905090565b610392610774565b61039c82826107fb565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103ed610774565b6103f65f61087a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461042f90611021565b80601f016020809104026020016040519081016040528092919081815260200182805461045b90611021565b80156104a65780601f1061047d576101008083540402835291602001916104a6565b820191905f5260205f20905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b5f5f6104ba6105d8565b90506104c7818585610684565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61055c610774565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105cc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105c39190610f9d565b60405180910390fd5b6105d58161087a565b50565b5f33905090565b6105ec838383600161093d565b505050565b5f6105fc84846104d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561067e578181101561066f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161066693929190611051565b60405180910390fd5b61067d84848484035f61093d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106eb9190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610764575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161075b9190610f9d565b60405180910390fd5b61076f838383610b0c565b505050565b61077c6105d8565b73ffffffffffffffffffffffffffffffffffffffff1661079a6103f8565b73ffffffffffffffffffffffffffffffffffffffff16146107f9576107bd6105d8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107f09190610f9d565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086b575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108629190610f9d565b60405180910390fd5b6108765f8383610b0c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109ad575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109a49190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a149190610f9d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b06578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610afd9190610ec6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c578060025f828254610b5091906110b3565b92505081905550610c2a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610be5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610bdc93929190611051565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71578060025f8282540392505081905550610cbb565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d189190610ec6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d6782610d25565b610d718185610d2f565b9350610d81818560208601610d3f565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f5ffd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f5ffd5b50565b5f81359050610e4081610e1c565b92915050565b5f5f60408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f5f5f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f5f60408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b5f6060820190506110645f830186610f8e565b6110716020830185610eb7565b61107e6040830184610eb7565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110bd82610e13565b91506110c883610e13565b92508282019050808211156110e0576110df611086565b5b9291505056fea2646970667358221220c6967e40dc794c9b21dcb0684fcca7d4daeead6827f20640d2b9e7b8ab6ef57964736f6c63430008220033","sourceMap":"168:343:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;415:94:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;415:94:129:-;1531:13:19;:11;:13::i;:::-;485:17:129::1;491:2;495:6;485:5;:17::i;:::-;415:94:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S03_Centralization/Centralization.sol\":\"Centralization\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S03_Centralization/Centralization.sol\":{\"keccak256\":\"0x89db32c98926ca44915bf424ee6e64d4aa576cd1f298779c9526f3f19f52f5f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca571cf4d2872e91bc8e891172ee052cc4cd0e6e681fbff4101b4f2bd314cc7c\",\"dweb:/ipfs/QmdNjLGJ7ZN7WerjwSdPoRsW2J6Xyc71YLaj4JKJdfWzkh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S03_Centralization/Centralization.sol":"Centralization"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S03_Centralization/Centralization.sol":{"keccak256":"0x89db32c98926ca44915bf424ee6e64d4aa576cd1f298779c9526f3f19f52f5f6","urls":["bzz-raw://ca571cf4d2872e91bc8e891172ee052cc4cd0e6e681fbff4101b4f2bd314cc7c","dweb:/ipfs/QmdNjLGJ7ZN7WerjwSdPoRsW2J6Xyc71YLaj4JKJdfWzkh"],"license":"MIT"}},"version":1},"id":129} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600e81526020017f43656e7472616c697a6174696f6e0000000000000000000000000000000000008152506040518060400160405280600481526020017f43656e7400000000000000000000000000000000000000000000000000000000815250816003908161008c91906105b5565b50806004908161009c91906105b5565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161010691906106c3565b60405180910390fd5b61011e8161014c60201b60201c565b505f73e16c1623c1aa7d919cd2241d8b36d9e79c1be2a290506101468161020f60201b60201c565b506106dc565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61021d61029f60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361028d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161028491906106c3565b60405180910390fd5b61029c8161014c60201b60201c565b50565b6102ad61033860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166102d161033f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610336576102fa61033860201b60201c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161032d91906106c3565b60405180910390fd5b565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103e257607f821691505b6020821081036103f5576103f461039e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261041c565b610461868361041c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104a56104a061049b84610479565b610482565b610479565b9050919050565b5f819050919050565b6104be8361048b565b6104d26104ca826104ac565b848454610428565b825550505050565b5f5f905090565b6104e96104da565b6104f48184846104b5565b505050565b5f5b8281101561051a5761050f5f8284016104e1565b6001810190506104fb565b505050565b601f82111561056d578282111561056c57610539816103fb565b6105428361040d565b61054b8561040d565b6020861015610558575f90505b808301610567828403826104f9565b505050505b5b505050565b5f82821c905092915050565b5f61058d5f1984600802610572565b1980831691505092915050565b5f6105a5838361057e565b9150826002028217905092915050565b6105be82610367565b67ffffffffffffffff8111156105d7576105d6610371565b5b6105e182546103cb565b6105ec82828561051f565b5f60209050601f83116001811461061d575f841561060b578287015190505b610615858261059a565b86555061067c565b601f19841661062b866103fb565b5f5b828110156106525784890151825560018201915060208501945060208101905061062d565b8683101561066f578489015161066b601f89168261057e565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106ad82610684565b9050919050565b6106bd816106a3565b82525050565b5f6020820190506106d65f8301846106b4565b92915050565b61111c806106e95f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806340c10f191461018b575b5f5ffd5b6100d9610299565b6040516100e69190610d95565b60405180910390f35b61010960048036038101906101049190610e46565b610329565b6040516101169190610e9e565b60405180910390f35b61012761034b565b6040516101349190610ec6565b60405180910390f35b61015760048036038101906101529190610edf565b610354565b6040516101649190610e9e565b60405180910390f35b610175610382565b6040516101829190610f4a565b60405180910390f35b6101a560048036038101906101a09190610e46565b61038a565b005b6101c160048036038101906101bc9190610f63565b6103a0565b6040516101ce9190610ec6565b60405180910390f35b6101df6103e5565b005b6101e96103f8565b6040516101f69190610f9d565b60405180910390f35b610207610420565b6040516102149190610d95565b60405180910390f35b61023760048036038101906102329190610e46565b6104b0565b6040516102449190610e9e565b60405180910390f35b61026760048036038101906102629190610fb6565b6104d2565b6040516102749190610ec6565b60405180910390f35b61029760048036038101906102929190610f63565b610554565b005b6060600380546102a890611021565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490611021565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f5f6103336105d8565b90506103408185856105df565b600191505092915050565b5f600254905090565b5f5f61035e6105d8565b905061036b8582856105f1565b610376858585610684565b60019150509392505050565b5f6012905090565b610392610774565b61039c82826107fb565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103ed610774565b6103f65f61087a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461042f90611021565b80601f016020809104026020016040519081016040528092919081815260200182805461045b90611021565b80156104a65780601f1061047d576101008083540402835291602001916104a6565b820191905f5260205f20905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b5f5f6104ba6105d8565b90506104c7818585610684565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61055c610774565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105cc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105c39190610f9d565b60405180910390fd5b6105d58161087a565b50565b5f33905090565b6105ec838383600161093d565b505050565b5f6105fc84846104d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561067e578181101561066f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161066693929190611051565b60405180910390fd5b61067d84848484035f61093d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106eb9190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610764575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161075b9190610f9d565b60405180910390fd5b61076f838383610b0c565b505050565b61077c6105d8565b73ffffffffffffffffffffffffffffffffffffffff1661079a6103f8565b73ffffffffffffffffffffffffffffffffffffffff16146107f9576107bd6105d8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107f09190610f9d565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086b575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108629190610f9d565b60405180910390fd5b6108765f8383610b0c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109ad575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109a49190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a149190610f9d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b06578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610afd9190610ec6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c578060025f828254610b5091906110b3565b92505081905550610c2a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610be5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610bdc93929190611051565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71578060025f8282540392505081905550610cbb565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d189190610ec6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d6782610d25565b610d718185610d2f565b9350610d81818560208601610d3f565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f5ffd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f5ffd5b50565b5f81359050610e4081610e1c565b92915050565b5f5f60408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f5f5f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f5f60408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b5f6060820190506110645f830186610f8e565b6110716020830185610eb7565b61107e6040830184610eb7565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110bd82610e13565b91506110c883610e13565b92508282019050808211156110e0576110df611086565b5b9291505056fea2646970667358221220c6967e40dc794c9b21dcb0684fcca7d4daeead6827f20640d2b9e7b8ab6ef57964736f6c63430008220033","sourceMap":"168:343:123:-:0;;;216:193;;;;;;;;;;270:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;292:22:123::2;317:42;292:67;;369:33;387:14;369:17;;;:33;;:::i;:::-;282:127;168:343:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;2543:215::-;1531:13;:11;;;:13;;:::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;;;:28;;:::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;;;:12;;:::i;:::-;1855:23;;:7;:5;;;:7;;:::i;:::-;:23;;;1851:101;;1928:12;:10;;;:12;;:::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;168:343:123:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806340c10f191461018b575b5f5ffd5b6100d9610299565b6040516100e69190610d95565b60405180910390f35b61010960048036038101906101049190610e46565b610329565b6040516101169190610e9e565b60405180910390f35b61012761034b565b6040516101349190610ec6565b60405180910390f35b61015760048036038101906101529190610edf565b610354565b6040516101649190610e9e565b60405180910390f35b610175610382565b6040516101829190610f4a565b60405180910390f35b6101a560048036038101906101a09190610e46565b61038a565b005b6101c160048036038101906101bc9190610f63565b6103a0565b6040516101ce9190610ec6565b60405180910390f35b6101df6103e5565b005b6101e96103f8565b6040516101f69190610f9d565b60405180910390f35b610207610420565b6040516102149190610d95565b60405180910390f35b61023760048036038101906102329190610e46565b6104b0565b6040516102449190610e9e565b60405180910390f35b61026760048036038101906102629190610fb6565b6104d2565b6040516102749190610ec6565b60405180910390f35b61029760048036038101906102929190610f63565b610554565b005b6060600380546102a890611021565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490611021565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f5f6103336105d8565b90506103408185856105df565b600191505092915050565b5f600254905090565b5f5f61035e6105d8565b905061036b8582856105f1565b610376858585610684565b60019150509392505050565b5f6012905090565b610392610774565b61039c82826107fb565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103ed610774565b6103f65f61087a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461042f90611021565b80601f016020809104026020016040519081016040528092919081815260200182805461045b90611021565b80156104a65780601f1061047d576101008083540402835291602001916104a6565b820191905f5260205f20905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b5f5f6104ba6105d8565b90506104c7818585610684565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61055c610774565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105cc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105c39190610f9d565b60405180910390fd5b6105d58161087a565b50565b5f33905090565b6105ec838383600161093d565b505050565b5f6105fc84846104d2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561067e578181101561066f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161066693929190611051565b60405180910390fd5b61067d84848484035f61093d565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106f4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106eb9190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610764575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161075b9190610f9d565b60405180910390fd5b61076f838383610b0c565b505050565b61077c6105d8565b73ffffffffffffffffffffffffffffffffffffffff1661079a6103f8565b73ffffffffffffffffffffffffffffffffffffffff16146107f9576107bd6105d8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107f09190610f9d565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361086b575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108629190610f9d565b60405180910390fd5b6108765f8383610b0c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109ad575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109a49190610f9d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a1d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a149190610f9d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b06578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610afd9190610ec6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5c578060025f828254610b5091906110b3565b92505081905550610c2a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610be5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610bdc93929190611051565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c71578060025f8282540392505081905550610cbb565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d189190610ec6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610d6782610d25565b610d718185610d2f565b9350610d81818560208601610d3f565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f5ffd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f5ffd5b50565b5f81359050610e4081610e1c565b92915050565b5f5f60408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f5f5f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f5f60408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b5f6060820190506110645f830186610f8e565b6110716020830185610eb7565b61107e6040830184610eb7565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110bd82610e13565b91506110c883610e13565b92508282019050808211156110e0576110df611086565b5b9291505056fea2646970667358221220c6967e40dc794c9b21dcb0684fcca7d4daeead6827f20640d2b9e7b8ab6ef57964736f6c63430008220033","sourceMap":"168:343:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;415:94:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;415:94:123:-;1531:13:19;:11;:13::i;:::-;485:17:123::1;491:2;495:6;485:5;:17::i;:::-;415:94:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S03_Centralization/Centralization.sol\":\"Centralization\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S03_Centralization/Centralization.sol\":{\"keccak256\":\"0x89db32c98926ca44915bf424ee6e64d4aa576cd1f298779c9526f3f19f52f5f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca571cf4d2872e91bc8e891172ee052cc4cd0e6e681fbff4101b4f2bd314cc7c\",\"dweb:/ipfs/QmdNjLGJ7ZN7WerjwSdPoRsW2J6Xyc71YLaj4JKJdfWzkh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S03_Centralization/Centralization.sol":"Centralization"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S03_Centralization/Centralization.sol":{"keccak256":"0x89db32c98926ca44915bf424ee6e64d4aa576cd1f298779c9526f3f19f52f5f6","urls":["bzz-raw://ca571cf4d2872e91bc8e891172ee052cc4cd0e6e681fbff4101b4f2bd314cc7c","dweb:/ipfs/QmdNjLGJ7ZN7WerjwSdPoRsW2J6Xyc71YLaj4JKJdfWzkh"],"license":"MIT"}},"version":1},"id":123} \ No newline at end of file diff --git a/out/Constant.sol/Constant.json b/out/Constant.sol/Constant.json index 75a7ae97..29c2acdd 100644 --- a/out/Constant.sol/Constant.json +++ b/out/Constant.sol/Constant.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"CONSTANT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_NUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_STRING","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_BLOCK","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_NUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_TEST","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"test","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6101006040526402540be3ff60809081525034801561001c575f5ffd5b503073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505061045e6080818152505061006961007560201b60201c565b60e08181525050610082565b5f5f600990508091505090565b60805160a05160c05160e05161047c6100b55f395f61020701525f6101de01525f61028c01525f610268015261047c5ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c806379135c7d1161006457806379135c7d1461010d578063858e04031461012b578063ed7ff87514610149578063f151302114610167578063f8a8fd6d1461018557610091565b80631adead50146100955780631d9afdd2146100b35780632314d48c146100d15780634064572e146100ef575b5f5ffd5b61009d6101a3565b6040516100aa919061032b565b60405180910390f35b6100bb6101dc565b6040516100c89190610363565b60405180910390f35b6100d9610200565b6040516100e69190610363565b60405180910390f35b6100f7610205565b6040516101049190610363565b60405180910390f35b610115610229565b60405161012291906103ce565b60405180910390f35b610133610262565b604051610140919061042d565b60405180910390f35b610151610266565b60405161015e9190610363565b60405180910390f35b61016f61028a565b60405161017c919061042d565b60405180910390f35b61018d6102ae565b60405161019a9190610363565b60405180910390f35b6040518060400160405280600481526020017f307841410000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040518060400160405280600381526020017f575446000000000000000000000000000000000000000000000000000000000081525081565b5f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f600990508091505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102fd826102bb565b61030781856102c5565b93506103178185602086016102d5565b610320816102e3565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b5f819050919050565b61035d8161034b565b82525050565b5f6020820190506103765f830184610354565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6103a08261037c565b6103aa8185610386565b93506103ba8185602086016102d5565b6103c3816102e3565b840191505092915050565b5f6020820190508181035f8301526103e68184610396565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610417826103ee565b9050919050565b6104278161040d565b82525050565b5f6020820190506104405f83018461041e565b9291505056fea264697066735822122065c89241d6807f4340cc0cca58933e59f9156a0bc5600f9876ac7297219477b864736f6c63430008220033","sourceMap":"57:918:52:-:0;;;516:10;475:51;;;;;742:126;;;;;;;;;;793:4;765:33;;;;;;;;;;824:4;808:20;;;;;;855:6;:4;;;:6;;:::i;:::-;838:23;;;;;;57:918;;874:99;910:7;928:12;943:1;928:16;;961:4;954:12;;;874:99;:::o;57:918::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610091575f3560e01c806379135c7d1161006457806379135c7d1461010d578063858e04031461012b578063ed7ff87514610149578063f151302114610167578063f8a8fd6d1461018557610091565b80631adead50146100955780631d9afdd2146100b35780632314d48c146100d15780634064572e146100ef575b5f5ffd5b61009d6101a3565b6040516100aa919061032b565b60405180910390f35b6100bb6101dc565b6040516100c89190610363565b60405180910390f35b6100d9610200565b6040516100e69190610363565b60405180910390f35b6100f7610205565b6040516101049190610363565b60405180910390f35b610115610229565b60405161012291906103ce565b60405180910390f35b610133610262565b604051610140919061042d565b60405180910390f35b610151610266565b60405161015e9190610363565b60405180910390f35b61016f61028a565b60405161017c919061042d565b60405180910390f35b61018d6102ae565b60405161019a9190610363565b60405180910390f35b6040518060400160405280600481526020017f307841410000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040518060400160405280600381526020017f575446000000000000000000000000000000000000000000000000000000000081525081565b5f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f600990508091505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102fd826102bb565b61030781856102c5565b93506103178185602086016102d5565b610320816102e3565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b5f819050919050565b61035d8161034b565b82525050565b5f6020820190506103765f830184610354565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6103a08261037c565b6103aa8185610386565b93506103ba8185602086016102d5565b6103c3816102e3565b840191505092915050565b5f6020820190508181035f8301526103e68184610396565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610417826103ee565b9050919050565b6104278161040d565b82525050565b5f6020820190506104405f83018461041e565b9291505056fea264697066735822122065c89241d6807f4340cc0cca58933e59f9156a0bc5600f9876ac7297219477b864736f6c63430008220033","sourceMap":"57:918:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;204:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;157:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;626:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;257:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;307:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;475:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;532:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:47;;;;;;;;;;;;;;;;;;;:::o;580:40::-;;;:::o;157:41::-;196:2;157:41;:::o;626:39::-;;;:::o;257:44::-;;;;;;;;;;;;;;;;;;;:::o;307:85::-;350:42;307:85;:::o;475:51::-;;;:::o;532:42::-;;;:::o;874:99::-;910:7;928:12;943:1;928:16;;961:4;954:12;;;874:99;:::o;7::145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:77::-;1279:7;1308:5;1297:16;;1242:77;;;:::o;1325:118::-;1412:24;1430:5;1412:24;:::i;:::-;1407:3;1400:37;1325:118;;:::o;1449:222::-;1542:4;1580:2;1569:9;1565:18;1557:26;;1593:71;1661:1;1650:9;1646:17;1637:6;1593:71;:::i;:::-;1449:222;;;;:::o;1677:98::-;1728:6;1762:5;1756:12;1746:22;;1677:98;;;:::o;1781:168::-;1864:11;1898:6;1893:3;1886:19;1938:4;1933:3;1929:14;1914:29;;1781:168;;;;:::o;1955:373::-;2041:3;2069:38;2101:5;2069:38;:::i;:::-;2123:70;2186:6;2181:3;2123:70;:::i;:::-;2116:77;;2202:65;2260:6;2255:3;2248:4;2241:5;2237:16;2202:65;:::i;:::-;2292:29;2314:6;2292:29;:::i;:::-;2287:3;2283:39;2276:46;;2045:283;1955:373;;;;:::o;2334:309::-;2445:4;2483:2;2472:9;2468:18;2460:26;;2532:9;2526:4;2522:20;2518:1;2507:9;2503:17;2496:47;2560:76;2631:4;2622:6;2560:76;:::i;:::-;2552:84;;2334:309;;;;:::o;2649:126::-;2686:7;2726:42;2719:5;2715:54;2704:65;;2649:126;;;:::o;2781:96::-;2818:7;2847:24;2865:5;2847:24;:::i;:::-;2836:35;;2781:96;;;:::o;2883:118::-;2970:24;2988:5;2970:24;:::i;:::-;2965:3;2958:37;2883:118;;:::o;3007:222::-;3100:4;3138:2;3127:9;3123:18;3115:26;;3151:71;3219:1;3208:9;3204:17;3195:6;3151:71;:::i;:::-;3007:222;;;;:::o","linkReferences":{},"immutableReferences":{"50159":[{"start":616,"length":32}],"50161":[{"start":652,"length":32}],"50163":[{"start":478,"length":32}],"50165":[{"start":519,"length":32}]}},"methodIdentifiers":{"CONSTANT_ADDRESS()":"858e0403","CONSTANT_BYTES()":"79135c7d","CONSTANT_NUM()":"2314d48c","CONSTANT_STRING()":"1adead50","IMMUTABLE_ADDRESS()":"f1513021","IMMUTABLE_BLOCK()":"1d9afdd2","IMMUTABLE_NUM()":"ed7ff875","IMMUTABLE_TEST()":"4064572e","test()":"f8a8fd6d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CONSTANT_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_NUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_STRING\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_BLOCK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_NUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_TEST\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/09_Constant/Constant.sol\":\"Constant\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/09_Constant/Constant.sol\":{\"keccak256\":\"0xf39bb002cc9e584eb25ce05a142896038eeb30d21322d5869fb623607ef91b08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ec5c63bc318cd509cb8a7c597da90d3d054029dbd3214fae1a46ec858583670\",\"dweb:/ipfs/QmQgaBtWCUCw7oV31Y5KeobbWM52quJBQnrEkVCCBVe8Sc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_NUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_STRING","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_BLOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_NUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_TEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"test","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/09_Constant/Constant.sol":"Constant"},"evmVersion":"prague","libraries":{}},"sources":{"src/09_Constant/Constant.sol":{"keccak256":"0xf39bb002cc9e584eb25ce05a142896038eeb30d21322d5869fb623607ef91b08","urls":["bzz-raw://9ec5c63bc318cd509cb8a7c597da90d3d054029dbd3214fae1a46ec858583670","dweb:/ipfs/QmQgaBtWCUCw7oV31Y5KeobbWM52quJBQnrEkVCCBVe8Sc"],"license":"MIT"}},"version":1},"id":52} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"CONSTANT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_NUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"CONSTANT_STRING","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_BLOCK","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_NUM","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"IMMUTABLE_TEST","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"test","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6101006040526402540be3ff60809081525034801561001c575f5ffd5b503073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505061045e6080818152505061006961007560201b60201c565b60e08181525050610082565b5f5f600990508091505090565b60805160a05160c05160e05161047c6100b55f395f61020701525f6101de01525f61028c01525f610268015261047c5ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c806379135c7d1161006457806379135c7d1461010d578063858e04031461012b578063ed7ff87514610149578063f151302114610167578063f8a8fd6d1461018557610091565b80631adead50146100955780631d9afdd2146100b35780632314d48c146100d15780634064572e146100ef575b5f5ffd5b61009d6101a3565b6040516100aa919061032b565b60405180910390f35b6100bb6101dc565b6040516100c89190610363565b60405180910390f35b6100d9610200565b6040516100e69190610363565b60405180910390f35b6100f7610205565b6040516101049190610363565b60405180910390f35b610115610229565b60405161012291906103ce565b60405180910390f35b610133610262565b604051610140919061042d565b60405180910390f35b610151610266565b60405161015e9190610363565b60405180910390f35b61016f61028a565b60405161017c919061042d565b60405180910390f35b61018d6102ae565b60405161019a9190610363565b60405180910390f35b6040518060400160405280600481526020017f307841410000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040518060400160405280600381526020017f575446000000000000000000000000000000000000000000000000000000000081525081565b5f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f600990508091505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102fd826102bb565b61030781856102c5565b93506103178185602086016102d5565b610320816102e3565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b5f819050919050565b61035d8161034b565b82525050565b5f6020820190506103765f830184610354565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6103a08261037c565b6103aa8185610386565b93506103ba8185602086016102d5565b6103c3816102e3565b840191505092915050565b5f6020820190508181035f8301526103e68184610396565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610417826103ee565b9050919050565b6104278161040d565b82525050565b5f6020820190506104405f83018461041e565b9291505056fea264697066735822122065c89241d6807f4340cc0cca58933e59f9156a0bc5600f9876ac7297219477b864736f6c63430008220033","sourceMap":"57:918:52:-:0;;;516:10;475:51;;;;;742:126;;;;;;;;;;793:4;765:33;;;;;;;;;;824:4;808:20;;;;;;855:6;:4;;;:6;;:::i;:::-;838:23;;;;;;57:918;;874:99;910:7;928:12;943:1;928:16;;961:4;954:12;;;874:99;:::o;57:918::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610091575f3560e01c806379135c7d1161006457806379135c7d1461010d578063858e04031461012b578063ed7ff87514610149578063f151302114610167578063f8a8fd6d1461018557610091565b80631adead50146100955780631d9afdd2146100b35780632314d48c146100d15780634064572e146100ef575b5f5ffd5b61009d6101a3565b6040516100aa919061032b565b60405180910390f35b6100bb6101dc565b6040516100c89190610363565b60405180910390f35b6100d9610200565b6040516100e69190610363565b60405180910390f35b6100f7610205565b6040516101049190610363565b60405180910390f35b610115610229565b60405161012291906103ce565b60405180910390f35b610133610262565b604051610140919061042d565b60405180910390f35b610151610266565b60405161015e9190610363565b60405180910390f35b61016f61028a565b60405161017c919061042d565b60405180910390f35b61018d6102ae565b60405161019a9190610363565b60405180910390f35b6040518060400160405280600481526020017f307841410000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a81565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040518060400160405280600381526020017f575446000000000000000000000000000000000000000000000000000000000081525081565b5f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f600990508091505090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102fd826102bb565b61030781856102c5565b93506103178185602086016102d5565b610320816102e3565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b5f819050919050565b61035d8161034b565b82525050565b5f6020820190506103765f830184610354565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f6103a08261037c565b6103aa8185610386565b93506103ba8185602086016102d5565b6103c3816102e3565b840191505092915050565b5f6020820190508181035f8301526103e68184610396565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610417826103ee565b9050919050565b6104278161040d565b82525050565b5f6020820190506104405f83018461041e565b9291505056fea264697066735822122065c89241d6807f4340cc0cca58933e59f9156a0bc5600f9876ac7297219477b864736f6c63430008220033","sourceMap":"57:918:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;204:47;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;157:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;626:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;257:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;307:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;475:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;532:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:47;;;;;;;;;;;;;;;;;;;:::o;580:40::-;;;:::o;157:41::-;196:2;157:41;:::o;626:39::-;;;:::o;257:44::-;;;;;;;;;;;;;;;;;;;:::o;307:85::-;350:42;307:85;:::o;475:51::-;;;:::o;532:42::-;;;:::o;874:99::-;910:7;928:12;943:1;928:16;;961:4;954:12;;;874:99;:::o;7::139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:77::-;1279:7;1308:5;1297:16;;1242:77;;;:::o;1325:118::-;1412:24;1430:5;1412:24;:::i;:::-;1407:3;1400:37;1325:118;;:::o;1449:222::-;1542:4;1580:2;1569:9;1565:18;1557:26;;1593:71;1661:1;1650:9;1646:17;1637:6;1593:71;:::i;:::-;1449:222;;;;:::o;1677:98::-;1728:6;1762:5;1756:12;1746:22;;1677:98;;;:::o;1781:168::-;1864:11;1898:6;1893:3;1886:19;1938:4;1933:3;1929:14;1914:29;;1781:168;;;;:::o;1955:373::-;2041:3;2069:38;2101:5;2069:38;:::i;:::-;2123:70;2186:6;2181:3;2123:70;:::i;:::-;2116:77;;2202:65;2260:6;2255:3;2248:4;2241:5;2237:16;2202:65;:::i;:::-;2292:29;2314:6;2292:29;:::i;:::-;2287:3;2283:39;2276:46;;2045:283;1955:373;;;;:::o;2334:309::-;2445:4;2483:2;2472:9;2468:18;2460:26;;2532:9;2526:4;2522:20;2518:1;2507:9;2503:17;2496:47;2560:76;2631:4;2622:6;2560:76;:::i;:::-;2552:84;;2334:309;;;;:::o;2649:126::-;2686:7;2726:42;2719:5;2715:54;2704:65;;2649:126;;;:::o;2781:96::-;2818:7;2847:24;2865:5;2847:24;:::i;:::-;2836:35;;2781:96;;;:::o;2883:118::-;2970:24;2988:5;2970:24;:::i;:::-;2965:3;2958:37;2883:118;;:::o;3007:222::-;3100:4;3138:2;3127:9;3123:18;3115:26;;3151:71;3219:1;3208:9;3204:17;3195:6;3151:71;:::i;:::-;3007:222;;;;:::o","linkReferences":{},"immutableReferences":{"50159":[{"start":616,"length":32}],"50161":[{"start":652,"length":32}],"50163":[{"start":478,"length":32}],"50165":[{"start":519,"length":32}]}},"methodIdentifiers":{"CONSTANT_ADDRESS()":"858e0403","CONSTANT_BYTES()":"79135c7d","CONSTANT_NUM()":"2314d48c","CONSTANT_STRING()":"1adead50","IMMUTABLE_ADDRESS()":"f1513021","IMMUTABLE_BLOCK()":"1d9afdd2","IMMUTABLE_NUM()":"ed7ff875","IMMUTABLE_TEST()":"4064572e","test()":"f8a8fd6d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CONSTANT_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_NUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONSTANT_STRING\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_BLOCK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_NUM\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMMUTABLE_TEST\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/09_Constant/Constant.sol\":\"Constant\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/09_Constant/Constant.sol\":{\"keccak256\":\"0xf39bb002cc9e584eb25ce05a142896038eeb30d21322d5869fb623607ef91b08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ec5c63bc318cd509cb8a7c597da90d3d054029dbd3214fae1a46ec858583670\",\"dweb:/ipfs/QmQgaBtWCUCw7oV31Y5KeobbWM52quJBQnrEkVCCBVe8Sc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_NUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONSTANT_STRING","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_BLOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_NUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IMMUTABLE_TEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"test","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/09_Constant/Constant.sol":"Constant"},"evmVersion":"prague","libraries":{}},"sources":{"src/09_Constant/Constant.sol":{"keccak256":"0xf39bb002cc9e584eb25ce05a142896038eeb30d21322d5869fb623607ef91b08","urls":["bzz-raw://9ec5c63bc318cd509cb8a7c597da90d3d054029dbd3214fae1a46ec858583670","dweb:/ipfs/QmQgaBtWCUCw7oV31Y5KeobbWM52quJBQnrEkVCCBVe8Sc"],"license":"MIT"}},"version":1},"id":52} \ No newline at end of file diff --git a/out/ContractCheck.sol/ContractCheck.json b/out/ContractCheck.sol/ContractCheck.json index 29f52c8c..673c4950 100644 --- a/out/ContractCheck.sol/ContractCheck.json +++ b/out/ContractCheck.sol/ContractCheck.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isContract","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250816003908161003d91906102a3565b50806004908161004d91906102a3565b505050610372565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d057607f821691505b6020821081036100e3576100e261008c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010a565b61014f868361010a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019361018e61018984610167565b610170565b610167565b9050919050565b5f819050919050565b6101ac83610179565b6101c06101b88261019a565b848454610116565b825550505050565b5f5f905090565b6101d76101c8565b6101e28184846101a3565b505050565b5f5b82811015610208576101fd5f8284016101cf565b6001810190506101e9565b505050565b601f82111561025b578282111561025a57610227816100e9565b610230836100fb565b610239856100fb565b6020861015610246575f90505b808301610255828403826101e7565b505050505b5b505050565b5f82821c905092915050565b5f61027b5f1984600802610260565b1980831691505092915050565b5f610293838361026c565b9150826002028217905092915050565b6102ac82610055565b67ffffffffffffffff8111156102c5576102c461005f565b5b6102cf82546100b9565b6102da82828561020d565b5f60209050601f83116001811461030b575f84156102f9578287015190505b6103038582610288565b86555061036a565b601f198416610319866100e9565b5f5b828110156103405784890151825560018201915060208501945060208101905061031b565b8683101561035d5784890151610359601f89168261026c565b8355505b6001600288020188555050505b505050505050565b610f808061037f5f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806323b872dd1161006f57806323b872dd14610151578063313ce5671461018157806370a082311461019f57806395d89b41146101cf578063a9059cbb146101ed578063dd62ed3e1461021d576100a7565b806306fdde03146100ab578063095ea7b3146100c95780631249c58b146100f9578063162790551461010357806318160ddd14610133575b5f5ffd5b6100b361024d565b6040516100c09190610b91565b60405180910390f35b6100e360048036038101906100de9190610c42565b6102dd565b6040516100f09190610c9a565b60405180910390f35b6101016102ff565b005b61011d60048036038101906101189190610cb3565b610355565b60405161012a9190610c9a565b60405180910390f35b61013b610366565b6040516101489190610ced565b60405180910390f35b61016b60048036038101906101669190610d06565b61036f565b6040516101789190610c9a565b60405180910390f35b61018961039d565b6040516101969190610d71565b60405180910390f35b6101b960048036038101906101b49190610cb3565b6103a5565b6040516101c69190610ced565b60405180910390f35b6101d76103ea565b6040516101e49190610b91565b60405180910390f35b61020760048036038101906102029190610c42565b61047a565b6040516102149190610c9a565b60405180910390f35b61023760048036038101906102329190610d8a565b61049c565b6040516102449190610ced565b60405180910390f35b60606003805461025c90610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610df5565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f5f6102e761051e565b90506102f4818585610525565b600191505092915050565b61030833610355565b15610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90610e6f565b60405180910390fd5b610353336064610537565b565b5f5f823b90505f8111915050919050565b5f600254905090565b5f5f61037961051e565b90506103868582856105b6565b610391858585610649565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103f990610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461042590610df5565b80156104705780601f1061044757610100808354040283529160200191610470565b820191905f5260205f20905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b5f5f61048461051e565b9050610491818585610649565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105328383836001610739565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105a7575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161059e9190610e9c565b60405180910390fd5b6105b25f8383610908565b5050565b5f6105c1848461049c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106435781811015610634578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161062b93929190610eb5565b60405180910390fd5b61064284848484035f610739565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106b09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610729575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107209190610e9c565b60405180910390fd5b610734838383610908565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107a9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610819575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108109190610e9c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610902578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f99190610ced565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610958578060025f82825461094c9190610f17565b92505081905550610a26565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109e1578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109d893929190610eb5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6d578060025f8282540392505081905550610ab7565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b149190610ced565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b6382610b21565b610b6d8185610b2b565b9350610b7d818560208601610b3b565b610b8681610b49565b840191505092915050565b5f6020820190508181035f830152610ba98184610b59565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bde82610bb5565b9050919050565b610bee81610bd4565b8114610bf8575f5ffd5b50565b5f81359050610c0981610be5565b92915050565b5f819050919050565b610c2181610c0f565b8114610c2b575f5ffd5b50565b5f81359050610c3c81610c18565b92915050565b5f5f60408385031215610c5857610c57610bb1565b5b5f610c6585828601610bfb565b9250506020610c7685828601610c2e565b9150509250929050565b5f8115159050919050565b610c9481610c80565b82525050565b5f602082019050610cad5f830184610c8b565b92915050565b5f60208284031215610cc857610cc7610bb1565b5b5f610cd584828501610bfb565b91505092915050565b610ce781610c0f565b82525050565b5f602082019050610d005f830184610cde565b92915050565b5f5f5f60608486031215610d1d57610d1c610bb1565b5b5f610d2a86828701610bfb565b9350506020610d3b86828701610bfb565b9250506040610d4c86828701610c2e565b9150509250925092565b5f60ff82169050919050565b610d6b81610d56565b82525050565b5f602082019050610d845f830184610d62565b92915050565b5f5f60408385031215610da057610d9f610bb1565b5b5f610dad85828601610bfb565b9250506020610dbe85828601610bfb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e0c57607f821691505b602082108103610e1f57610e1e610dc8565b5b50919050565b7f436f6e7472616374206e6f7420616c6c6f7765642100000000000000000000005f82015250565b5f610e59601583610b2b565b9150610e6482610e25565b602082019050919050565b5f6020820190508181035f830152610e8681610e4d565b9050919050565b610e9681610bd4565b82525050565b5f602082019050610eaf5f830184610e8d565b92915050565b5f606082019050610ec85f830186610e8d565b610ed56020830185610cde565b610ee26040830184610cde565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2182610c0f565b9150610f2c83610c0f565b9250828201905080821115610f4457610f43610eea565b5b9291505056fea264697066735822122090d2e3f312fd334dad103ab2351b79c978f6c9bbda6a38393be084391c7e8a0c64736f6c63430008220033","sourceMap":"159:687:134:-:0;;;250:30;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;159:687:134;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;159:687:134:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806323b872dd1161006f57806323b872dd14610151578063313ce5671461018157806370a082311461019f57806395d89b41146101cf578063a9059cbb146101ed578063dd62ed3e1461021d576100a7565b806306fdde03146100ab578063095ea7b3146100c95780631249c58b146100f9578063162790551461010357806318160ddd14610133575b5f5ffd5b6100b361024d565b6040516100c09190610b91565b60405180910390f35b6100e360048036038101906100de9190610c42565b6102dd565b6040516100f09190610c9a565b60405180910390f35b6101016102ff565b005b61011d60048036038101906101189190610cb3565b610355565b60405161012a9190610c9a565b60405180910390f35b61013b610366565b6040516101489190610ced565b60405180910390f35b61016b60048036038101906101669190610d06565b61036f565b6040516101789190610c9a565b60405180910390f35b61018961039d565b6040516101969190610d71565b60405180910390f35b6101b960048036038101906101b49190610cb3565b6103a5565b6040516101c69190610ced565b60405180910390f35b6101d76103ea565b6040516101e49190610b91565b60405180910390f35b61020760048036038101906102029190610c42565b61047a565b6040516102149190610c9a565b60405180910390f35b61023760048036038101906102329190610d8a565b61049c565b6040516102449190610ced565b60405180910390f35b60606003805461025c90610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610df5565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f5f6102e761051e565b90506102f4818585610525565b600191505092915050565b61030833610355565b15610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90610e6f565b60405180910390fd5b610353336064610537565b565b5f5f823b90505f8111915050919050565b5f600254905090565b5f5f61037961051e565b90506103868582856105b6565b610391858585610649565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103f990610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461042590610df5565b80156104705780601f1061044757610100808354040283529160200191610470565b820191905f5260205f20905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b5f5f61048461051e565b9050610491818585610649565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105328383836001610739565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105a7575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161059e9190610e9c565b60405180910390fd5b6105b25f8383610908565b5050565b5f6105c1848461049c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106435781811015610634578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161062b93929190610eb5565b60405180910390fd5b61064284848484035f610739565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106b09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610729575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107209190610e9c565b60405180910390fd5b610734838383610908565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107a9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610819575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108109190610e9c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610902578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f99190610ced565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610958578060025f82825461094c9190610f17565b92505081905550610a26565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109e1578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109d893929190610eb5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6d578060025f8282540392505081905550610ab7565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b149190610ced565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b6382610b21565b610b6d8185610b2b565b9350610b7d818560208601610b3b565b610b8681610b49565b840191505092915050565b5f6020820190508181035f830152610ba98184610b59565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bde82610bb5565b9050919050565b610bee81610bd4565b8114610bf8575f5ffd5b50565b5f81359050610c0981610be5565b92915050565b5f819050919050565b610c2181610c0f565b8114610c2b575f5ffd5b50565b5f81359050610c3c81610c18565b92915050565b5f5f60408385031215610c5857610c57610bb1565b5b5f610c6585828601610bfb565b9250506020610c7685828601610c2e565b9150509250929050565b5f8115159050919050565b610c9481610c80565b82525050565b5f602082019050610cad5f830184610c8b565b92915050565b5f60208284031215610cc857610cc7610bb1565b5b5f610cd584828501610bfb565b91505092915050565b610ce781610c0f565b82525050565b5f602082019050610d005f830184610cde565b92915050565b5f5f5f60608486031215610d1d57610d1c610bb1565b5b5f610d2a86828701610bfb565b9350506020610d3b86828701610bfb565b9250506040610d4c86828701610c2e565b9150509250925092565b5f60ff82169050919050565b610d6b81610d56565b82525050565b5f602082019050610d845f830184610d62565b92915050565b5f5f60408385031215610da057610d9f610bb1565b5b5f610dad85828601610bfb565b9250506020610dbe85828601610bfb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e0c57607f821691505b602082108103610e1f57610e1e610dc8565b5b50919050565b7f436f6e7472616374206e6f7420616c6c6f7765642100000000000000000000005f82015250565b5f610e59601583610b2b565b9150610e6482610e25565b602082019050919050565b5f6020820190508181035f830152610e8681610e4d565b9050919050565b610e9681610bd4565b82525050565b5f602082019050610eaf5f830184610e8d565b92915050565b5f606082019050610ec85f830186610e8d565b610ed56020830185610cde565b610ee26040830184610cde565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2182610c0f565b9150610f2c83610c0f565b9250828201905080821115610f4457610f43610eea565b5b9291505056fea264697066735822122090d2e3f312fd334dad103ab2351b79c978f6c9bbda6a38393be084391c7e8a0c64736f6c63430008220033","sourceMap":"159:687:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;715:129:134;;;:::i;:::-;;338:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;715:129:134:-;757:22;768:10;757;:22::i;:::-;756:23;748:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;815:22;821:10;833:3;815:5;:22::i;:::-;715:129::o;338:305::-;396:4;532:9;594:7;582:20;574:28;;635:1;628:4;:8;621:15;;;338:305;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5791:6;5828:1;5822:4;5818:12;5808:22;;5875:1;5869:4;5865:12;5896:18;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5977:84;5798:269;5747:320;;;:::o;6073:171::-;6213:23;6209:1;6201:6;6197:14;6190:47;6073:171;:::o;6250:366::-;6392:3;6413:67;6477:2;6472:3;6413:67;:::i;:::-;6406:74;;6489:93;6578:3;6489:93;:::i;:::-;6607:2;6602:3;6598:12;6591:19;;6250:366;;;:::o;6622:419::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6875:9;6869:4;6865:20;6861:1;6850:9;6846:17;6839:47;6903:131;7029:4;6903:131;:::i;:::-;6895:139;;6622:419;;;:::o;7047:118::-;7134:24;7152:5;7134:24;:::i;:::-;7129:3;7122:37;7047:118;;:::o;7171:222::-;7264:4;7302:2;7291:9;7287:18;7279:26;;7315:71;7383:1;7372:9;7368:17;7359:6;7315:71;:::i;:::-;7171:222;;;;:::o;7399:442::-;7548:4;7586:2;7575:9;7571:18;7563:26;;7599:71;7667:1;7656:9;7652:17;7643:6;7599:71;:::i;:::-;7680:72;7748:2;7737:9;7733:18;7724:6;7680:72;:::i;:::-;7762;7830:2;7819:9;7815:18;7806:6;7762:72;:::i;:::-;7399:442;;;;;;:::o;7847:180::-;7895:77;7892:1;7885:88;7992:4;7989:1;7982:15;8016:4;8013:1;8006:15;8033:191;8073:3;8092:20;8110:1;8092:20;:::i;:::-;8087:25;;8126:20;8144:1;8126:20;:::i;:::-;8121:25;;8169:1;8166;8162:9;8155:16;;8190:3;8187:1;8184:10;8181:36;;;8197:18;;:::i;:::-;8181:36;8033:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","isContract(address)":"16279055","mint()":"1249c58b","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S08_ContractCheck/ContractCheck.sol\":\"ContractCheck\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S08_ContractCheck/ContractCheck.sol\":{\"keccak256\":\"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2\",\"dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S08_ContractCheck/ContractCheck.sol":"ContractCheck"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S08_ContractCheck/ContractCheck.sol":{"keccak256":"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e","urls":["bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2","dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg"],"license":"MIT"}},"version":1},"id":134} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isContract","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250816003908161003d91906102a3565b50806004908161004d91906102a3565b505050610372565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d057607f821691505b6020821081036100e3576100e261008c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010a565b61014f868361010a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019361018e61018984610167565b610170565b610167565b9050919050565b5f819050919050565b6101ac83610179565b6101c06101b88261019a565b848454610116565b825550505050565b5f5f905090565b6101d76101c8565b6101e28184846101a3565b505050565b5f5b82811015610208576101fd5f8284016101cf565b6001810190506101e9565b505050565b601f82111561025b578282111561025a57610227816100e9565b610230836100fb565b610239856100fb565b6020861015610246575f90505b808301610255828403826101e7565b505050505b5b505050565b5f82821c905092915050565b5f61027b5f1984600802610260565b1980831691505092915050565b5f610293838361026c565b9150826002028217905092915050565b6102ac82610055565b67ffffffffffffffff8111156102c5576102c461005f565b5b6102cf82546100b9565b6102da82828561020d565b5f60209050601f83116001811461030b575f84156102f9578287015190505b6103038582610288565b86555061036a565b601f198416610319866100e9565b5f5b828110156103405784890151825560018201915060208501945060208101905061031b565b8683101561035d5784890151610359601f89168261026c565b8355505b6001600288020188555050505b505050505050565b610f808061037f5f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806323b872dd1161006f57806323b872dd14610151578063313ce5671461018157806370a082311461019f57806395d89b41146101cf578063a9059cbb146101ed578063dd62ed3e1461021d576100a7565b806306fdde03146100ab578063095ea7b3146100c95780631249c58b146100f9578063162790551461010357806318160ddd14610133575b5f5ffd5b6100b361024d565b6040516100c09190610b91565b60405180910390f35b6100e360048036038101906100de9190610c42565b6102dd565b6040516100f09190610c9a565b60405180910390f35b6101016102ff565b005b61011d60048036038101906101189190610cb3565b610355565b60405161012a9190610c9a565b60405180910390f35b61013b610366565b6040516101489190610ced565b60405180910390f35b61016b60048036038101906101669190610d06565b61036f565b6040516101789190610c9a565b60405180910390f35b61018961039d565b6040516101969190610d71565b60405180910390f35b6101b960048036038101906101b49190610cb3565b6103a5565b6040516101c69190610ced565b60405180910390f35b6101d76103ea565b6040516101e49190610b91565b60405180910390f35b61020760048036038101906102029190610c42565b61047a565b6040516102149190610c9a565b60405180910390f35b61023760048036038101906102329190610d8a565b61049c565b6040516102449190610ced565b60405180910390f35b60606003805461025c90610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610df5565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f5f6102e761051e565b90506102f4818585610525565b600191505092915050565b61030833610355565b15610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90610e6f565b60405180910390fd5b610353336064610537565b565b5f5f823b90505f8111915050919050565b5f600254905090565b5f5f61037961051e565b90506103868582856105b6565b610391858585610649565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103f990610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461042590610df5565b80156104705780601f1061044757610100808354040283529160200191610470565b820191905f5260205f20905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b5f5f61048461051e565b9050610491818585610649565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105328383836001610739565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105a7575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161059e9190610e9c565b60405180910390fd5b6105b25f8383610908565b5050565b5f6105c1848461049c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106435781811015610634578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161062b93929190610eb5565b60405180910390fd5b61064284848484035f610739565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106b09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610729575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107209190610e9c565b60405180910390fd5b610734838383610908565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107a9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610819575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108109190610e9c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610902578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f99190610ced565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610958578060025f82825461094c9190610f17565b92505081905550610a26565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109e1578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109d893929190610eb5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6d578060025f8282540392505081905550610ab7565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b149190610ced565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b6382610b21565b610b6d8185610b2b565b9350610b7d818560208601610b3b565b610b8681610b49565b840191505092915050565b5f6020820190508181035f830152610ba98184610b59565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bde82610bb5565b9050919050565b610bee81610bd4565b8114610bf8575f5ffd5b50565b5f81359050610c0981610be5565b92915050565b5f819050919050565b610c2181610c0f565b8114610c2b575f5ffd5b50565b5f81359050610c3c81610c18565b92915050565b5f5f60408385031215610c5857610c57610bb1565b5b5f610c6585828601610bfb565b9250506020610c7685828601610c2e565b9150509250929050565b5f8115159050919050565b610c9481610c80565b82525050565b5f602082019050610cad5f830184610c8b565b92915050565b5f60208284031215610cc857610cc7610bb1565b5b5f610cd584828501610bfb565b91505092915050565b610ce781610c0f565b82525050565b5f602082019050610d005f830184610cde565b92915050565b5f5f5f60608486031215610d1d57610d1c610bb1565b5b5f610d2a86828701610bfb565b9350506020610d3b86828701610bfb565b9250506040610d4c86828701610c2e565b9150509250925092565b5f60ff82169050919050565b610d6b81610d56565b82525050565b5f602082019050610d845f830184610d62565b92915050565b5f5f60408385031215610da057610d9f610bb1565b5b5f610dad85828601610bfb565b9250506020610dbe85828601610bfb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e0c57607f821691505b602082108103610e1f57610e1e610dc8565b5b50919050565b7f436f6e7472616374206e6f7420616c6c6f7765642100000000000000000000005f82015250565b5f610e59601583610b2b565b9150610e6482610e25565b602082019050919050565b5f6020820190508181035f830152610e8681610e4d565b9050919050565b610e9681610bd4565b82525050565b5f602082019050610eaf5f830184610e8d565b92915050565b5f606082019050610ec85f830186610e8d565b610ed56020830185610cde565b610ee26040830184610cde565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2182610c0f565b9150610f2c83610c0f565b9250828201905080821115610f4457610f43610eea565b5b9291505056fea264697066735822122090d2e3f312fd334dad103ab2351b79c978f6c9bbda6a38393be084391c7e8a0c64736f6c63430008220033","sourceMap":"159:687:128:-:0;;;250:30;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;159:687:128;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;159:687:128:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806323b872dd1161006f57806323b872dd14610151578063313ce5671461018157806370a082311461019f57806395d89b41146101cf578063a9059cbb146101ed578063dd62ed3e1461021d576100a7565b806306fdde03146100ab578063095ea7b3146100c95780631249c58b146100f9578063162790551461010357806318160ddd14610133575b5f5ffd5b6100b361024d565b6040516100c09190610b91565b60405180910390f35b6100e360048036038101906100de9190610c42565b6102dd565b6040516100f09190610c9a565b60405180910390f35b6101016102ff565b005b61011d60048036038101906101189190610cb3565b610355565b60405161012a9190610c9a565b60405180910390f35b61013b610366565b6040516101489190610ced565b60405180910390f35b61016b60048036038101906101669190610d06565b61036f565b6040516101789190610c9a565b60405180910390f35b61018961039d565b6040516101969190610d71565b60405180910390f35b6101b960048036038101906101b49190610cb3565b6103a5565b6040516101c69190610ced565b60405180910390f35b6101d76103ea565b6040516101e49190610b91565b60405180910390f35b61020760048036038101906102029190610c42565b61047a565b6040516102149190610c9a565b60405180910390f35b61023760048036038101906102329190610d8a565b61049c565b6040516102449190610ced565b60405180910390f35b60606003805461025c90610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610df5565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f5f6102e761051e565b90506102f4818585610525565b600191505092915050565b61030833610355565b15610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90610e6f565b60405180910390fd5b610353336064610537565b565b5f5f823b90505f8111915050919050565b5f600254905090565b5f5f61037961051e565b90506103868582856105b6565b610391858585610649565b60019150509392505050565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103f990610df5565b80601f016020809104026020016040519081016040528092919081815260200182805461042590610df5565b80156104705780601f1061044757610100808354040283529160200191610470565b820191905f5260205f20905b81548152906001019060200180831161045357829003601f168201915b5050505050905090565b5f5f61048461051e565b9050610491818585610649565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6105328383836001610739565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105a7575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161059e9190610e9c565b60405180910390fd5b6105b25f8383610908565b5050565b5f6105c1848461049c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106435781811015610634578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161062b93929190610eb5565b60405180910390fd5b61064284848484035f610739565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106b09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610729575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107209190610e9c565b60405180910390fd5b610734838383610908565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107a9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a09190610e9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610819575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108109190610e9c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610902578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f99190610ced565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610958578060025f82825461094c9190610f17565b92505081905550610a26565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109e1578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109d893929190610eb5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6d578060025f8282540392505081905550610ab7565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b149190610ced565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b6382610b21565b610b6d8185610b2b565b9350610b7d818560208601610b3b565b610b8681610b49565b840191505092915050565b5f6020820190508181035f830152610ba98184610b59565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bde82610bb5565b9050919050565b610bee81610bd4565b8114610bf8575f5ffd5b50565b5f81359050610c0981610be5565b92915050565b5f819050919050565b610c2181610c0f565b8114610c2b575f5ffd5b50565b5f81359050610c3c81610c18565b92915050565b5f5f60408385031215610c5857610c57610bb1565b5b5f610c6585828601610bfb565b9250506020610c7685828601610c2e565b9150509250929050565b5f8115159050919050565b610c9481610c80565b82525050565b5f602082019050610cad5f830184610c8b565b92915050565b5f60208284031215610cc857610cc7610bb1565b5b5f610cd584828501610bfb565b91505092915050565b610ce781610c0f565b82525050565b5f602082019050610d005f830184610cde565b92915050565b5f5f5f60608486031215610d1d57610d1c610bb1565b5b5f610d2a86828701610bfb565b9350506020610d3b86828701610bfb565b9250506040610d4c86828701610c2e565b9150509250925092565b5f60ff82169050919050565b610d6b81610d56565b82525050565b5f602082019050610d845f830184610d62565b92915050565b5f5f60408385031215610da057610d9f610bb1565b5b5f610dad85828601610bfb565b9250506020610dbe85828601610bfb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e0c57607f821691505b602082108103610e1f57610e1e610dc8565b5b50919050565b7f436f6e7472616374206e6f7420616c6c6f7765642100000000000000000000005f82015250565b5f610e59601583610b2b565b9150610e6482610e25565b602082019050919050565b5f6020820190508181035f830152610e8681610e4d565b9050919050565b610e9681610bd4565b82525050565b5f602082019050610eaf5f830184610e8d565b92915050565b5f606082019050610ec85f830186610e8d565b610ed56020830185610cde565b610ee26040830184610cde565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2182610c0f565b9150610f2c83610c0f565b9250828201905080821115610f4457610f43610eea565b5b9291505056fea264697066735822122090d2e3f312fd334dad103ab2351b79c978f6c9bbda6a38393be084391c7e8a0c64736f6c63430008220033","sourceMap":"159:687:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;715:129:128;;;:::i;:::-;;338:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;715:129:128:-;757:22;768:10;757;:22::i;:::-;756:23;748:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;815:22;821:10;833:3;815:5;:22::i;:::-;715:129::o;338:305::-;396:4;532:9;594:7;582:20;574:28;;635:1;628:4;:8;621:15;;;338:305;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5791:6;5828:1;5822:4;5818:12;5808:22;;5875:1;5869:4;5865:12;5896:18;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5977:84;5798:269;5747:320;;;:::o;6073:171::-;6213:23;6209:1;6201:6;6197:14;6190:47;6073:171;:::o;6250:366::-;6392:3;6413:67;6477:2;6472:3;6413:67;:::i;:::-;6406:74;;6489:93;6578:3;6489:93;:::i;:::-;6607:2;6602:3;6598:12;6591:19;;6250:366;;;:::o;6622:419::-;6788:4;6826:2;6815:9;6811:18;6803:26;;6875:9;6869:4;6865:20;6861:1;6850:9;6846:17;6839:47;6903:131;7029:4;6903:131;:::i;:::-;6895:139;;6622:419;;;:::o;7047:118::-;7134:24;7152:5;7134:24;:::i;:::-;7129:3;7122:37;7047:118;;:::o;7171:222::-;7264:4;7302:2;7291:9;7287:18;7279:26;;7315:71;7383:1;7372:9;7368:17;7359:6;7315:71;:::i;:::-;7171:222;;;;:::o;7399:442::-;7548:4;7586:2;7575:9;7571:18;7563:26;;7599:71;7667:1;7656:9;7652:17;7643:6;7599:71;:::i;:::-;7680:72;7748:2;7737:9;7733:18;7724:6;7680:72;:::i;:::-;7762;7830:2;7819:9;7815:18;7806:6;7762:72;:::i;:::-;7399:442;;;;;;:::o;7847:180::-;7895:77;7892:1;7885:88;7992:4;7989:1;7982:15;8016:4;8013:1;8006:15;8033:191;8073:3;8092:20;8110:1;8092:20;:::i;:::-;8087:25;;8126:20;8144:1;8126:20;:::i;:::-;8121:25;;8169:1;8166;8162:9;8155:16;;8190:3;8187:1;8184:10;8181:36;;;8197:18;;:::i;:::-;8181:36;8033:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","isContract(address)":"16279055","mint()":"1249c58b","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S08_ContractCheck/ContractCheck.sol\":\"ContractCheck\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S08_ContractCheck/ContractCheck.sol\":{\"keccak256\":\"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2\",\"dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S08_ContractCheck/ContractCheck.sol":"ContractCheck"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S08_ContractCheck/ContractCheck.sol":{"keccak256":"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e","urls":["bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2","dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg"],"license":"MIT"}},"version":1},"id":128} \ No newline at end of file diff --git a/out/ContractCheck.sol/NotContract.json b/out/ContractCheck.sol/NotContract.json index 90e11919..86b3cf4a 100644 --- a/out/ContractCheck.sol/NotContract.json +++ b/out/ContractCheck.sol/NotContract.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"contractCheck","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isContract","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610496380380610496833981810160405281019061003191906101d8565b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166316279055306040518263ffffffff1660e01b81526004016100aa9190610212565b602060405180830381865afa1580156100c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610260565b5f5f6101000a81548160ff0219169083151502179055505f5b600a811015610173578173ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610150575f5ffd5b505af1158015610162573d5f5f3e3d5ffd5b505050508080600101915050610102565b505061028b565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a78261017e565b9050919050565b6101b78161019d565b81146101c1575f5ffd5b50565b5f815190506101d2816101ae565b92915050565b5f602082840312156101ed576101ec61017a565b5b5f6101fa848285016101c4565b91505092915050565b61020c8161019d565b82525050565b5f6020820190506102255f830184610203565b92915050565b5f8115159050919050565b61023f8161022b565b8114610249575f5ffd5b50565b5f8151905061025a81610236565b92915050565b5f602082840312156102755761027461017a565b5b5f6102828482850161024c565b91505092915050565b6101fe806102985f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631249c58b14610043578063536eee561461004d578063f7ec2f351461006b575b5f5ffd5b61004b610089565b005b610055610107565b604051610062919061017c565b60405180910390f35b61007361012c565b60405161008091906101af565b60405180910390f35b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100ef575f5ffd5b505af1158015610101573d5f5f3e3d5ffd5b50505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101668261013d565b9050919050565b6101768161015c565b82525050565b5f60208201905061018f5f83018461016d565b92915050565b5f8115159050919050565b6101a981610195565b82525050565b5f6020820190506101c25f8301846101a0565b9291505056fea2646970667358221220f6bce88e84da64162e1fac66177ec9cf271a691d8b3893d88493c25a271ee2d864736f6c63430008220033","sourceMap":"885:605:134:-:0;;;1089:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1141:4;1125:13;;:20;;;;;;;;;;;;;;;;;;1182:4;1168:30;;;1207:4;1168:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1155:10;;:58;;;;;;;;;;;;;;;;;;1253:6;1249:75;1265:2;1261:1;:6;1249:75;;;1301:4;1287:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1269:3;;;;;;;1249:75;;;;1089:241;885:605;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;1554:90::-;1588:7;1631:5;1624:13;1617:21;1606:32;;1554:90;;;:::o;1650:116::-;1720:21;1735:5;1720:21;:::i;:::-;1713:5;1710:32;1700:60;;1756:1;1753;1746:12;1700:60;1650:116;:::o;1772:137::-;1826:5;1857:6;1851:13;1842:22;;1873:30;1897:5;1873:30;:::i;:::-;1772:137;;;;:::o;1915:345::-;1982:6;2031:2;2019:9;2010:7;2006:23;2002:32;1999:119;;;2037:79;;:::i;:::-;1999:119;2157:1;2182:61;2235:7;2226:6;2215:9;2211:22;2182:61;:::i;:::-;2172:71;;2128:125;1915:345;;;;:::o;885:605:134:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631249c58b14610043578063536eee561461004d578063f7ec2f351461006b575b5f5ffd5b61004b610089565b005b610055610107565b604051610062919061017c565b60405180910390f35b61007361012c565b60405161008091906101af565b60405180910390f35b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100ef575f5ffd5b505af1158015610101573d5f5f3e3d5ffd5b50505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101668261013d565b9050919050565b6101768161015c565b82525050565b5f60208201905061018f5f83018461016d565b92915050565b5f8115159050919050565b6101a981610195565b82525050565b5f6020820190506101c25f8301846101a0565b9291505056fea2646970667358221220f6bce88e84da64162e1fac66177ec9cf271a691d8b3893d88493c25a271ee2d864736f6c63430008220033","sourceMap":"885:605:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:77;;;:::i;:::-;;940:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;912:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:77;1460:13;;;;;;;;;;;1446:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:77::o;940:28::-;;;;;;;;;;;;;:::o;912:22::-;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:90::-;627:7;670:5;663:13;656:21;645:32;;593:90;;;:::o;689:109::-;770:21;785:5;770:21;:::i;:::-;765:3;758:34;689:109;;:::o;804:210::-;891:4;929:2;918:9;914:18;906:26;;942:65;1004:1;993:9;989:17;980:6;942:65;:::i;:::-;804:210;;;;:::o","linkReferences":{}},"methodIdentifiers":{"contractCheck()":"536eee56","isContract()":"f7ec2f35","mint()":"1249c58b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"contractCheck\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S08_ContractCheck/ContractCheck.sol\":\"NotContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S08_ContractCheck/ContractCheck.sol\":{\"keccak256\":\"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2\",\"dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"contractCheck","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S08_ContractCheck/ContractCheck.sol":"NotContract"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S08_ContractCheck/ContractCheck.sol":{"keccak256":"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e","urls":["bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2","dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg"],"license":"MIT"}},"version":1},"id":134} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"contractCheck","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isContract","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610496380380610496833981810160405281019061003191906101d8565b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166316279055306040518263ffffffff1660e01b81526004016100aa9190610212565b602060405180830381865afa1580156100c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610260565b5f5f6101000a81548160ff0219169083151502179055505f5b600a811015610173578173ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610150575f5ffd5b505af1158015610162573d5f5f3e3d5ffd5b505050508080600101915050610102565b505061028b565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a78261017e565b9050919050565b6101b78161019d565b81146101c1575f5ffd5b50565b5f815190506101d2816101ae565b92915050565b5f602082840312156101ed576101ec61017a565b5b5f6101fa848285016101c4565b91505092915050565b61020c8161019d565b82525050565b5f6020820190506102255f830184610203565b92915050565b5f8115159050919050565b61023f8161022b565b8114610249575f5ffd5b50565b5f8151905061025a81610236565b92915050565b5f602082840312156102755761027461017a565b5b5f6102828482850161024c565b91505092915050565b6101fe806102985f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631249c58b14610043578063536eee561461004d578063f7ec2f351461006b575b5f5ffd5b61004b610089565b005b610055610107565b604051610062919061017c565b60405180910390f35b61007361012c565b60405161008091906101af565b60405180910390f35b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100ef575f5ffd5b505af1158015610101573d5f5f3e3d5ffd5b50505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101668261013d565b9050919050565b6101768161015c565b82525050565b5f60208201905061018f5f83018461016d565b92915050565b5f8115159050919050565b6101a981610195565b82525050565b5f6020820190506101c25f8301846101a0565b9291505056fea2646970667358221220f6bce88e84da64162e1fac66177ec9cf271a691d8b3893d88493c25a271ee2d864736f6c63430008220033","sourceMap":"885:605:128:-:0;;;1089:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1141:4;1125:13;;:20;;;;;;;;;;;;;;;;;;1182:4;1168:30;;;1207:4;1168:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1155:10;;:58;;;;;;;;;;;;;;;;;;1253:6;1249:75;1265:2;1261:1;:6;1249:75;;;1301:4;1287:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1269:3;;;;;;;1249:75;;;;1089:241;885:605;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;1554:90::-;1588:7;1631:5;1624:13;1617:21;1606:32;;1554:90;;;:::o;1650:116::-;1720:21;1735:5;1720:21;:::i;:::-;1713:5;1710:32;1700:60;;1756:1;1753;1746:12;1700:60;1650:116;:::o;1772:137::-;1826:5;1857:6;1851:13;1842:22;;1873:30;1897:5;1873:30;:::i;:::-;1772:137;;;;:::o;1915:345::-;1982:6;2031:2;2019:9;2010:7;2006:23;2002:32;1999:119;;;2037:79;;:::i;:::-;1999:119;2157:1;2182:61;2235:7;2226:6;2215:9;2211:22;2182:61;:::i;:::-;2172:71;;2128:125;1915:345;;;;:::o;885:605:128:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631249c58b14610043578063536eee561461004d578063f7ec2f351461006b575b5f5ffd5b61004b610089565b005b610055610107565b604051610062919061017c565b60405180910390f35b61007361012c565b60405161008091906101af565b60405180910390f35b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100ef575f5ffd5b505af1158015610101573d5f5f3e3d5ffd5b50505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101668261013d565b9050919050565b6101768161015c565b82525050565b5f60208201905061018f5f83018461016d565b92915050565b5f8115159050919050565b6101a981610195565b82525050565b5f6020820190506101c25f8301846101a0565b9291505056fea2646970667358221220f6bce88e84da64162e1fac66177ec9cf271a691d8b3893d88493c25a271ee2d864736f6c63430008220033","sourceMap":"885:605:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:77;;;:::i;:::-;;940:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;912:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:77;1460:13;;;;;;;;;;;1446:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1411:77::o;940:28::-;;;;;;;;;;;;;:::o;912:22::-;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:90::-;627:7;670:5;663:13;656:21;645:32;;593:90;;;:::o;689:109::-;770:21;785:5;770:21;:::i;:::-;765:3;758:34;689:109;;:::o;804:210::-;891:4;929:2;918:9;914:18;906:26;;942:65;1004:1;993:9;989:17;980:6;942:65;:::i;:::-;804:210;;;;:::o","linkReferences":{}},"methodIdentifiers":{"contractCheck()":"536eee56","isContract()":"f7ec2f35","mint()":"1249c58b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"contractCheck\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isContract\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S08_ContractCheck/ContractCheck.sol\":\"NotContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S08_ContractCheck/ContractCheck.sol\":{\"keccak256\":\"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2\",\"dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"contractCheck","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S08_ContractCheck/ContractCheck.sol":"NotContract"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S08_ContractCheck/ContractCheck.sol":{"keccak256":"0x38f1b52869ccb407c66806ca648feadb3fa30221e541d1bf9eb803e26b2c7b4e","urls":["bzz-raw://9967caaa312325b5f66e782358f1b8a2def49c1bcbe2eba2676d8a802aa727d2","dweb:/ipfs/QmV3prUuHc6AWn6C5Ry2rJLirtwjPgPRrEjBUVA37WjVCg"],"license":"MIT"}},"version":1},"id":128} \ No newline at end of file diff --git a/out/CrosschainERC20.sol/CrossChainToken.json b/out/CrosschainERC20.sol/CrossChainToken.json index 1d7ecf0d..78cd210f 100644 --- a/out/CrosschainERC20.sol/CrossChainToken.json +++ b/out/CrosschainERC20.sol/CrossChainToken.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"totalSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"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":"bridge","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"Bridge","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","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":"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052604051611cfa380380611cfa833981810160405281019061002591906105c3565b33838381600390816100379190610863565b5080600490816100479190610863565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ba575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100b19190610971565b60405180910390fd5b6100c9816100e260201b60201c565b506100da33826101a560201b60201c565b505050610a47565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610215575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161020c9190610971565b60405180910390fd5b6102265f838361022a60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361027a578060025f82825461026e91906109b7565b92505081905550610348565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610303578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102fa939291906109f9565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038f578060025f82825403925050819055506103d9565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104369190610a2e565b60405180910390a3505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104a28261045c565b810181811067ffffffffffffffff821117156104c1576104c061046c565b5b80604052505050565b5f6104d3610443565b90506104df8282610499565b919050565b5f67ffffffffffffffff8211156104fe576104fd61046c565b5b6105078261045c565b9050602081019050919050565b8281835e5f83830152505050565b5f61053461052f846104e4565b6104ca565b9050828152602081018484840111156105505761054f610458565b5b61055b848285610514565b509392505050565b5f82601f83011261057757610576610454565b5b8151610587848260208601610522565b91505092915050565b5f819050919050565b6105a281610590565b81146105ac575f5ffd5b50565b5f815190506105bd81610599565b92915050565b5f5f5f606084860312156105da576105d961044c565b5b5f84015167ffffffffffffffff8111156105f7576105f6610450565b5b61060386828701610563565b935050602084015167ffffffffffffffff81111561062457610623610450565b5b61063086828701610563565b9250506040610641868287016105af565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061069957607f821691505b6020821081036106ac576106ab610655565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261070e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106d3565b61071886836106d3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61075361074e61074984610590565b610730565b610590565b9050919050565b5f819050919050565b61076c83610739565b6107806107788261075a565b8484546106df565b825550505050565b5f5f905090565b610797610788565b6107a2818484610763565b505050565b5f5b828110156107c8576107bd5f82840161078f565b6001810190506107a9565b505050565b601f82111561081b578282111561081a576107e7816106b2565b6107f0836106c4565b6107f9856106c4565b6020861015610806575f90505b808301610815828403826107a7565b505050505b5b505050565b5f82821c905092915050565b5f61083b5f1984600802610820565b1980831691505092915050565b5f610853838361082c565b9150826002028217905092915050565b61086c8261064b565b67ffffffffffffffff8111156108855761088461046c565b5b61088f8254610682565b61089a8282856107cd565b5f60209050601f8311600181146108cb575f84156108b9578287015190505b6108c38582610848565b86555061092a565b601f1984166108d9866106b2565b5f5b82811015610900578489015182556001820191506020850194506020810190506108db565b8683101561091d5784890151610919601f89168261082c565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61095b82610932565b9050919050565b61096b81610951565b82525050565b5f6020820190506109845f830184610962565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6109c182610590565b91506109cc83610590565b92508282019050808211156109e4576109e361098a565b5b92915050565b6109f381610590565b82525050565b5f606082019050610a0c5f830186610962565b610a1960208301856109ea565b610a2660408301846109ea565b949350505050565b5f602082019050610a415f8301846109ea565b92915050565b6112a680610a545f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a57806395d89b411161006457806395d89b4114610236578063a9059cbb14610254578063dd62ed3e14610284578063f2fde38b146102b4576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806390fd50b31461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d0565b6040516101019190610ef4565b60405180910390f35b610124600480360381019061011f9190610fa5565b610360565b6040516101319190610ffd565b60405180910390f35b610142610382565b60405161014f9190611025565b60405180910390f35b610172600480360381019061016d919061103e565b61038b565b60405161017f9190610ffd565b60405180910390f35b6101906103b9565b60405161019d91906110a9565b60405180910390f35b6101c060048036038101906101bb9190610fa5565b6103c1565b005b6101dc60048036038101906101d791906110c2565b610425565b6040516101e99190611025565b60405180910390f35b6101fa61046a565b005b61020461047d565b60405161021191906110fc565b60405180910390f35b610234600480360381019061022f9190611115565b6104a5565b005b61023e610500565b60405161024b9190610ef4565b60405180910390f35b61026e60048036038101906102699190610fa5565b610590565b60405161027b9190610ffd565b60405180910390f35b61029e60048036038101906102999190611140565b6105b2565b6040516102ab9190611025565b60405180910390f35b6102ce60048036038101906102c991906110c2565b610634565b005b6060600380546102df906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906111ab565b80156103565780601f1061032d57610100808354040283529160200191610356565b820191905f5260205f20905b81548152906001019060200180831161033957829003601f168201915b5050505050905090565b5f5f61036a6106b8565b90506103778185856106bf565b600191505092915050565b5f600254905090565b5f5f6103956106b8565b90506103a28582856106d1565b6103ad858585610764565b60019150509392505050565b5f6012905090565b6103c9610854565b6103d382826108db565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516104199190611025565b60405180910390a25050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610472610854565b61047b5f61095a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104af3382610a1d565b3373ffffffffffffffffffffffffffffffffffffffff167f22e3f162fca16dc0fcfb65eddf406531a0c555a2c24c58cf5d10fc2d202a882e826040516104f59190611025565b60405180910390a250565b60606004805461050f906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461053b906111ab565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b5f5f61059a6106b8565b90506105a7818585610764565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c610854565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a391906110fc565b60405180910390fd5b6106b58161095a565b50565b5f33905090565b6106cc8383836001610a9c565b505050565b5f6106dc84846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075e578181101561074f578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610746939291906111db565b60405180910390fd5b61075d84848484035f610a9c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107cb91906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610844575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161083b91906110fc565b60405180910390fd5b61084f838383610c6b565b505050565b61085c6106b8565b73ffffffffffffffffffffffffffffffffffffffff1661087a61047d565b73ffffffffffffffffffffffffffffffffffffffff16146108d95761089d6106b8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108d091906110fc565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361094b575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094291906110fc565b60405180910390fd5b6109565f8383610c6b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a8d575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a8491906110fc565b60405180910390fd5b610a98825f83610c6b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b0391906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b7391906110fc565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c65578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c5c9190611025565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cbb578060025f828254610caf919061123d565b92505081905550610d89565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d44578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d3b939291906111db565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0578060025f8282540392505081905550610e1a565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e779190611025565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ec682610e84565b610ed08185610e8e565b9350610ee0818560208601610e9e565b610ee981610eac565b840191505092915050565b5f6020820190508181035f830152610f0c8184610ebc565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4182610f18565b9050919050565b610f5181610f37565b8114610f5b575f5ffd5b50565b5f81359050610f6c81610f48565b92915050565b5f819050919050565b610f8481610f72565b8114610f8e575f5ffd5b50565b5f81359050610f9f81610f7b565b92915050565b5f5f60408385031215610fbb57610fba610f14565b5b5f610fc885828601610f5e565b9250506020610fd985828601610f91565b9150509250929050565b5f8115159050919050565b610ff781610fe3565b82525050565b5f6020820190506110105f830184610fee565b92915050565b61101f81610f72565b82525050565b5f6020820190506110385f830184611016565b92915050565b5f5f5f6060848603121561105557611054610f14565b5b5f61106286828701610f5e565b935050602061107386828701610f5e565b925050604061108486828701610f91565b9150509250925092565b5f60ff82169050919050565b6110a38161108e565b82525050565b5f6020820190506110bc5f83018461109a565b92915050565b5f602082840312156110d7576110d6610f14565b5b5f6110e484828501610f5e565b91505092915050565b6110f681610f37565b82525050565b5f60208201905061110f5f8301846110ed565b92915050565b5f6020828403121561112a57611129610f14565b5b5f61113784828501610f91565b91505092915050565b5f5f6040838503121561115657611155610f14565b5b5f61116385828601610f5e565b925050602061117485828601610f5e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111c257607f821691505b6020821081036111d5576111d461117e565b5b50919050565b5f6060820190506111ee5f8301866110ed565b6111fb6020830185611016565b6112086040830184611016565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124782610f72565b915061125283610f72565b925082820190508082111561126a57611269611210565b5b9291505056fea2646970667358221220b8d5dd40492c594ba6ce431b51cdbde840668667c4aaac1f210c376f895d484f64736f6c63430008220033","sourceMap":"168:947:116:-:0;;;488:200;;;;;;;;;;;;;;;;;;;;;:::i;:::-;629:10;607:4;613:6;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;651:30:116::2;657:10;669:11;651:5;;;:30;;:::i;:::-;488:200:::0;;;168:947;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;;;:35;;:::i;:::-;7362:208;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:77::-;2607:7;2636:5;2625:16;;2570:77;;;:::o;2653:122::-;2726:24;2744:5;2726:24;:::i;:::-;2719:5;2716:35;2706:63;;2765:1;2762;2755:12;2706:63;2653:122;:::o;2781:143::-;2838:5;2869:6;2863:13;2854:22;;2885:33;2912:5;2885:33;:::i;:::-;2781:143;;;;:::o;2930:1009::-;3038:6;3046;3054;3103:2;3091:9;3082:7;3078:23;3074:32;3071:119;;;3109:79;;:::i;:::-;3071:119;3250:1;3239:9;3235:17;3229:24;3280:18;3272:6;3269:30;3266:117;;;3302:79;;:::i;:::-;3266:117;3407:74;3473:7;3464:6;3453:9;3449:22;3407:74;:::i;:::-;3397:84;;3200:291;3551:2;3540:9;3536:18;3530:25;3582:18;3574:6;3571:30;3568:117;;;3604:79;;:::i;:::-;3568:117;3709:74;3775:7;3766:6;3755:9;3751:22;3709:74;:::i;:::-;3699:84;;3501:292;3832:2;3858:64;3914:7;3905:6;3894:9;3890:22;3858:64;:::i;:::-;3848:74;;3803:129;2930:1009;;;;;:::o;3945:99::-;3997:6;4031:5;4025:12;4015:22;;3945:99;;;:::o;4050:180::-;4098:77;4095:1;4088:88;4195:4;4192:1;4185:15;4219:4;4216:1;4209:15;4236:320;4280:6;4317:1;4311:4;4307:12;4297:22;;4364:1;4358:4;4354:12;4385:18;4375:81;;4441:4;4433:6;4429:17;4419:27;;4375:81;4503:2;4495:6;4492:14;4472:18;4469:38;4466:84;;4522:18;;:::i;:::-;4466:84;4287:269;4236:320;;;:::o;4562:141::-;4611:4;4634:3;4626:11;;4657:3;4654:1;4647:14;4691:4;4688:1;4678:18;4670:26;;4562:141;;;:::o;4709:93::-;4746:6;4793:2;4788;4781:5;4777:14;4773:23;4763:33;;4709:93;;;:::o;4808:107::-;4852:8;4902:5;4896:4;4892:16;4871:37;;4808:107;;;;:::o;4921:393::-;4990:6;5040:1;5028:10;5024:18;5063:97;5093:66;5082:9;5063:97;:::i;:::-;5181:39;5211:8;5200:9;5181:39;:::i;:::-;5169:51;;5253:4;5249:9;5242:5;5238:21;5229:30;;5302:4;5292:8;5288:19;5281:5;5278:30;5268:40;;4997:317;;4921:393;;;;;:::o;5320:60::-;5348:3;5369:5;5362:12;;5320:60;;;:::o;5386:142::-;5436:9;5469:53;5487:34;5496:24;5514:5;5496:24;:::i;:::-;5487:34;:::i;:::-;5469:53;:::i;:::-;5456:66;;5386:142;;;:::o;5534:75::-;5577:3;5598:5;5591:12;;5534:75;;;:::o;5615:269::-;5725:39;5756:7;5725:39;:::i;:::-;5786:91;5835:41;5859:16;5835:41;:::i;:::-;5827:6;5820:4;5814:11;5786:91;:::i;:::-;5780:4;5773:105;5691:193;5615:269;;;:::o;5890:73::-;5935:3;5956:1;5949:8;;5890:73;:::o;5969:189::-;6046:32;;:::i;:::-;6087:65;6145:6;6137;6131:4;6087:65;:::i;:::-;6022:136;5969:189;;:::o;6164:214::-;6249:1;6234:138;6259:9;6256:1;6253:16;6234:138;;;6311:51;6360:1;6356;6345:9;6341:17;6311:51;:::i;:::-;6284:1;6281;6277:9;6272:14;;6234:138;;;6238:14;6164:214;;:::o;6384:746::-;6485:2;6480:3;6477:11;6474:649;;;6514:10;6509:3;6506:19;6503:610;;;6560:38;6592:5;6560:38;:::i;:::-;6635:22;6653:3;6635:22;:::i;:::-;6694:29;6712:10;6694:29;:::i;:::-;6884:2;6872:10;6869:18;6866:79;;;6926:1;6910:17;;6866:79;6995:12;6985:8;6981:27;7025:74;7085:12;7071;7067:31;7054:11;7025:74;:::i;:::-;6526:587;;;;6503:610;6474:649;6384:746;;;:::o;7136:117::-;7190:8;7240:5;7234:4;7230:16;7209:37;;7136:117;;;;:::o;7259:169::-;7303:6;7336:51;7384:1;7380:6;7372:5;7369:1;7365:13;7336:51;:::i;:::-;7332:56;7417:4;7411;7407:15;7397:25;;7310:118;7259:169;;;;:::o;7433:295::-;7509:4;7655:29;7680:3;7674:4;7655:29;:::i;:::-;7647:37;;7717:3;7714:1;7710:11;7704:4;7701:21;7693:29;;7433:295;;;;:::o;7733:1395::-;7850:37;7883:3;7850:37;:::i;:::-;7952:18;7944:6;7941:30;7938:56;;;7974:18;;:::i;:::-;7938:56;8018:38;8050:4;8044:11;8018:38;:::i;:::-;8103:67;8163:6;8155;8149:4;8103:67;:::i;:::-;8197:1;8221:4;8208:17;;8253:2;8245:6;8242:14;8270:1;8265:618;;;;8927:1;8944:6;8941:77;;;8993:9;8988:3;8984:19;8978:26;8969:35;;8941:77;9044:67;9104:6;9097:5;9044:67;:::i;:::-;9038:4;9031:81;8900:222;8235:887;;8265:618;8317:4;8313:9;8305:6;8301:22;8351:37;8383:4;8351:37;:::i;:::-;8410:1;8424:208;8438:7;8435:1;8432:14;8424:208;;;8517:9;8512:3;8508:19;8502:26;8494:6;8487:42;8568:1;8560:6;8556:14;8546:24;;8615:2;8604:9;8600:18;8587:31;;8461:4;8458:1;8454:12;8449:17;;8424:208;;;8660:6;8651:7;8648:19;8645:179;;;8718:9;8713:3;8709:19;8703:26;8761:48;8803:4;8795:6;8791:17;8780:9;8761:48;:::i;:::-;8753:6;8746:64;8668:156;8645:179;8870:1;8866;8858:6;8854:14;8850:22;8844:4;8837:36;8272:611;;;8235:887;;7825:1303;;;7733:1395;;:::o;9134:126::-;9171:7;9211:42;9204:5;9200:54;9189:65;;9134:126;;;:::o;9266:96::-;9303:7;9332:24;9350:5;9332:24;:::i;:::-;9321:35;;9266:96;;;:::o;9368:118::-;9455:24;9473:5;9455:24;:::i;:::-;9450:3;9443:37;9368:118;;:::o;9492:222::-;9585:4;9623:2;9612:9;9608:18;9600:26;;9636:71;9704:1;9693:9;9689:17;9680:6;9636:71;:::i;:::-;9492:222;;;;:::o;9720:180::-;9768:77;9765:1;9758:88;9865:4;9862:1;9855:15;9889:4;9886:1;9879:15;9906:191;9946:3;9965:20;9983:1;9965:20;:::i;:::-;9960:25;;9999:20;10017:1;9999:20;:::i;:::-;9994:25;;10042:1;10039;10035:9;10028:16;;10063:3;10060:1;10057:10;10054:36;;;10070:18;;:::i;:::-;10054:36;9906:191;;;;:::o;10103:118::-;10190:24;10208:5;10190:24;:::i;:::-;10185:3;10178:37;10103:118;;:::o;10227:442::-;10376:4;10414:2;10403:9;10399:18;10391:26;;10427:71;10495:1;10484:9;10480:17;10471:6;10427:71;:::i;:::-;10508:72;10576:2;10565:9;10561:18;10552:6;10508:72;:::i;:::-;10590;10658:2;10647:9;10643:18;10634:6;10590:72;:::i;:::-;10227:442;;;;;;:::o;10675:222::-;10768:4;10806:2;10795:9;10791:18;10783:26;;10819:71;10887:1;10876:9;10872:17;10863:6;10819:71;:::i;:::-;10675:222;;;;:::o;168:947:116:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a57806395d89b411161006457806395d89b4114610236578063a9059cbb14610254578063dd62ed3e14610284578063f2fde38b146102b4576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806390fd50b31461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d0565b6040516101019190610ef4565b60405180910390f35b610124600480360381019061011f9190610fa5565b610360565b6040516101319190610ffd565b60405180910390f35b610142610382565b60405161014f9190611025565b60405180910390f35b610172600480360381019061016d919061103e565b61038b565b60405161017f9190610ffd565b60405180910390f35b6101906103b9565b60405161019d91906110a9565b60405180910390f35b6101c060048036038101906101bb9190610fa5565b6103c1565b005b6101dc60048036038101906101d791906110c2565b610425565b6040516101e99190611025565b60405180910390f35b6101fa61046a565b005b61020461047d565b60405161021191906110fc565b60405180910390f35b610234600480360381019061022f9190611115565b6104a5565b005b61023e610500565b60405161024b9190610ef4565b60405180910390f35b61026e60048036038101906102699190610fa5565b610590565b60405161027b9190610ffd565b60405180910390f35b61029e60048036038101906102999190611140565b6105b2565b6040516102ab9190611025565b60405180910390f35b6102ce60048036038101906102c991906110c2565b610634565b005b6060600380546102df906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906111ab565b80156103565780601f1061032d57610100808354040283529160200191610356565b820191905f5260205f20905b81548152906001019060200180831161033957829003601f168201915b5050505050905090565b5f5f61036a6106b8565b90506103778185856106bf565b600191505092915050565b5f600254905090565b5f5f6103956106b8565b90506103a28582856106d1565b6103ad858585610764565b60019150509392505050565b5f6012905090565b6103c9610854565b6103d382826108db565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516104199190611025565b60405180910390a25050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610472610854565b61047b5f61095a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104af3382610a1d565b3373ffffffffffffffffffffffffffffffffffffffff167f22e3f162fca16dc0fcfb65eddf406531a0c555a2c24c58cf5d10fc2d202a882e826040516104f59190611025565b60405180910390a250565b60606004805461050f906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461053b906111ab565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b5f5f61059a6106b8565b90506105a7818585610764565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c610854565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a391906110fc565b60405180910390fd5b6106b58161095a565b50565b5f33905090565b6106cc8383836001610a9c565b505050565b5f6106dc84846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075e578181101561074f578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610746939291906111db565b60405180910390fd5b61075d84848484035f610a9c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107cb91906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610844575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161083b91906110fc565b60405180910390fd5b61084f838383610c6b565b505050565b61085c6106b8565b73ffffffffffffffffffffffffffffffffffffffff1661087a61047d565b73ffffffffffffffffffffffffffffffffffffffff16146108d95761089d6106b8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108d091906110fc565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361094b575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094291906110fc565b60405180910390fd5b6109565f8383610c6b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a8d575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a8491906110fc565b60405180910390fd5b610a98825f83610c6b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b0391906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b7391906110fc565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c65578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c5c9190611025565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cbb578060025f828254610caf919061123d565b92505081905550610d89565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d44578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d3b939291906111db565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0578060025f8282540392505081905550610e1a565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e779190611025565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ec682610e84565b610ed08185610e8e565b9350610ee0818560208601610e9e565b610ee981610eac565b840191505092915050565b5f6020820190508181035f830152610f0c8184610ebc565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4182610f18565b9050919050565b610f5181610f37565b8114610f5b575f5ffd5b50565b5f81359050610f6c81610f48565b92915050565b5f819050919050565b610f8481610f72565b8114610f8e575f5ffd5b50565b5f81359050610f9f81610f7b565b92915050565b5f5f60408385031215610fbb57610fba610f14565b5b5f610fc885828601610f5e565b9250506020610fd985828601610f91565b9150509250929050565b5f8115159050919050565b610ff781610fe3565b82525050565b5f6020820190506110105f830184610fee565b92915050565b61101f81610f72565b82525050565b5f6020820190506110385f830184611016565b92915050565b5f5f5f6060848603121561105557611054610f14565b5b5f61106286828701610f5e565b935050602061107386828701610f5e565b925050604061108486828701610f91565b9150509250925092565b5f60ff82169050919050565b6110a38161108e565b82525050565b5f6020820190506110bc5f83018461109a565b92915050565b5f602082840312156110d7576110d6610f14565b5b5f6110e484828501610f5e565b91505092915050565b6110f681610f37565b82525050565b5f60208201905061110f5f8301846110ed565b92915050565b5f6020828403121561112a57611129610f14565b5b5f61113784828501610f91565b91505092915050565b5f5f6040838503121561115657611155610f14565b5b5f61116385828601610f5e565b925050602061117485828601610f5e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111c257607f821691505b6020821081036111d5576111d461117e565b5b50919050565b5f6060820190506111ee5f8301866110ed565b6111fb6020830185611016565b6112086040830184611016565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124782610f72565b915061125283610f72565b925082820190508082111561126a57611269611210565b5b9291505056fea2646970667358221220b8d5dd40492c594ba6ce431b51cdbde840668667c4aaac1f210c376f895d484f64736f6c63430008220033","sourceMap":"168:947:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;990:123:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;825:122:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;990:123:116:-;1531:13:19;:11;:13::i;:::-;1058:17:116::1;1064:2;1068:6;1058:5;:17::i;:::-;1095:2;1090:16;;;1099:6;1090:16;;;;;;:::i;:::-;;;;;;;;990:123:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;825:122:116:-;874:25;880:10;892:6;874:5;:25::i;:::-;921:10;914:26;;;933:6;914:26;;;;;;:::i;:::-;;;;;;;;825:122;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7888:206:22:-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6478:6;6515:1;6509:4;6505:12;6495:22;;6562:1;6556:4;6552:12;6583:18;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6664:84;6485:269;6434:320;;;:::o;6760:442::-;6909:4;6947:2;6936:9;6932:18;6924:26;;6960:71;7028:1;7017:9;7013:17;7004:6;6960:71;:::i;:::-;7041:72;7109:2;7098:9;7094:18;7085:6;7041:72;:::i;:::-;7123;7191:2;7180:9;7176:18;7167:6;7123:72;:::i;:::-;6760:442;;;;;;:::o;7208:180::-;7256:77;7253:1;7246:88;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7394:191;7434:3;7453:20;7471:1;7453:20;:::i;:::-;7448:25;;7487:20;7505:1;7487:20;:::i;:::-;7482:25;;7530:1;7527;7523:9;7516:16;;7551:3;7548:1;7545:10;7542:36;;;7558:18;;:::i;:::-;7542:36;7394:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge(uint256)":"90fd50b3","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Bridge\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":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\":[{\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"bridge(uint256)\":{\"params\":{\"amount\":\": burn amount of token on the current chain and mint on the other chain\"}},\"constructor\":{\"params\":{\"name\":\"Token Name\",\"symbol\":\"Token Symbol\",\"totalSupply\":\"Token Supply\"}},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{\"bridge(uint256)\":{\"notice\":\"Bridge function\"},\"mint(address,uint256)\":{\"notice\":\"Mint function\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/54_CrossChainBridge/CrosschainERC20.sol\":\"CrossChainToken\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/54_CrossChainBridge/CrosschainERC20.sol\":{\"keccak256\":\"0x4474899b2b7c7af7142cdd53edc71f510d06bc1c0fdf0c75700ef2cd5ddc9e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2649eca912f57c8705a2a2fdb58413ebcfc2805974b1a27ea39285edd87a92f\",\"dweb:/ipfs/QmWscN77pT73hr9J1qkxjQbBHXHHXmPB2ZbrMZdomakcwr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"totalSupply","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Bridge","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","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":"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":[{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"bridge"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"bridge(uint256)":{"params":{"amount":": burn amount of token on the current chain and mint on the other chain"}},"constructor":{"params":{"name":"Token Name","symbol":"Token Symbol","totalSupply":"Token Supply"}},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{"bridge(uint256)":{"notice":"Bridge function"},"mint(address,uint256)":{"notice":"Mint function"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/54_CrossChainBridge/CrosschainERC20.sol":"CrossChainToken"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/54_CrossChainBridge/CrosschainERC20.sol":{"keccak256":"0x4474899b2b7c7af7142cdd53edc71f510d06bc1c0fdf0c75700ef2cd5ddc9e87","urls":["bzz-raw://f2649eca912f57c8705a2a2fdb58413ebcfc2805974b1a27ea39285edd87a92f","dweb:/ipfs/QmWscN77pT73hr9J1qkxjQbBHXHHXmPB2ZbrMZdomakcwr"],"license":"MIT"}},"version":1},"id":116} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"totalSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"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":"bridge","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"Bridge","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","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":"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052604051611cfa380380611cfa833981810160405281019061002591906105c3565b33838381600390816100379190610863565b5080600490816100479190610863565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ba575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100b19190610971565b60405180910390fd5b6100c9816100e260201b60201c565b506100da33826101a560201b60201c565b505050610a47565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610215575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161020c9190610971565b60405180910390fd5b6102265f838361022a60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361027a578060025f82825461026e91906109b7565b92505081905550610348565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610303578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102fa939291906109f9565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038f578060025f82825403925050819055506103d9565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104369190610a2e565b60405180910390a3505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104a28261045c565b810181811067ffffffffffffffff821117156104c1576104c061046c565b5b80604052505050565b5f6104d3610443565b90506104df8282610499565b919050565b5f67ffffffffffffffff8211156104fe576104fd61046c565b5b6105078261045c565b9050602081019050919050565b8281835e5f83830152505050565b5f61053461052f846104e4565b6104ca565b9050828152602081018484840111156105505761054f610458565b5b61055b848285610514565b509392505050565b5f82601f83011261057757610576610454565b5b8151610587848260208601610522565b91505092915050565b5f819050919050565b6105a281610590565b81146105ac575f5ffd5b50565b5f815190506105bd81610599565b92915050565b5f5f5f606084860312156105da576105d961044c565b5b5f84015167ffffffffffffffff8111156105f7576105f6610450565b5b61060386828701610563565b935050602084015167ffffffffffffffff81111561062457610623610450565b5b61063086828701610563565b9250506040610641868287016105af565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061069957607f821691505b6020821081036106ac576106ab610655565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261070e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106d3565b61071886836106d3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61075361074e61074984610590565b610730565b610590565b9050919050565b5f819050919050565b61076c83610739565b6107806107788261075a565b8484546106df565b825550505050565b5f5f905090565b610797610788565b6107a2818484610763565b505050565b5f5b828110156107c8576107bd5f82840161078f565b6001810190506107a9565b505050565b601f82111561081b578282111561081a576107e7816106b2565b6107f0836106c4565b6107f9856106c4565b6020861015610806575f90505b808301610815828403826107a7565b505050505b5b505050565b5f82821c905092915050565b5f61083b5f1984600802610820565b1980831691505092915050565b5f610853838361082c565b9150826002028217905092915050565b61086c8261064b565b67ffffffffffffffff8111156108855761088461046c565b5b61088f8254610682565b61089a8282856107cd565b5f60209050601f8311600181146108cb575f84156108b9578287015190505b6108c38582610848565b86555061092a565b601f1984166108d9866106b2565b5f5b82811015610900578489015182556001820191506020850194506020810190506108db565b8683101561091d5784890151610919601f89168261082c565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61095b82610932565b9050919050565b61096b81610951565b82525050565b5f6020820190506109845f830184610962565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6109c182610590565b91506109cc83610590565b92508282019050808211156109e4576109e361098a565b5b92915050565b6109f381610590565b82525050565b5f606082019050610a0c5f830186610962565b610a1960208301856109ea565b610a2660408301846109ea565b949350505050565b5f602082019050610a415f8301846109ea565b92915050565b6112a680610a545f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a57806395d89b411161006457806395d89b4114610236578063a9059cbb14610254578063dd62ed3e14610284578063f2fde38b146102b4576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806390fd50b31461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d0565b6040516101019190610ef4565b60405180910390f35b610124600480360381019061011f9190610fa5565b610360565b6040516101319190610ffd565b60405180910390f35b610142610382565b60405161014f9190611025565b60405180910390f35b610172600480360381019061016d919061103e565b61038b565b60405161017f9190610ffd565b60405180910390f35b6101906103b9565b60405161019d91906110a9565b60405180910390f35b6101c060048036038101906101bb9190610fa5565b6103c1565b005b6101dc60048036038101906101d791906110c2565b610425565b6040516101e99190611025565b60405180910390f35b6101fa61046a565b005b61020461047d565b60405161021191906110fc565b60405180910390f35b610234600480360381019061022f9190611115565b6104a5565b005b61023e610500565b60405161024b9190610ef4565b60405180910390f35b61026e60048036038101906102699190610fa5565b610590565b60405161027b9190610ffd565b60405180910390f35b61029e60048036038101906102999190611140565b6105b2565b6040516102ab9190611025565b60405180910390f35b6102ce60048036038101906102c991906110c2565b610634565b005b6060600380546102df906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906111ab565b80156103565780601f1061032d57610100808354040283529160200191610356565b820191905f5260205f20905b81548152906001019060200180831161033957829003601f168201915b5050505050905090565b5f5f61036a6106b8565b90506103778185856106bf565b600191505092915050565b5f600254905090565b5f5f6103956106b8565b90506103a28582856106d1565b6103ad858585610764565b60019150509392505050565b5f6012905090565b6103c9610854565b6103d382826108db565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516104199190611025565b60405180910390a25050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610472610854565b61047b5f61095a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104af3382610a1d565b3373ffffffffffffffffffffffffffffffffffffffff167f22e3f162fca16dc0fcfb65eddf406531a0c555a2c24c58cf5d10fc2d202a882e826040516104f59190611025565b60405180910390a250565b60606004805461050f906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461053b906111ab565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b5f5f61059a6106b8565b90506105a7818585610764565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c610854565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a391906110fc565b60405180910390fd5b6106b58161095a565b50565b5f33905090565b6106cc8383836001610a9c565b505050565b5f6106dc84846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075e578181101561074f578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610746939291906111db565b60405180910390fd5b61075d84848484035f610a9c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107cb91906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610844575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161083b91906110fc565b60405180910390fd5b61084f838383610c6b565b505050565b61085c6106b8565b73ffffffffffffffffffffffffffffffffffffffff1661087a61047d565b73ffffffffffffffffffffffffffffffffffffffff16146108d95761089d6106b8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108d091906110fc565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361094b575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094291906110fc565b60405180910390fd5b6109565f8383610c6b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a8d575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a8491906110fc565b60405180910390fd5b610a98825f83610c6b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b0391906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b7391906110fc565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c65578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c5c9190611025565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cbb578060025f828254610caf919061123d565b92505081905550610d89565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d44578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d3b939291906111db565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0578060025f8282540392505081905550610e1a565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e779190611025565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ec682610e84565b610ed08185610e8e565b9350610ee0818560208601610e9e565b610ee981610eac565b840191505092915050565b5f6020820190508181035f830152610f0c8184610ebc565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4182610f18565b9050919050565b610f5181610f37565b8114610f5b575f5ffd5b50565b5f81359050610f6c81610f48565b92915050565b5f819050919050565b610f8481610f72565b8114610f8e575f5ffd5b50565b5f81359050610f9f81610f7b565b92915050565b5f5f60408385031215610fbb57610fba610f14565b5b5f610fc885828601610f5e565b9250506020610fd985828601610f91565b9150509250929050565b5f8115159050919050565b610ff781610fe3565b82525050565b5f6020820190506110105f830184610fee565b92915050565b61101f81610f72565b82525050565b5f6020820190506110385f830184611016565b92915050565b5f5f5f6060848603121561105557611054610f14565b5b5f61106286828701610f5e565b935050602061107386828701610f5e565b925050604061108486828701610f91565b9150509250925092565b5f60ff82169050919050565b6110a38161108e565b82525050565b5f6020820190506110bc5f83018461109a565b92915050565b5f602082840312156110d7576110d6610f14565b5b5f6110e484828501610f5e565b91505092915050565b6110f681610f37565b82525050565b5f60208201905061110f5f8301846110ed565b92915050565b5f6020828403121561112a57611129610f14565b5b5f61113784828501610f91565b91505092915050565b5f5f6040838503121561115657611155610f14565b5b5f61116385828601610f5e565b925050602061117485828601610f5e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111c257607f821691505b6020821081036111d5576111d461117e565b5b50919050565b5f6060820190506111ee5f8301866110ed565b6111fb6020830185611016565b6112086040830184611016565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124782610f72565b915061125283610f72565b925082820190508082111561126a57611269611210565b5b9291505056fea2646970667358221220b8d5dd40492c594ba6ce431b51cdbde840668667c4aaac1f210c376f895d484f64736f6c63430008220033","sourceMap":"168:947:110:-:0;;;488:200;;;;;;;;;;;;;;;;;;;;;:::i;:::-;629:10;607:4;613:6;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;651:30:110::2;657:10;669:11;651:5;;;:30;;:::i;:::-;488:200:::0;;;168:947;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;;;:35;;:::i;:::-;7362:208;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:77::-;2607:7;2636:5;2625:16;;2570:77;;;:::o;2653:122::-;2726:24;2744:5;2726:24;:::i;:::-;2719:5;2716:35;2706:63;;2765:1;2762;2755:12;2706:63;2653:122;:::o;2781:143::-;2838:5;2869:6;2863:13;2854:22;;2885:33;2912:5;2885:33;:::i;:::-;2781:143;;;;:::o;2930:1009::-;3038:6;3046;3054;3103:2;3091:9;3082:7;3078:23;3074:32;3071:119;;;3109:79;;:::i;:::-;3071:119;3250:1;3239:9;3235:17;3229:24;3280:18;3272:6;3269:30;3266:117;;;3302:79;;:::i;:::-;3266:117;3407:74;3473:7;3464:6;3453:9;3449:22;3407:74;:::i;:::-;3397:84;;3200:291;3551:2;3540:9;3536:18;3530:25;3582:18;3574:6;3571:30;3568:117;;;3604:79;;:::i;:::-;3568:117;3709:74;3775:7;3766:6;3755:9;3751:22;3709:74;:::i;:::-;3699:84;;3501:292;3832:2;3858:64;3914:7;3905:6;3894:9;3890:22;3858:64;:::i;:::-;3848:74;;3803:129;2930:1009;;;;;:::o;3945:99::-;3997:6;4031:5;4025:12;4015:22;;3945:99;;;:::o;4050:180::-;4098:77;4095:1;4088:88;4195:4;4192:1;4185:15;4219:4;4216:1;4209:15;4236:320;4280:6;4317:1;4311:4;4307:12;4297:22;;4364:1;4358:4;4354:12;4385:18;4375:81;;4441:4;4433:6;4429:17;4419:27;;4375:81;4503:2;4495:6;4492:14;4472:18;4469:38;4466:84;;4522:18;;:::i;:::-;4466:84;4287:269;4236:320;;;:::o;4562:141::-;4611:4;4634:3;4626:11;;4657:3;4654:1;4647:14;4691:4;4688:1;4678:18;4670:26;;4562:141;;;:::o;4709:93::-;4746:6;4793:2;4788;4781:5;4777:14;4773:23;4763:33;;4709:93;;;:::o;4808:107::-;4852:8;4902:5;4896:4;4892:16;4871:37;;4808:107;;;;:::o;4921:393::-;4990:6;5040:1;5028:10;5024:18;5063:97;5093:66;5082:9;5063:97;:::i;:::-;5181:39;5211:8;5200:9;5181:39;:::i;:::-;5169:51;;5253:4;5249:9;5242:5;5238:21;5229:30;;5302:4;5292:8;5288:19;5281:5;5278:30;5268:40;;4997:317;;4921:393;;;;;:::o;5320:60::-;5348:3;5369:5;5362:12;;5320:60;;;:::o;5386:142::-;5436:9;5469:53;5487:34;5496:24;5514:5;5496:24;:::i;:::-;5487:34;:::i;:::-;5469:53;:::i;:::-;5456:66;;5386:142;;;:::o;5534:75::-;5577:3;5598:5;5591:12;;5534:75;;;:::o;5615:269::-;5725:39;5756:7;5725:39;:::i;:::-;5786:91;5835:41;5859:16;5835:41;:::i;:::-;5827:6;5820:4;5814:11;5786:91;:::i;:::-;5780:4;5773:105;5691:193;5615:269;;;:::o;5890:73::-;5935:3;5956:1;5949:8;;5890:73;:::o;5969:189::-;6046:32;;:::i;:::-;6087:65;6145:6;6137;6131:4;6087:65;:::i;:::-;6022:136;5969:189;;:::o;6164:214::-;6249:1;6234:138;6259:9;6256:1;6253:16;6234:138;;;6311:51;6360:1;6356;6345:9;6341:17;6311:51;:::i;:::-;6284:1;6281;6277:9;6272:14;;6234:138;;;6238:14;6164:214;;:::o;6384:746::-;6485:2;6480:3;6477:11;6474:649;;;6514:10;6509:3;6506:19;6503:610;;;6560:38;6592:5;6560:38;:::i;:::-;6635:22;6653:3;6635:22;:::i;:::-;6694:29;6712:10;6694:29;:::i;:::-;6884:2;6872:10;6869:18;6866:79;;;6926:1;6910:17;;6866:79;6995:12;6985:8;6981:27;7025:74;7085:12;7071;7067:31;7054:11;7025:74;:::i;:::-;6526:587;;;;6503:610;6474:649;6384:746;;;:::o;7136:117::-;7190:8;7240:5;7234:4;7230:16;7209:37;;7136:117;;;;:::o;7259:169::-;7303:6;7336:51;7384:1;7380:6;7372:5;7369:1;7365:13;7336:51;:::i;:::-;7332:56;7417:4;7411;7407:15;7397:25;;7310:118;7259:169;;;;:::o;7433:295::-;7509:4;7655:29;7680:3;7674:4;7655:29;:::i;:::-;7647:37;;7717:3;7714:1;7710:11;7704:4;7701:21;7693:29;;7433:295;;;;:::o;7733:1395::-;7850:37;7883:3;7850:37;:::i;:::-;7952:18;7944:6;7941:30;7938:56;;;7974:18;;:::i;:::-;7938:56;8018:38;8050:4;8044:11;8018:38;:::i;:::-;8103:67;8163:6;8155;8149:4;8103:67;:::i;:::-;8197:1;8221:4;8208:17;;8253:2;8245:6;8242:14;8270:1;8265:618;;;;8927:1;8944:6;8941:77;;;8993:9;8988:3;8984:19;8978:26;8969:35;;8941:77;9044:67;9104:6;9097:5;9044:67;:::i;:::-;9038:4;9031:81;8900:222;8235:887;;8265:618;8317:4;8313:9;8305:6;8301:22;8351:37;8383:4;8351:37;:::i;:::-;8410:1;8424:208;8438:7;8435:1;8432:14;8424:208;;;8517:9;8512:3;8508:19;8502:26;8494:6;8487:42;8568:1;8560:6;8556:14;8546:24;;8615:2;8604:9;8600:18;8587:31;;8461:4;8458:1;8454:12;8449:17;;8424:208;;;8660:6;8651:7;8648:19;8645:179;;;8718:9;8713:3;8709:19;8703:26;8761:48;8803:4;8795:6;8791:17;8780:9;8761:48;:::i;:::-;8753:6;8746:64;8668:156;8645:179;8870:1;8866;8858:6;8854:14;8850:22;8844:4;8837:36;8272:611;;;8235:887;;7825:1303;;;7733:1395;;:::o;9134:126::-;9171:7;9211:42;9204:5;9200:54;9189:65;;9134:126;;;:::o;9266:96::-;9303:7;9332:24;9350:5;9332:24;:::i;:::-;9321:35;;9266:96;;;:::o;9368:118::-;9455:24;9473:5;9455:24;:::i;:::-;9450:3;9443:37;9368:118;;:::o;9492:222::-;9585:4;9623:2;9612:9;9608:18;9600:26;;9636:71;9704:1;9693:9;9689:17;9680:6;9636:71;:::i;:::-;9492:222;;;;:::o;9720:180::-;9768:77;9765:1;9758:88;9865:4;9862:1;9855:15;9889:4;9886:1;9879:15;9906:191;9946:3;9965:20;9983:1;9965:20;:::i;:::-;9960:25;;9999:20;10017:1;9999:20;:::i;:::-;9994:25;;10042:1;10039;10035:9;10028:16;;10063:3;10060:1;10057:10;10054:36;;;10070:18;;:::i;:::-;10054:36;9906:191;;;;:::o;10103:118::-;10190:24;10208:5;10190:24;:::i;:::-;10185:3;10178:37;10103:118;;:::o;10227:442::-;10376:4;10414:2;10403:9;10399:18;10391:26;;10427:71;10495:1;10484:9;10480:17;10471:6;10427:71;:::i;:::-;10508:72;10576:2;10565:9;10561:18;10552:6;10508:72;:::i;:::-;10590;10658:2;10647:9;10643:18;10634:6;10590:72;:::i;:::-;10227:442;;;;;;:::o;10675:222::-;10768:4;10806:2;10795:9;10791:18;10783:26;;10819:71;10887:1;10876:9;10872:17;10863:6;10819:71;:::i;:::-;10675:222;;;;:::o;168:947:110:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a57806395d89b411161006457806395d89b4114610236578063a9059cbb14610254578063dd62ed3e14610284578063f2fde38b146102b4576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806390fd50b31461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d0565b6040516101019190610ef4565b60405180910390f35b610124600480360381019061011f9190610fa5565b610360565b6040516101319190610ffd565b60405180910390f35b610142610382565b60405161014f9190611025565b60405180910390f35b610172600480360381019061016d919061103e565b61038b565b60405161017f9190610ffd565b60405180910390f35b6101906103b9565b60405161019d91906110a9565b60405180910390f35b6101c060048036038101906101bb9190610fa5565b6103c1565b005b6101dc60048036038101906101d791906110c2565b610425565b6040516101e99190611025565b60405180910390f35b6101fa61046a565b005b61020461047d565b60405161021191906110fc565b60405180910390f35b610234600480360381019061022f9190611115565b6104a5565b005b61023e610500565b60405161024b9190610ef4565b60405180910390f35b61026e60048036038101906102699190610fa5565b610590565b60405161027b9190610ffd565b60405180910390f35b61029e60048036038101906102999190611140565b6105b2565b6040516102ab9190611025565b60405180910390f35b6102ce60048036038101906102c991906110c2565b610634565b005b6060600380546102df906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906111ab565b80156103565780601f1061032d57610100808354040283529160200191610356565b820191905f5260205f20905b81548152906001019060200180831161033957829003601f168201915b5050505050905090565b5f5f61036a6106b8565b90506103778185856106bf565b600191505092915050565b5f600254905090565b5f5f6103956106b8565b90506103a28582856106d1565b6103ad858585610764565b60019150509392505050565b5f6012905090565b6103c9610854565b6103d382826108db565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040516104199190611025565b60405180910390a25050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610472610854565b61047b5f61095a565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104af3382610a1d565b3373ffffffffffffffffffffffffffffffffffffffff167f22e3f162fca16dc0fcfb65eddf406531a0c555a2c24c58cf5d10fc2d202a882e826040516104f59190611025565b60405180910390a250565b60606004805461050f906111ab565b80601f016020809104026020016040519081016040528092919081815260200182805461053b906111ab565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b5f5f61059a6106b8565b90506105a7818585610764565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61063c610854565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106ac575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106a391906110fc565b60405180910390fd5b6106b58161095a565b50565b5f33905090565b6106cc8383836001610a9c565b505050565b5f6106dc84846105b2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075e578181101561074f578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610746939291906111db565b60405180910390fd5b61075d84848484035f610a9c565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d4575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107cb91906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610844575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161083b91906110fc565b60405180910390fd5b61084f838383610c6b565b505050565b61085c6106b8565b73ffffffffffffffffffffffffffffffffffffffff1661087a61047d565b73ffffffffffffffffffffffffffffffffffffffff16146108d95761089d6106b8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108d091906110fc565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361094b575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161094291906110fc565b60405180910390fd5b6109565f8383610c6b565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a8d575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a8491906110fc565b60405180910390fd5b610a98825f83610c6b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b0391906110fc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b7c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b7391906110fc565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c65578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c5c9190611025565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cbb578060025f828254610caf919061123d565b92505081905550610d89565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d44578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d3b939291906111db565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0578060025f8282540392505081905550610e1a565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e779190611025565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ec682610e84565b610ed08185610e8e565b9350610ee0818560208601610e9e565b610ee981610eac565b840191505092915050565b5f6020820190508181035f830152610f0c8184610ebc565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f4182610f18565b9050919050565b610f5181610f37565b8114610f5b575f5ffd5b50565b5f81359050610f6c81610f48565b92915050565b5f819050919050565b610f8481610f72565b8114610f8e575f5ffd5b50565b5f81359050610f9f81610f7b565b92915050565b5f5f60408385031215610fbb57610fba610f14565b5b5f610fc885828601610f5e565b9250506020610fd985828601610f91565b9150509250929050565b5f8115159050919050565b610ff781610fe3565b82525050565b5f6020820190506110105f830184610fee565b92915050565b61101f81610f72565b82525050565b5f6020820190506110385f830184611016565b92915050565b5f5f5f6060848603121561105557611054610f14565b5b5f61106286828701610f5e565b935050602061107386828701610f5e565b925050604061108486828701610f91565b9150509250925092565b5f60ff82169050919050565b6110a38161108e565b82525050565b5f6020820190506110bc5f83018461109a565b92915050565b5f602082840312156110d7576110d6610f14565b5b5f6110e484828501610f5e565b91505092915050565b6110f681610f37565b82525050565b5f60208201905061110f5f8301846110ed565b92915050565b5f6020828403121561112a57611129610f14565b5b5f61113784828501610f91565b91505092915050565b5f5f6040838503121561115657611155610f14565b5b5f61116385828601610f5e565b925050602061117485828601610f5e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111c257607f821691505b6020821081036111d5576111d461117e565b5b50919050565b5f6060820190506111ee5f8301866110ed565b6111fb6020830185611016565b6112086040830184611016565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124782610f72565b915061125283610f72565b925082820190508082111561126a57611269611210565b5b9291505056fea2646970667358221220b8d5dd40492c594ba6ce431b51cdbde840668667c4aaac1f210c376f895d484f64736f6c63430008220033","sourceMap":"168:947:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;990:123:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;825:122:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;990:123:110:-;1531:13:19;:11;:13::i;:::-;1058:17:110::1;1064:2;1068:6;1058:5;:17::i;:::-;1095:2;1090:16;;;1099:6;1090:16;;;;;;:::i;:::-;;;;;;;;990:123:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;825:122:110:-;874:25;880:10;892:6;874:5;:25::i;:::-;921:10;914:26;;;933:6;914:26;;;;;;:::i;:::-;;;;;;;;825:122;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7888:206:22:-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:320;6478:6;6515:1;6509:4;6505:12;6495:22;;6562:1;6556:4;6552:12;6583:18;6573:81;;6639:4;6631:6;6627:17;6617:27;;6573:81;6701:2;6693:6;6690:14;6670:18;6667:38;6664:84;;6720:18;;:::i;:::-;6664:84;6485:269;6434:320;;;:::o;6760:442::-;6909:4;6947:2;6936:9;6932:18;6924:26;;6960:71;7028:1;7017:9;7013:17;7004:6;6960:71;:::i;:::-;7041:72;7109:2;7098:9;7094:18;7085:6;7041:72;:::i;:::-;7123;7191:2;7180:9;7176:18;7167:6;7123:72;:::i;:::-;6760:442;;;;;;:::o;7208:180::-;7256:77;7253:1;7246:88;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7394:191;7434:3;7453:20;7471:1;7453:20;:::i;:::-;7448:25;;7487:20;7505:1;7487:20;:::i;:::-;7482:25;;7530:1;7527;7523:9;7516:16;;7551:3;7548:1;7545:10;7542:36;;;7558:18;;:::i;:::-;7542:36;7394:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge(uint256)":"90fd50b3","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Bridge\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":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\":[{\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"bridge(uint256)\":{\"params\":{\"amount\":\": burn amount of token on the current chain and mint on the other chain\"}},\"constructor\":{\"params\":{\"name\":\"Token Name\",\"symbol\":\"Token Symbol\",\"totalSupply\":\"Token Supply\"}},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{\"bridge(uint256)\":{\"notice\":\"Bridge function\"},\"mint(address,uint256)\":{\"notice\":\"Mint function\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/54_CrossChainBridge/CrosschainERC20.sol\":\"CrossChainToken\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/54_CrossChainBridge/CrosschainERC20.sol\":{\"keccak256\":\"0x4474899b2b7c7af7142cdd53edc71f510d06bc1c0fdf0c75700ef2cd5ddc9e87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2649eca912f57c8705a2a2fdb58413ebcfc2805974b1a27ea39285edd87a92f\",\"dweb:/ipfs/QmWscN77pT73hr9J1qkxjQbBHXHHXmPB2ZbrMZdomakcwr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"totalSupply","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Bridge","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","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":"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":[{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"bridge"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"bridge(uint256)":{"params":{"amount":": burn amount of token on the current chain and mint on the other chain"}},"constructor":{"params":{"name":"Token Name","symbol":"Token Symbol","totalSupply":"Token Supply"}},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{"bridge(uint256)":{"notice":"Bridge function"},"mint(address,uint256)":{"notice":"Mint function"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/54_CrossChainBridge/CrosschainERC20.sol":"CrossChainToken"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/54_CrossChainBridge/CrosschainERC20.sol":{"keccak256":"0x4474899b2b7c7af7142cdd53edc71f510d06bc1c0fdf0c75700ef2cd5ddc9e87","urls":["bzz-raw://f2649eca912f57c8705a2a2fdb58413ebcfc2805974b1a27ea39285edd87a92f","dweb:/ipfs/QmWscN77pT73hr9J1qkxjQbBHXHHXmPB2ZbrMZdomakcwr"],"license":"MIT"}},"version":1},"id":110} \ No newline at end of file diff --git a/out/DataStorage.sol/DataStorage.json b/out/DataStorage.sol/DataStorage.json index c9bc46e0..28383834 100644 --- a/out/DataStorage.sol/DataStorage.json +++ b/out/DataStorage.sol/DataStorage.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"fCalldata","inputs":[{"name":"_x","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"fMemory","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"fStorage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"x","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060600160405280600160ff168152602001600260ff168152602001600360ff168152505f9081610038919061024f565b50348015610044575f5ffd5b506102d3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f819050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f600883026100eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826100b0565b6100f586836100b0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61013061012b61012684610081565b61010d565b610081565b9050919050565b5f819050919050565b61014983610116565b61015d61015582610137565b8484546100bc565b825550505050565b5f5f905090565b610174610165565b61017f818484610140565b505050565b5f5b828110156101a55761019a5f82840161016c565b600181019050610186565b505050565b818310156101e1576101bb8261008a565b6101c48461008a565b6101cd8361009e565b8181016101dc83850382610184565b505050505b505050565b68010000000000000000821115610200576101ff61004a565b5b61020981610077565b8282556102178382846101aa565b505050565b5f60039050919050565b5f60ff82169050919050565b5f61023d8251610226565b80915050919050565b5f819050919050565b6102588261021c565b67ffffffffffffffff8111156102715761027061004a565b5b61027b81836101e6565b61028483610246565b61028d8361009e565b600183045f5b818110156102ca575f6102a585610232565b6102ae81610137565b8092506020870196505050808285015550600181019050610293565b50505050505050565b61045b806102e05f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063200289901461004e5780633f4263ef146100585780636a8d1e08146100885780639b1a379c14610092575b5f5ffd5b6100566100c3565b005b610072600480360381019061006d919061025f565b6101ce565b60405161007f9190610299565b60405180910390f35b6100906101ed565b005b6100ac60048036038101906100a79190610313565b610215565b6040516100ba9291906103d6565b60405180910390f35b5f5f80548060200260200160405190810160405280929190818152602001828054801561010d57602002820191905f5260205f20905b8154815260200190600101908083116100f9575b505050505090506064815f81518110610129576101286103f8565b5b60200260200101818152505060c88160018151811061014b5761014a6103f8565b5b6020026020010181815250505f5f8054806020026020016040519081016040528092919081815260200182805480156101a157602002820191905f5260205f20905b81548152602001906001019080831161018d575b5050505050905061012c815f815181106101be576101bd6103f8565b5b6020026020010181815250505050565b5f81815481106101dc575f80fd5b905f5260205f20015f915090505481565b5f5f90506064815f81548110610206576102056103f8565b5b905f5260205f20018190555050565b365f8383915091509250929050565b5f5ffd5b5f5ffd5b5f819050919050565b61023e8161022c565b8114610248575f5ffd5b50565b5f8135905061025981610235565b92915050565b5f6020828403121561027457610273610224565b5b5f6102818482850161024b565b91505092915050565b6102938161022c565b82525050565b5f6020820190506102ac5f83018461028a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102d3576102d26102b2565b5b8235905067ffffffffffffffff8111156102f0576102ef6102b6565b5b60208301915083602082028301111561030c5761030b6102ba565b5b9250929050565b5f5f6020838503121561032957610328610224565b5b5f83013567ffffffffffffffff81111561034657610345610228565b5b610352858286016102be565b92509250509250929050565b5f82825260208201905092915050565b5f5ffd5b82818337505050565b5f610386838561035e565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156103b9576103b861036e565b5b6020830292506103ca838584610372565b82840190509392505050565b5f6020820190508181035f8301526103ef81848661037b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220427935779af6775733547f757ed4f09ead558a1f012a174f9c9538851bfd768964736f6c63430008220033","sourceMap":"58:846:48:-:0;;;204:25;;;;;;;;223:1;204:25;;;;;;225:1;204:25;;;;;;227:1;204:25;;;;;;;;;;;;:::i;:::-;;58:846;;;;;;;;;;;;7:180:145;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:111;257:6;291:5;285:12;275:22;;193:111;;;:::o;310:77::-;347:7;376:5;365:16;;310:77;;;:::o;995:203::-;1076:4;1099:6;1091:14;;1189:1;1184;1181;1177:9;1169:6;1165:22;1161:30;1153:38;;995:203;;;:::o;1203:156::-;1267:4;1290:3;1282:11;;1313:3;1310:1;1303:14;1347:4;1344:1;1334:18;1326:26;;1203:156;;;:::o;1365:107::-;1409:8;1459:5;1453:4;1449:16;1428:37;;1365:107;;;;:::o;1478:393::-;1547:6;1597:1;1585:10;1581:18;1620:97;1650:66;1639:9;1620:97;:::i;:::-;1738:39;1768:8;1757:9;1738:39;:::i;:::-;1726:51;;1810:4;1806:9;1799:5;1795:21;1786:30;;1859:4;1849:8;1845:19;1838:5;1835:30;1825:40;;1554:317;;1478:393;;;;;:::o;1877:60::-;1905:3;1926:5;1919:12;;1877:60;;;:::o;1943:142::-;1993:9;2026:53;2044:34;2053:24;2071:5;2053:24;:::i;:::-;2044:34;:::i;:::-;2026:53;:::i;:::-;2013:66;;1943:142;;;:::o;2091:75::-;2134:3;2155:5;2148:12;;2091:75;;;:::o;2172:269::-;2282:39;2313:7;2282:39;:::i;:::-;2343:91;2392:41;2416:16;2392:41;:::i;:::-;2384:6;2377:4;2371:11;2343:91;:::i;:::-;2337:4;2330:105;2248:193;2172:269;;;:::o;2447:73::-;2492:3;2513:1;2506:8;;2447:73;:::o;2526:189::-;2603:32;;:::i;:::-;2644:65;2702:6;2694;2688:4;2644:65;:::i;:::-;2579:136;2526:189;;:::o;2721:215::-;2807:1;2792:138;2817:9;2814:1;2811:16;2792:138;;;2869:51;2918:1;2914;2903:9;2899:17;2869:51;:::i;:::-;2842:1;2839;2835:9;2830:14;;2792:138;;;2796:14;2721:215;;:::o;3315:640::-;3435:3;3423:10;3420:19;3417:531;;;3526:65;3587:3;3526:65;:::i;:::-;3624:72;3685:10;3624:72;:::i;:::-;3731:53;3778:5;3731:53;:::i;:::-;3836:12;3820:14;3816:33;3863:75;3924:12;3910;3906:31;3893:11;3863:75;:::i;:::-;3440:508;;;;3417:531;3315:640;;;:::o;3961:388::-;4054:20;4046:6;4043:32;4040:78;;;4090:18;;:::i;:::-;4040:78;4142:51;4187:5;4142:51;:::i;:::-;4245:6;4238:5;4231:21;4262:80;4335:6;4327;4320:5;4262:80;:::i;:::-;4030:319;3961:388;;:::o;4354:102::-;4417:6;4445:4;4435:14;;4354:102;;;:::o;4462:86::-;4497:7;4537:4;4530:5;4526:16;4515:27;;4462:86;;;:::o;4554:150::-;4595:11;4631:27;4653:3;4647:10;4631:27;:::i;:::-;4692:5;4668:29;;4607:97;4554:150;;;:::o;4710:96::-;4773:4;4796:3;4788:11;;4710:96;;;:::o;5258:987::-;5395:48;5439:3;5395:48;:::i;:::-;5508:18;5500:6;5497:30;5494:56;;;5530:18;;:::i;:::-;5494:56;5559:57;5609:6;5604:3;5559:57;:::i;:::-;5640:50;5686:3;5640:50;:::i;:::-;5714:51;5761:3;5714:51;:::i;:::-;5804:1;5796:6;5792:14;5831:1;5816:422;5841:9;5838:1;5835:16;5816:422;;;5905:1;5958:31;5982:6;5958:31;:::i;:::-;6024:36;6048:11;6024:36;:::i;:::-;6110:9;6077:42;;6159:2;6151:6;6147:15;6137:25;;5920:257;;6215:12;6211:1;6202:7;6198:15;6191:37;5871:367;5866:1;5863;5859:9;5854:14;;5816:422;;;5820:14;5370:875;;;;5258:987;;:::o;58:846:48:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063200289901461004e5780633f4263ef146100585780636a8d1e08146100885780639b1a379c14610092575b5f5ffd5b6100566100c3565b005b610072600480360381019061006d919061025f565b6101ce565b60405161007f9190610299565b60405180910390f35b6100906101ed565b005b6100ac60048036038101906100a79190610313565b610215565b6040516100ba9291906103d6565b60405180910390f35b5f5f80548060200260200160405190810160405280929190818152602001828054801561010d57602002820191905f5260205f20905b8154815260200190600101908083116100f9575b505050505090506064815f81518110610129576101286103f8565b5b60200260200101818152505060c88160018151811061014b5761014a6103f8565b5b6020026020010181815250505f5f8054806020026020016040519081016040528092919081815260200182805480156101a157602002820191905f5260205f20905b81548152602001906001019080831161018d575b5050505050905061012c815f815181106101be576101bd6103f8565b5b6020026020010181815250505050565b5f81815481106101dc575f80fd5b905f5260205f20015f915090505481565b5f5f90506064815f81548110610206576102056103f8565b5b905f5260205f20018190555050565b365f8383915091509250929050565b5f5ffd5b5f5ffd5b5f819050919050565b61023e8161022c565b8114610248575f5ffd5b50565b5f8135905061025981610235565b92915050565b5f6020828403121561027457610273610224565b5b5f6102818482850161024b565b91505092915050565b6102938161022c565b82525050565b5f6020820190506102ac5f83018461028a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102d3576102d26102b2565b5b8235905067ffffffffffffffff8111156102f0576102ef6102b6565b5b60208301915083602082028301111561030c5761030b6102ba565b5b9250929050565b5f5f6020838503121561032957610328610224565b5b5f83013567ffffffffffffffff81111561034657610345610228565b5b610352858286016102be565b92509250509250929050565b5f82825260208201905092915050565b5f5ffd5b82818337505050565b5f610386838561035e565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156103b9576103b861036e565b5b6020830292506103ca838584610372565b82840190509392505050565b5f6020820190508181035f8301526103ef81848661037b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220427935779af6775733547f757ed4f09ead558a1f012a174f9c9538851bfd768964736f6c63430008220033","sourceMap":"58:846:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:271;;;:::i;:::-;;204:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;236:184;;;:::i;:::-;;703:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;426:271;550:21;574:1;550:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:3;585:7;593:1;585:10;;;;;;;;:::i;:::-;;;;;;;:16;;;;;624:3;611:7;619:1;611:10;;;;;;;;:::i;:::-;;;;;;;:16;;;;;637:22;662:1;637:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;687:3;673:8;682:1;673:11;;;;;;;;:::i;:::-;;;;;;;:17;;;;;456:241;;426:271::o;204:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;236:184::-;359:23;385:1;359:27;;410:3;396:8;405:1;396:11;;;;;;;;:::i;:::-;;;;;;;;;:17;;;;262:158;236:184::o;703:199::-;762:15;;892:2;;885:10;;;;703:199;;;;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:117::-;1486:1;1483;1476:12;1500:117;1609:1;1606;1599:12;1623:117;1732:1;1729;1722:12;1763:568;1836:8;1846:6;1896:3;1889:4;1881:6;1877:17;1873:27;1863:122;;1904:79;;:::i;:::-;1863:122;2017:6;2004:20;1994:30;;2047:18;2039:6;2036:30;2033:117;;;2069:79;;:::i;:::-;2033:117;2183:4;2175:6;2171:17;2159:29;;2237:3;2229:4;2221:6;2217:17;2207:8;2203:32;2200:41;2197:128;;;2244:79;;:::i;:::-;2197:128;1763:568;;;;;:::o;2337:559::-;2423:6;2431;2480:2;2468:9;2459:7;2455:23;2451:32;2448:119;;;2486:79;;:::i;:::-;2448:119;2634:1;2623:9;2619:17;2606:31;2664:18;2656:6;2653:30;2650:117;;;2686:79;;:::i;:::-;2650:117;2799:80;2871:7;2862:6;2851:9;2847:22;2799:80;:::i;:::-;2781:98;;;;2577:312;2337:559;;;;;:::o;2902:184::-;3001:11;3035:6;3030:3;3023:19;3075:4;3070:3;3066:14;3051:29;;2902:184;;;;:::o;3092:117::-;3201:1;3198;3191:12;3215:99;3300:6;3295:3;3290;3277:30;3215:99;;;:::o;3350:537::-;3478:3;3499:86;3578:6;3573:3;3499:86;:::i;:::-;3492:93;;3609:66;3601:6;3598:78;3595:165;;;3679:79;;:::i;:::-;3595:165;3791:4;3783:6;3779:17;3769:27;;3806:43;3842:6;3837:3;3830:5;3806:43;:::i;:::-;3874:6;3869:3;3865:16;3858:23;;3350:537;;;;;:::o;3893:393::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4133:9;4127:4;4123:20;4119:1;4108:9;4104:17;4097:47;4161:118;4274:4;4265:6;4257;4161:118;:::i;:::-;4153:126;;3893:393;;;;;:::o;4292:180::-;4340:77;4337:1;4330:88;4437:4;4434:1;4427:15;4461:4;4458:1;4451:15","linkReferences":{}},"methodIdentifiers":{"fCalldata(uint256[])":"9b1a379c","fMemory()":"20028990","fStorage()":"6a8d1e08","x(uint256)":"3f4263ef"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_x\",\"type\":\"uint256[]\"}],\"name\":\"fCalldata\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fMemory\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/05_DataStorage/DataStorage.sol\":\"DataStorage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/05_DataStorage/DataStorage.sol\":{\"keccak256\":\"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673\",\"dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"_x","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"fCalldata","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"fStorage"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/05_DataStorage/DataStorage.sol":"DataStorage"},"evmVersion":"prague","libraries":{}},"sources":{"src/05_DataStorage/DataStorage.sol":{"keccak256":"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5","urls":["bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673","dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file +{"abi":[{"type":"function","name":"fCalldata","inputs":[{"name":"_x","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"fMemory","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"fStorage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"x","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060600160405280600160ff168152602001600260ff168152602001600360ff168152505f9081610038919061024f565b50348015610044575f5ffd5b506102d3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81549050919050565b5f819050919050565b5f8190506001806001038301049050919050565b5f819050815f5260205f209050919050565b5f82821b905092915050565b5f600883026100eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826100b0565b6100f586836100b0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61013061012b61012684610081565b61010d565b610081565b9050919050565b5f819050919050565b61014983610116565b61015d61015582610137565b8484546100bc565b825550505050565b5f5f905090565b610174610165565b61017f818484610140565b505050565b5f5b828110156101a55761019a5f82840161016c565b600181019050610186565b505050565b818310156101e1576101bb8261008a565b6101c48461008a565b6101cd8361009e565b8181016101dc83850382610184565b505050505b505050565b68010000000000000000821115610200576101ff61004a565b5b61020981610077565b8282556102178382846101aa565b505050565b5f60039050919050565b5f60ff82169050919050565b5f61023d8251610226565b80915050919050565b5f819050919050565b6102588261021c565b67ffffffffffffffff8111156102715761027061004a565b5b61027b81836101e6565b61028483610246565b61028d8361009e565b600183045f5b818110156102ca575f6102a585610232565b6102ae81610137565b8092506020870196505050808285015550600181019050610293565b50505050505050565b61045b806102e05f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063200289901461004e5780633f4263ef146100585780636a8d1e08146100885780639b1a379c14610092575b5f5ffd5b6100566100c3565b005b610072600480360381019061006d919061025f565b6101ce565b60405161007f9190610299565b60405180910390f35b6100906101ed565b005b6100ac60048036038101906100a79190610313565b610215565b6040516100ba9291906103d6565b60405180910390f35b5f5f80548060200260200160405190810160405280929190818152602001828054801561010d57602002820191905f5260205f20905b8154815260200190600101908083116100f9575b505050505090506064815f81518110610129576101286103f8565b5b60200260200101818152505060c88160018151811061014b5761014a6103f8565b5b6020026020010181815250505f5f8054806020026020016040519081016040528092919081815260200182805480156101a157602002820191905f5260205f20905b81548152602001906001019080831161018d575b5050505050905061012c815f815181106101be576101bd6103f8565b5b6020026020010181815250505050565b5f81815481106101dc575f80fd5b905f5260205f20015f915090505481565b5f5f90506064815f81548110610206576102056103f8565b5b905f5260205f20018190555050565b365f8383915091509250929050565b5f5ffd5b5f5ffd5b5f819050919050565b61023e8161022c565b8114610248575f5ffd5b50565b5f8135905061025981610235565b92915050565b5f6020828403121561027457610273610224565b5b5f6102818482850161024b565b91505092915050565b6102938161022c565b82525050565b5f6020820190506102ac5f83018461028a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102d3576102d26102b2565b5b8235905067ffffffffffffffff8111156102f0576102ef6102b6565b5b60208301915083602082028301111561030c5761030b6102ba565b5b9250929050565b5f5f6020838503121561032957610328610224565b5b5f83013567ffffffffffffffff81111561034657610345610228565b5b610352858286016102be565b92509250509250929050565b5f82825260208201905092915050565b5f5ffd5b82818337505050565b5f610386838561035e565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156103b9576103b861036e565b5b6020830292506103ca838584610372565b82840190509392505050565b5f6020820190508181035f8301526103ef81848661037b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220427935779af6775733547f757ed4f09ead558a1f012a174f9c9538851bfd768964736f6c63430008220033","sourceMap":"58:846:48:-:0;;;204:25;;;;;;;;223:1;204:25;;;;;;225:1;204:25;;;;;;227:1;204:25;;;;;;;;;;;;:::i;:::-;;58:846;;;;;;;;;;;;7:180:139;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:111;257:6;291:5;285:12;275:22;;193:111;;;:::o;310:77::-;347:7;376:5;365:16;;310:77;;;:::o;995:203::-;1076:4;1099:6;1091:14;;1189:1;1184;1181;1177:9;1169:6;1165:22;1161:30;1153:38;;995:203;;;:::o;1203:156::-;1267:4;1290:3;1282:11;;1313:3;1310:1;1303:14;1347:4;1344:1;1334:18;1326:26;;1203:156;;;:::o;1365:107::-;1409:8;1459:5;1453:4;1449:16;1428:37;;1365:107;;;;:::o;1478:393::-;1547:6;1597:1;1585:10;1581:18;1620:97;1650:66;1639:9;1620:97;:::i;:::-;1738:39;1768:8;1757:9;1738:39;:::i;:::-;1726:51;;1810:4;1806:9;1799:5;1795:21;1786:30;;1859:4;1849:8;1845:19;1838:5;1835:30;1825:40;;1554:317;;1478:393;;;;;:::o;1877:60::-;1905:3;1926:5;1919:12;;1877:60;;;:::o;1943:142::-;1993:9;2026:53;2044:34;2053:24;2071:5;2053:24;:::i;:::-;2044:34;:::i;:::-;2026:53;:::i;:::-;2013:66;;1943:142;;;:::o;2091:75::-;2134:3;2155:5;2148:12;;2091:75;;;:::o;2172:269::-;2282:39;2313:7;2282:39;:::i;:::-;2343:91;2392:41;2416:16;2392:41;:::i;:::-;2384:6;2377:4;2371:11;2343:91;:::i;:::-;2337:4;2330:105;2248:193;2172:269;;;:::o;2447:73::-;2492:3;2513:1;2506:8;;2447:73;:::o;2526:189::-;2603:32;;:::i;:::-;2644:65;2702:6;2694;2688:4;2644:65;:::i;:::-;2579:136;2526:189;;:::o;2721:215::-;2807:1;2792:138;2817:9;2814:1;2811:16;2792:138;;;2869:51;2918:1;2914;2903:9;2899:17;2869:51;:::i;:::-;2842:1;2839;2835:9;2830:14;;2792:138;;;2796:14;2721:215;;:::o;3315:640::-;3435:3;3423:10;3420:19;3417:531;;;3526:65;3587:3;3526:65;:::i;:::-;3624:72;3685:10;3624:72;:::i;:::-;3731:53;3778:5;3731:53;:::i;:::-;3836:12;3820:14;3816:33;3863:75;3924:12;3910;3906:31;3893:11;3863:75;:::i;:::-;3440:508;;;;3417:531;3315:640;;;:::o;3961:388::-;4054:20;4046:6;4043:32;4040:78;;;4090:18;;:::i;:::-;4040:78;4142:51;4187:5;4142:51;:::i;:::-;4245:6;4238:5;4231:21;4262:80;4335:6;4327;4320:5;4262:80;:::i;:::-;4030:319;3961:388;;:::o;4354:102::-;4417:6;4445:4;4435:14;;4354:102;;;:::o;4462:86::-;4497:7;4537:4;4530:5;4526:16;4515:27;;4462:86;;;:::o;4554:150::-;4595:11;4631:27;4653:3;4647:10;4631:27;:::i;:::-;4692:5;4668:29;;4607:97;4554:150;;;:::o;4710:96::-;4773:4;4796:3;4788:11;;4710:96;;;:::o;5258:987::-;5395:48;5439:3;5395:48;:::i;:::-;5508:18;5500:6;5497:30;5494:56;;;5530:18;;:::i;:::-;5494:56;5559:57;5609:6;5604:3;5559:57;:::i;:::-;5640:50;5686:3;5640:50;:::i;:::-;5714:51;5761:3;5714:51;:::i;:::-;5804:1;5796:6;5792:14;5831:1;5816:422;5841:9;5838:1;5835:16;5816:422;;;5905:1;5958:31;5982:6;5958:31;:::i;:::-;6024:36;6048:11;6024:36;:::i;:::-;6110:9;6077:42;;6159:2;6151:6;6147:15;6137:25;;5920:257;;6215:12;6211:1;6202:7;6198:15;6191:37;5871:367;5866:1;5863;5859:9;5854:14;;5816:422;;;5820:14;5370:875;;;;5258:987;;:::o;58:846:48:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063200289901461004e5780633f4263ef146100585780636a8d1e08146100885780639b1a379c14610092575b5f5ffd5b6100566100c3565b005b610072600480360381019061006d919061025f565b6101ce565b60405161007f9190610299565b60405180910390f35b6100906101ed565b005b6100ac60048036038101906100a79190610313565b610215565b6040516100ba9291906103d6565b60405180910390f35b5f5f80548060200260200160405190810160405280929190818152602001828054801561010d57602002820191905f5260205f20905b8154815260200190600101908083116100f9575b505050505090506064815f81518110610129576101286103f8565b5b60200260200101818152505060c88160018151811061014b5761014a6103f8565b5b6020026020010181815250505f5f8054806020026020016040519081016040528092919081815260200182805480156101a157602002820191905f5260205f20905b81548152602001906001019080831161018d575b5050505050905061012c815f815181106101be576101bd6103f8565b5b6020026020010181815250505050565b5f81815481106101dc575f80fd5b905f5260205f20015f915090505481565b5f5f90506064815f81548110610206576102056103f8565b5b905f5260205f20018190555050565b365f8383915091509250929050565b5f5ffd5b5f5ffd5b5f819050919050565b61023e8161022c565b8114610248575f5ffd5b50565b5f8135905061025981610235565b92915050565b5f6020828403121561027457610273610224565b5b5f6102818482850161024b565b91505092915050565b6102938161022c565b82525050565b5f6020820190506102ac5f83018461028a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102d3576102d26102b2565b5b8235905067ffffffffffffffff8111156102f0576102ef6102b6565b5b60208301915083602082028301111561030c5761030b6102ba565b5b9250929050565b5f5f6020838503121561032957610328610224565b5b5f83013567ffffffffffffffff81111561034657610345610228565b5b610352858286016102be565b92509250509250929050565b5f82825260208201905092915050565b5f5ffd5b82818337505050565b5f610386838561035e565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156103b9576103b861036e565b5b6020830292506103ca838584610372565b82840190509392505050565b5f6020820190508181035f8301526103ef81848661037b565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220427935779af6775733547f757ed4f09ead558a1f012a174f9c9538851bfd768964736f6c63430008220033","sourceMap":"58:846:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:271;;;:::i;:::-;;204:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;236:184;;;:::i;:::-;;703:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;426:271;550:21;574:1;550:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:3;585:7;593:1;585:10;;;;;;;;:::i;:::-;;;;;;;:16;;;;;624:3;611:7;619:1;611:10;;;;;;;;:::i;:::-;;;;;;;:16;;;;;637:22;662:1;637:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;687:3;673:8;682:1;673:11;;;;;;;;:::i;:::-;;;;;;;:17;;;;;456:241;;426:271::o;204:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;236:184::-;359:23;385:1;359:27;;410:3;396:8;405:1;396:11;;;;;;;;:::i;:::-;;;;;;;;;:17;;;;262:158;236:184::o;703:199::-;762:15;;892:2;;885:10;;;;703:199;;;;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:117::-;1486:1;1483;1476:12;1500:117;1609:1;1606;1599:12;1623:117;1732:1;1729;1722:12;1763:568;1836:8;1846:6;1896:3;1889:4;1881:6;1877:17;1873:27;1863:122;;1904:79;;:::i;:::-;1863:122;2017:6;2004:20;1994:30;;2047:18;2039:6;2036:30;2033:117;;;2069:79;;:::i;:::-;2033:117;2183:4;2175:6;2171:17;2159:29;;2237:3;2229:4;2221:6;2217:17;2207:8;2203:32;2200:41;2197:128;;;2244:79;;:::i;:::-;2197:128;1763:568;;;;;:::o;2337:559::-;2423:6;2431;2480:2;2468:9;2459:7;2455:23;2451:32;2448:119;;;2486:79;;:::i;:::-;2448:119;2634:1;2623:9;2619:17;2606:31;2664:18;2656:6;2653:30;2650:117;;;2686:79;;:::i;:::-;2650:117;2799:80;2871:7;2862:6;2851:9;2847:22;2799:80;:::i;:::-;2781:98;;;;2577:312;2337:559;;;;;:::o;2902:184::-;3001:11;3035:6;3030:3;3023:19;3075:4;3070:3;3066:14;3051:29;;2902:184;;;;:::o;3092:117::-;3201:1;3198;3191:12;3215:99;3300:6;3295:3;3290;3277:30;3215:99;;;:::o;3350:537::-;3478:3;3499:86;3578:6;3573:3;3499:86;:::i;:::-;3492:93;;3609:66;3601:6;3598:78;3595:165;;;3679:79;;:::i;:::-;3595:165;3791:4;3783:6;3779:17;3769:27;;3806:43;3842:6;3837:3;3830:5;3806:43;:::i;:::-;3874:6;3869:3;3865:16;3858:23;;3350:537;;;;;:::o;3893:393::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4133:9;4127:4;4123:20;4119:1;4108:9;4104:17;4097:47;4161:118;4274:4;4265:6;4257;4161:118;:::i;:::-;4153:126;;3893:393;;;;;:::o;4292:180::-;4340:77;4337:1;4330:88;4437:4;4434:1;4427:15;4461:4;4458:1;4451:15","linkReferences":{}},"methodIdentifiers":{"fCalldata(uint256[])":"9b1a379c","fMemory()":"20028990","fStorage()":"6a8d1e08","x(uint256)":"3f4263ef"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_x\",\"type\":\"uint256[]\"}],\"name\":\"fCalldata\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fMemory\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/05_DataStorage/DataStorage.sol\":\"DataStorage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/05_DataStorage/DataStorage.sol\":{\"keccak256\":\"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673\",\"dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"_x","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"fCalldata","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"fStorage"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/05_DataStorage/DataStorage.sol":"DataStorage"},"evmVersion":"prague","libraries":{}},"sources":{"src/05_DataStorage/DataStorage.sol":{"keccak256":"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5","urls":["bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673","dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file diff --git a/out/DataStorage.sol/Variables.json b/out/DataStorage.sol/Variables.json index e336ae76..b4f8f193 100644 --- a/out/DataStorage.sol/Variables.json +++ b/out/DataStorage.sol/Variables.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"bar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"daysUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"etherUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"global","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gweiUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"hoursUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minutesUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"secondsUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"weeksUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"weiUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"x","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"y","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"z","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260015f553480156012575f5ffd5b50610ab9806100205f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063aec3d6401161008a578063c5d7802e11610064578063c5d7802e14610206578063cb9f122014610224578063f1e6d19814610242578063febb0f7e14610260576100e8565b8063aec3d640146101c0578063be44f864146101de578063c2985578146101fc576100e8565b80632aca45f1116100c65780632aca45f114610146578063a05f990614610164578063a0d0d59e14610184578063a56dfe4a146101a2576100e8565b806309879682146100ec5780630c55699c1461010a5780631217634914610128575b5f5ffd5b6100f461027e565b6040516101019190610576565b60405180910390f35b610112610297565b60405161011f9190610576565b60405180910390f35b61013061029c565b60405161013d9190610576565b60405180910390f35b61014e6102c6565b60405161015b9190610576565b60405180910390f35b61016c6102f6565b60405161017b9392919061063e565b60405180910390f35b61018c61035a565b6040516101999190610576565b60405180910390f35b6101aa61038a565b6040516101b79190610576565b60405180910390f35b6101c8610390565b6040516101d59190610576565b60405180910390f35b6101e66103c3565b6040516101f39190610576565b60405180910390f35b6102046103f0565b005b61020e610446565b60405161021b91906106cc565b60405180910390f35b61022c6104d2565b6040516102399190610576565b60405180910390f35b61024a610511565b6040516102579190610576565b60405180910390f35b61026861053b565b6040516102759190610576565b60405180910390f35b5f600180146102905761028f6106ec565b5b6001905090565b5f5481565b5f600180146102ae576102ad6106ec565b5b600180146102bf576102be6106ec565b5b6001905090565b5f62093a8080146102da576102d96106ec565b5b62093a8080146102ed576102ec6106ec565b5b62093a80905090565b5f5f60605f3390505f4390505f5f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050828282955095509550505050909192565b5f62015180801461036e5761036d6106ec565b5b620151808014610381576103806106ec565b5b62015180905090565b60015481565b5f633b9aca0080146103a5576103a46106ec565b5b633b9aca0080146103b9576103b86106ec565b5b633b9aca00905090565b5f610e1080146103d6576103d56106ec565b5b610e1080146103e8576103e76106ec565b5b610e10905090565b60055f8190555060026001819055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816104439190610954565b50565b6002805461045390610773565b80601f016020809104026020016040519081016040528092919081815260200182805461047f90610773565b80156104ca5780601f106104a1576101008083540402835291602001916104ca565b820191905f5260205f20905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b5f670de0b6b3a764000080146104eb576104ea6106ec565b5b670de0b6b3a76400008014610503576105026106ec565b5b670de0b6b3a7640000905090565b5f603c8014610523576105226106ec565b5b603c8014610534576105336106ec565b5b603c905090565b5f5f600190505f600390505f81836105539190610a50565b905080935050505090565b5f819050919050565b6105708161055e565b82525050565b5f6020820190506105895f830184610567565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b88261058f565b9050919050565b6105c8816105ae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610610826105ce565b61061a81856105d8565b935061062a8185602086016105e8565b610633816105f6565b840191505092915050565b5f6060820190506106515f8301866105bf565b61065e6020830185610567565b81810360408301526106708184610606565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f61069e8261067a565b6106a88185610684565b93506106b88185602086016105e8565b6106c1816105f6565b840191505092915050565b5f6020820190508181035f8301526106e48184610694565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061078a57607f821691505b60208210810361079d5761079c610746565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107c4565b61080986836107c4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61084461083f61083a8461055e565b610821565b61055e565b9050919050565b5f819050919050565b61085d8361082a565b6108716108698261084b565b8484546107d0565b825550505050565b5f5f905090565b610888610879565b610893818484610854565b505050565b5f5b828110156108b9576108ae5f828401610880565b60018101905061089a565b505050565b601f82111561090c578282111561090b576108d8816107a3565b6108e1836107b5565b6108ea856107b5565b60208610156108f7575f90505b80830161090682840382610898565b505050505b5b505050565b5f82821c905092915050565b5f61092c5f1984600802610911565b1980831691505092915050565b5f610944838361091d565b9150826002028217905092915050565b61095d8261067a565b67ffffffffffffffff81111561097657610975610719565b5b6109808254610773565b61098b8282856108be565b5f60209050601f8311600181146109bc575f84156109aa578287015190505b6109b48582610939565b865550610a1b565b601f1984166109ca866107a3565b5f5b828110156109f1578489015182556001820191506020850194506020810190506109cc565b86831015610a0e5784890151610a0a601f89168261091d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a5a8261055e565b9150610a658361055e565b9250828201905080821115610a7d57610a7c610a23565b5b9291505056fea2646970667358221220424b5e5d71ef893dc54d52e9a4cd9e2043f7b0e1b492883df1cb25b56c60776f64736f6c63430008220033","sourceMap":"906:1820:48:-:0;;;947:1;931:17;;906:1820;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063aec3d6401161008a578063c5d7802e11610064578063c5d7802e14610206578063cb9f122014610224578063f1e6d19814610242578063febb0f7e14610260576100e8565b8063aec3d640146101c0578063be44f864146101de578063c2985578146101fc576100e8565b80632aca45f1116100c65780632aca45f114610146578063a05f990614610164578063a0d0d59e14610184578063a56dfe4a146101a2576100e8565b806309879682146100ec5780630c55699c1461010a5780631217634914610128575b5f5ffd5b6100f461027e565b6040516101019190610576565b60405180910390f35b610112610297565b60405161011f9190610576565b60405180910390f35b61013061029c565b60405161013d9190610576565b60405180910390f35b61014e6102c6565b60405161015b9190610576565b60405180910390f35b61016c6102f6565b60405161017b9392919061063e565b60405180910390f35b61018c61035a565b6040516101999190610576565b60405180910390f35b6101aa61038a565b6040516101b79190610576565b60405180910390f35b6101c8610390565b6040516101d59190610576565b60405180910390f35b6101e66103c3565b6040516101f39190610576565b60405180910390f35b6102046103f0565b005b61020e610446565b60405161021b91906106cc565b60405180910390f35b61022c6104d2565b6040516102399190610576565b60405180910390f35b61024a610511565b6040516102579190610576565b60405180910390f35b61026861053b565b6040516102759190610576565b60405180910390f35b5f600180146102905761028f6106ec565b5b6001905090565b5f5481565b5f600180146102ae576102ad6106ec565b5b600180146102bf576102be6106ec565b5b6001905090565b5f62093a8080146102da576102d96106ec565b5b62093a8080146102ed576102ec6106ec565b5b62093a80905090565b5f5f60605f3390505f4390505f5f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050828282955095509550505050909192565b5f62015180801461036e5761036d6106ec565b5b620151808014610381576103806106ec565b5b62015180905090565b60015481565b5f633b9aca0080146103a5576103a46106ec565b5b633b9aca0080146103b9576103b86106ec565b5b633b9aca00905090565b5f610e1080146103d6576103d56106ec565b5b610e1080146103e8576103e76106ec565b5b610e10905090565b60055f8190555060026001819055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816104439190610954565b50565b6002805461045390610773565b80601f016020809104026020016040519081016040528092919081815260200182805461047f90610773565b80156104ca5780601f106104a1576101008083540402835291602001916104ca565b820191905f5260205f20905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b5f670de0b6b3a764000080146104eb576104ea6106ec565b5b670de0b6b3a76400008014610503576105026106ec565b5b670de0b6b3a7640000905090565b5f603c8014610523576105226106ec565b5b603c8014610534576105336106ec565b5b603c905090565b5f5f600190505f600390505f81836105539190610a50565b905080935050505090565b5f819050919050565b6105708161055e565b82525050565b5f6020820190506105895f830184610567565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b88261058f565b9050919050565b6105c8816105ae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610610826105ce565b61061a81856105d8565b935061062a8185602086016105e8565b610633816105f6565b840191505092915050565b5f6060820190506106515f8301866105bf565b61065e6020830185610567565b81810360408301526106708184610606565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f61069e8261067a565b6106a88185610684565b93506106b88185602086016105e8565b6106c1816105f6565b840191505092915050565b5f6020820190508181035f8301526106e48184610694565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061078a57607f821691505b60208210810361079d5761079c610746565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107c4565b61080986836107c4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61084461083f61083a8461055e565b610821565b61055e565b9050919050565b5f819050919050565b61085d8361082a565b6108716108698261084b565b8484546107d0565b825550505050565b5f5f905090565b610888610879565b610893818484610854565b505050565b5f5b828110156108b9576108ae5f828401610880565b60018101905061089a565b505050565b601f82111561090c578282111561090b576108d8816107a3565b6108e1836107b5565b6108ea856107b5565b60208610156108f7575f90505b80830161090682840382610898565b505050505b5b505050565b5f82821c905092915050565b5f61092c5f1984600802610911565b1980831691505092915050565b5f610944838361091d565b9150826002028217905092915050565b61095d8261067a565b67ffffffffffffffff81111561097657610975610719565b5b6109808254610773565b61098b8282856108be565b5f60209050601f8311600181146109bc575f84156109aa578287015190505b6109b48582610939565b865550610a1b565b601f1984166109ca866107a3565b5f5b828110156109f1578489015182556001820191506020850194506020810190506109cc565b86831015610a0e5784890151610a0a601f89168261091d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a5a8261055e565b9150610a658361055e565b9250828201905080821115610a7d57610a7c610a23565b5b9291505056fea2646970667358221220424b5e5d71ef893dc54d52e9a4cd9e2043f7b0e1b492883df1cb25b56c60776f64736f6c63430008220033","sourceMap":"906:1820:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;931:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1513:134;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2574:150;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1279:228;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2421:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;954:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1653:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:152;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;995:134;;;:::i;:::-;;973:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1806:161;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2099:158;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1135:138;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:116;2022:4;2058:1;2045:9;:14;2038:22;;;;:::i;:::-;;2077:9;2070:16;;1977:116;:::o;931:17::-;;;;:::o;1513:134::-;1554:4;1586:3;1577:5;:12;1570:20;;;;:::i;:::-;;1616:1;1607:5;:10;1600:18;;;;:::i;:::-;;1635:5;1628:12;;1513:134;:::o;2574:150::-;2617:4;2651:6;2640:7;:17;2633:25;;;;:::i;:::-;;2686:6;2675:7;:17;2668:25;;;;:::i;:::-;;2710:7;2703:14;;2574:150;:::o;1279:228::-;1319:7;1328:4;1334:12;1357:14;1374:10;1357:27;;1394:13;1410:12;1394:28;;1432:17;1452:8;;1432:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:6;1485:8;1495:4;1470:30;;;;;;;;;1279:228;;;:::o;2421:147::-;2463:4;2496:5;2486:6;:15;2479:23;;;;:::i;:::-;;2529:8;2519:6;:18;2512:26;;;;:::i;:::-;;2555:6;2548:13;;2421:147;:::o;954:13::-;;;;:::o;1653:147::-;1695:4;1728:3;1718:6;:13;1711:21;;;;:::i;:::-;;1759:10;1749:6;:20;1742:28;;;;:::i;:::-;;1787:6;1780:13;;1653:147;:::o;2263:152::-;2306:4;2340;2329:7;:15;2322:23;;;;:::i;:::-;;2373:10;2362:7;:21;2355:29;;;;:::i;:::-;;2401:7;2394:14;;2263:152;:::o;995:134::-;1086:1;1082;:5;;;;1101:1;1097;:5;;;;1112:10;;;;;;;;;;;;;;;;;:1;:10;;;;;;:::i;:::-;;995:134::o;973:15::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1806:161::-;1849:4;1883;1872:7;:15;1865:23;;;;:::i;:::-;;1916:19;1905:7;:30;1898:38;;;;:::i;:::-;;1953:7;1946:14;;1806:161;:::o;2099:158::-;2144:4;2180:2;2167:9;:15;2160:23;;;;:::i;:::-;;2213:10;2200:9;:23;2193:31;;;;:::i;:::-;;2241:9;2234:16;;2099:158;:::o;1135:138::-;1172:4;1187:7;1197:1;1187:11;;1208:7;1218:1;1208:11;;1229:7;1244:2;1239;:7;;;;:::i;:::-;1229:17;;1263:2;1256:10;;;;;1135:138;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:98::-;851:6;885:5;879:12;869:22;;800:98;;;:::o;904:168::-;987:11;1021:6;1016:3;1009:19;1061:4;1056:3;1052:14;1037:29;;904:168;;;;:::o;1078:139::-;1167:6;1162:3;1157;1151:23;1208:1;1199:6;1194:3;1190:16;1183:27;1078:139;;;:::o;1223:102::-;1264:6;1315:2;1311:7;1306:2;1299:5;1295:14;1291:28;1281:38;;1223:102;;;:::o;1331:373::-;1417:3;1445:38;1477:5;1445:38;:::i;:::-;1499:70;1562:6;1557:3;1499:70;:::i;:::-;1492:77;;1578:65;1636:6;1631:3;1624:4;1617:5;1613:16;1578:65;:::i;:::-;1668:29;1690:6;1668:29;:::i;:::-;1663:3;1659:39;1652:46;;1421:283;1331:373;;;;:::o;1710:529::-;1877:4;1915:2;1904:9;1900:18;1892:26;;1928:71;1996:1;1985:9;1981:17;1972:6;1928:71;:::i;:::-;2009:72;2077:2;2066:9;2062:18;2053:6;2009:72;:::i;:::-;2128:9;2122:4;2118:20;2113:2;2102:9;2098:18;2091:48;2156:76;2227:4;2218:6;2156:76;:::i;:::-;2148:84;;1710:529;;;;;;:::o;2245:99::-;2297:6;2331:5;2325:12;2315:22;;2245:99;;;:::o;2350:169::-;2434:11;2468:6;2463:3;2456:19;2508:4;2503:3;2499:14;2484:29;;2350:169;;;;:::o;2525:377::-;2613:3;2641:39;2674:5;2641:39;:::i;:::-;2696:71;2760:6;2755:3;2696:71;:::i;:::-;2689:78;;2776:65;2834:6;2829:3;2822:4;2815:5;2811:16;2776:65;:::i;:::-;2866:29;2888:6;2866:29;:::i;:::-;2861:3;2857:39;2850:46;;2617:285;2525:377;;;;:::o;2908:313::-;3021:4;3059:2;3048:9;3044:18;3036:26;;3108:9;3102:4;3098:20;3094:1;3083:9;3079:17;3072:47;3136:78;3209:4;3200:6;3136:78;:::i;:::-;3128:86;;2908:313;;;;:::o;3227:180::-;3275:77;3272:1;3265:88;3372:4;3369:1;3362:15;3396:4;3393:1;3386:15;3413:180;3461:77;3458:1;3451:88;3558:4;3555:1;3548:15;3582:4;3579:1;3572:15;3599:180;3647:77;3644:1;3637:88;3744:4;3741:1;3734:15;3768:4;3765:1;3758:15;3785:320;3829:6;3866:1;3860:4;3856:12;3846:22;;3913:1;3907:4;3903:12;3934:18;3924:81;;3990:4;3982:6;3978:17;3968:27;;3924:81;4052:2;4044:6;4041:14;4021:18;4018:38;4015:84;;4071:18;;:::i;:::-;4015:84;3836:269;3785:320;;;:::o;4111:141::-;4160:4;4183:3;4175:11;;4206:3;4203:1;4196:14;4240:4;4237:1;4227:18;4219:26;;4111:141;;;:::o;4258:93::-;4295:6;4342:2;4337;4330:5;4326:14;4322:23;4312:33;;4258:93;;;:::o;4357:107::-;4401:8;4451:5;4445:4;4441:16;4420:37;;4357:107;;;;:::o;4470:393::-;4539:6;4589:1;4577:10;4573:18;4612:97;4642:66;4631:9;4612:97;:::i;:::-;4730:39;4760:8;4749:9;4730:39;:::i;:::-;4718:51;;4802:4;4798:9;4791:5;4787:21;4778:30;;4851:4;4841:8;4837:19;4830:5;4827:30;4817:40;;4546:317;;4470:393;;;;;:::o;4869:60::-;4897:3;4918:5;4911:12;;4869:60;;;:::o;4935:142::-;4985:9;5018:53;5036:34;5045:24;5063:5;5045:24;:::i;:::-;5036:34;:::i;:::-;5018:53;:::i;:::-;5005:66;;4935:142;;;:::o;5083:75::-;5126:3;5147:5;5140:12;;5083:75;;;:::o;5164:269::-;5274:39;5305:7;5274:39;:::i;:::-;5335:91;5384:41;5408:16;5384:41;:::i;:::-;5376:6;5369:4;5363:11;5335:91;:::i;:::-;5329:4;5322:105;5240:193;5164:269;;;:::o;5439:73::-;5484:3;5505:1;5498:8;;5439:73;:::o;5518:189::-;5595:32;;:::i;:::-;5636:65;5694:6;5686;5680:4;5636:65;:::i;:::-;5571:136;5518:189;;:::o;5713:214::-;5798:1;5783:138;5808:9;5805:1;5802:16;5783:138;;;5860:51;5909:1;5905;5894:9;5890:17;5860:51;:::i;:::-;5833:1;5830;5826:9;5821:14;;5783:138;;;5787:14;5713:214;;:::o;5933:746::-;6034:2;6029:3;6026:11;6023:649;;;6063:10;6058:3;6055:19;6052:610;;;6109:38;6141:5;6109:38;:::i;:::-;6184:22;6202:3;6184:22;:::i;:::-;6243:29;6261:10;6243:29;:::i;:::-;6433:2;6421:10;6418:18;6415:79;;;6475:1;6459:17;;6415:79;6544:12;6534:8;6530:27;6574:74;6634:12;6620;6616:31;6603:11;6574:74;:::i;:::-;6075:587;;;;6052:610;6023:649;5933:746;;;:::o;6685:117::-;6739:8;6789:5;6783:4;6779:16;6758:37;;6685:117;;;;:::o;6808:169::-;6852:6;6885:51;6933:1;6929:6;6921:5;6918:1;6914:13;6885:51;:::i;:::-;6881:56;6966:4;6960;6956:15;6946:25;;6859:118;6808:169;;;;:::o;6982:295::-;7058:4;7204:29;7229:3;7223:4;7204:29;:::i;:::-;7196:37;;7266:3;7263:1;7259:11;7253:4;7250:21;7242:29;;6982:295;;;;:::o;7282:1395::-;7399:37;7432:3;7399:37;:::i;:::-;7501:18;7493:6;7490:30;7487:56;;;7523:18;;:::i;:::-;7487:56;7567:38;7599:4;7593:11;7567:38;:::i;:::-;7652:67;7712:6;7704;7698:4;7652:67;:::i;:::-;7746:1;7770:4;7757:17;;7802:2;7794:6;7791:14;7819:1;7814:618;;;;8476:1;8493:6;8490:77;;;8542:9;8537:3;8533:19;8527:26;8518:35;;8490:77;8593:67;8653:6;8646:5;8593:67;:::i;:::-;8587:4;8580:81;8449:222;7784:887;;7814:618;7866:4;7862:9;7854:6;7850:22;7900:37;7932:4;7900:37;:::i;:::-;7959:1;7973:208;7987:7;7984:1;7981:14;7973:208;;;8066:9;8061:3;8057:19;8051:26;8043:6;8036:42;8117:1;8109:6;8105:14;8095:24;;8164:2;8153:9;8149:18;8136:31;;8010:4;8007:1;8003:12;7998:17;;7973:208;;;8209:6;8200:7;8197:19;8194:179;;;8267:9;8262:3;8258:19;8252:26;8310:48;8352:4;8344:6;8340:17;8329:9;8310:48;:::i;:::-;8302:6;8295:64;8217:156;8194:179;8419:1;8415;8407:6;8403:14;8399:22;8393:4;8386:36;7821:611;;;7784:887;;7374:1303;;;7282:1395;;:::o;8683:180::-;8731:77;8728:1;8721:88;8828:4;8825:1;8818:15;8852:4;8849:1;8842:15;8869:191;8909:3;8928:20;8946:1;8928:20;:::i;:::-;8923:25;;8962:20;8980:1;8962:20;:::i;:::-;8957:25;;9005:1;9002;8998:9;8991:16;;9026:3;9023:1;9020:10;9017:36;;;9033:18;;:::i;:::-;9017:36;8869:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"bar()":"febb0f7e","daysUnit()":"a0d0d59e","etherUnit()":"cb9f1220","foo()":"c2985578","global()":"a05f9906","gweiUnit()":"aec3d640","hoursUnit()":"be44f864","minutesUnit()":"f1e6d198","secondsUnit()":"09879682","weeksUnit()":"2aca45f1","weiUnit()":"12176349","x()":"0c55699c","y()":"a56dfe4a","z()":"c5d7802e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"bar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daysUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"etherUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"global\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gweiUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hoursUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minutesUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"secondsUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weeksUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weiUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"y\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"z\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/05_DataStorage/DataStorage.sol\":\"Variables\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/05_DataStorage/DataStorage.sol\":{\"keccak256\":\"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673\",\"dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"daysUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"etherUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"global","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gweiUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"hoursUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minutesUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"secondsUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"weeksUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"weiUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"y","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"z","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/05_DataStorage/DataStorage.sol":"Variables"},"evmVersion":"prague","libraries":{}},"sources":{"src/05_DataStorage/DataStorage.sol":{"keccak256":"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5","urls":["bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673","dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file +{"abi":[{"type":"function","name":"bar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"daysUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"etherUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"global","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"gweiUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"hoursUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minutesUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"secondsUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"weeksUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"weiUnit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"x","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"y","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"z","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260015f553480156012575f5ffd5b50610ab9806100205f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063aec3d6401161008a578063c5d7802e11610064578063c5d7802e14610206578063cb9f122014610224578063f1e6d19814610242578063febb0f7e14610260576100e8565b8063aec3d640146101c0578063be44f864146101de578063c2985578146101fc576100e8565b80632aca45f1116100c65780632aca45f114610146578063a05f990614610164578063a0d0d59e14610184578063a56dfe4a146101a2576100e8565b806309879682146100ec5780630c55699c1461010a5780631217634914610128575b5f5ffd5b6100f461027e565b6040516101019190610576565b60405180910390f35b610112610297565b60405161011f9190610576565b60405180910390f35b61013061029c565b60405161013d9190610576565b60405180910390f35b61014e6102c6565b60405161015b9190610576565b60405180910390f35b61016c6102f6565b60405161017b9392919061063e565b60405180910390f35b61018c61035a565b6040516101999190610576565b60405180910390f35b6101aa61038a565b6040516101b79190610576565b60405180910390f35b6101c8610390565b6040516101d59190610576565b60405180910390f35b6101e66103c3565b6040516101f39190610576565b60405180910390f35b6102046103f0565b005b61020e610446565b60405161021b91906106cc565b60405180910390f35b61022c6104d2565b6040516102399190610576565b60405180910390f35b61024a610511565b6040516102579190610576565b60405180910390f35b61026861053b565b6040516102759190610576565b60405180910390f35b5f600180146102905761028f6106ec565b5b6001905090565b5f5481565b5f600180146102ae576102ad6106ec565b5b600180146102bf576102be6106ec565b5b6001905090565b5f62093a8080146102da576102d96106ec565b5b62093a8080146102ed576102ec6106ec565b5b62093a80905090565b5f5f60605f3390505f4390505f5f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050828282955095509550505050909192565b5f62015180801461036e5761036d6106ec565b5b620151808014610381576103806106ec565b5b62015180905090565b60015481565b5f633b9aca0080146103a5576103a46106ec565b5b633b9aca0080146103b9576103b86106ec565b5b633b9aca00905090565b5f610e1080146103d6576103d56106ec565b5b610e1080146103e8576103e76106ec565b5b610e10905090565b60055f8190555060026001819055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816104439190610954565b50565b6002805461045390610773565b80601f016020809104026020016040519081016040528092919081815260200182805461047f90610773565b80156104ca5780601f106104a1576101008083540402835291602001916104ca565b820191905f5260205f20905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b5f670de0b6b3a764000080146104eb576104ea6106ec565b5b670de0b6b3a76400008014610503576105026106ec565b5b670de0b6b3a7640000905090565b5f603c8014610523576105226106ec565b5b603c8014610534576105336106ec565b5b603c905090565b5f5f600190505f600390505f81836105539190610a50565b905080935050505090565b5f819050919050565b6105708161055e565b82525050565b5f6020820190506105895f830184610567565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b88261058f565b9050919050565b6105c8816105ae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610610826105ce565b61061a81856105d8565b935061062a8185602086016105e8565b610633816105f6565b840191505092915050565b5f6060820190506106515f8301866105bf565b61065e6020830185610567565b81810360408301526106708184610606565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f61069e8261067a565b6106a88185610684565b93506106b88185602086016105e8565b6106c1816105f6565b840191505092915050565b5f6020820190508181035f8301526106e48184610694565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061078a57607f821691505b60208210810361079d5761079c610746565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107c4565b61080986836107c4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61084461083f61083a8461055e565b610821565b61055e565b9050919050565b5f819050919050565b61085d8361082a565b6108716108698261084b565b8484546107d0565b825550505050565b5f5f905090565b610888610879565b610893818484610854565b505050565b5f5b828110156108b9576108ae5f828401610880565b60018101905061089a565b505050565b601f82111561090c578282111561090b576108d8816107a3565b6108e1836107b5565b6108ea856107b5565b60208610156108f7575f90505b80830161090682840382610898565b505050505b5b505050565b5f82821c905092915050565b5f61092c5f1984600802610911565b1980831691505092915050565b5f610944838361091d565b9150826002028217905092915050565b61095d8261067a565b67ffffffffffffffff81111561097657610975610719565b5b6109808254610773565b61098b8282856108be565b5f60209050601f8311600181146109bc575f84156109aa578287015190505b6109b48582610939565b865550610a1b565b601f1984166109ca866107a3565b5f5b828110156109f1578489015182556001820191506020850194506020810190506109cc565b86831015610a0e5784890151610a0a601f89168261091d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a5a8261055e565b9150610a658361055e565b9250828201905080821115610a7d57610a7c610a23565b5b9291505056fea2646970667358221220424b5e5d71ef893dc54d52e9a4cd9e2043f7b0e1b492883df1cb25b56c60776f64736f6c63430008220033","sourceMap":"906:1820:48:-:0;;;947:1;931:17;;906:1820;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063aec3d6401161008a578063c5d7802e11610064578063c5d7802e14610206578063cb9f122014610224578063f1e6d19814610242578063febb0f7e14610260576100e8565b8063aec3d640146101c0578063be44f864146101de578063c2985578146101fc576100e8565b80632aca45f1116100c65780632aca45f114610146578063a05f990614610164578063a0d0d59e14610184578063a56dfe4a146101a2576100e8565b806309879682146100ec5780630c55699c1461010a5780631217634914610128575b5f5ffd5b6100f461027e565b6040516101019190610576565b60405180910390f35b610112610297565b60405161011f9190610576565b60405180910390f35b61013061029c565b60405161013d9190610576565b60405180910390f35b61014e6102c6565b60405161015b9190610576565b60405180910390f35b61016c6102f6565b60405161017b9392919061063e565b60405180910390f35b61018c61035a565b6040516101999190610576565b60405180910390f35b6101aa61038a565b6040516101b79190610576565b60405180910390f35b6101c8610390565b6040516101d59190610576565b60405180910390f35b6101e66103c3565b6040516101f39190610576565b60405180910390f35b6102046103f0565b005b61020e610446565b60405161021b91906106cc565b60405180910390f35b61022c6104d2565b6040516102399190610576565b60405180910390f35b61024a610511565b6040516102579190610576565b60405180910390f35b61026861053b565b6040516102759190610576565b60405180910390f35b5f600180146102905761028f6106ec565b5b6001905090565b5f5481565b5f600180146102ae576102ad6106ec565b5b600180146102bf576102be6106ec565b5b6001905090565b5f62093a8080146102da576102d96106ec565b5b62093a8080146102ed576102ec6106ec565b5b62093a80905090565b5f5f60605f3390505f4390505f5f368080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050828282955095509550505050909192565b5f62015180801461036e5761036d6106ec565b5b620151808014610381576103806106ec565b5b62015180905090565b60015481565b5f633b9aca0080146103a5576103a46106ec565b5b633b9aca0080146103b9576103b86106ec565b5b633b9aca00905090565b5f610e1080146103d6576103d56106ec565b5b610e1080146103e8576103e76106ec565b5b610e10905090565b60055f8190555060026001819055506040518060400160405280600481526020017f3078414100000000000000000000000000000000000000000000000000000000815250600290816104439190610954565b50565b6002805461045390610773565b80601f016020809104026020016040519081016040528092919081815260200182805461047f90610773565b80156104ca5780601f106104a1576101008083540402835291602001916104ca565b820191905f5260205f20905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b5f670de0b6b3a764000080146104eb576104ea6106ec565b5b670de0b6b3a76400008014610503576105026106ec565b5b670de0b6b3a7640000905090565b5f603c8014610523576105226106ec565b5b603c8014610534576105336106ec565b5b603c905090565b5f5f600190505f600390505f81836105539190610a50565b905080935050505090565b5f819050919050565b6105708161055e565b82525050565b5f6020820190506105895f830184610567565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105b88261058f565b9050919050565b6105c8816105ae565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610610826105ce565b61061a81856105d8565b935061062a8185602086016105e8565b610633816105f6565b840191505092915050565b5f6060820190506106515f8301866105bf565b61065e6020830185610567565b81810360408301526106708184610606565b9050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f61069e8261067a565b6106a88185610684565b93506106b88185602086016105e8565b6106c1816105f6565b840191505092915050565b5f6020820190508181035f8301526106e48184610694565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061078a57607f821691505b60208210810361079d5761079c610746565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107c4565b61080986836107c4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61084461083f61083a8461055e565b610821565b61055e565b9050919050565b5f819050919050565b61085d8361082a565b6108716108698261084b565b8484546107d0565b825550505050565b5f5f905090565b610888610879565b610893818484610854565b505050565b5f5b828110156108b9576108ae5f828401610880565b60018101905061089a565b505050565b601f82111561090c578282111561090b576108d8816107a3565b6108e1836107b5565b6108ea856107b5565b60208610156108f7575f90505b80830161090682840382610898565b505050505b5b505050565b5f82821c905092915050565b5f61092c5f1984600802610911565b1980831691505092915050565b5f610944838361091d565b9150826002028217905092915050565b61095d8261067a565b67ffffffffffffffff81111561097657610975610719565b5b6109808254610773565b61098b8282856108be565b5f60209050601f8311600181146109bc575f84156109aa578287015190505b6109b48582610939565b865550610a1b565b601f1984166109ca866107a3565b5f5b828110156109f1578489015182556001820191506020850194506020810190506109cc565b86831015610a0e5784890151610a0a601f89168261091d565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a5a8261055e565b9150610a658361055e565b9250828201905080821115610a7d57610a7c610a23565b5b9291505056fea2646970667358221220424b5e5d71ef893dc54d52e9a4cd9e2043f7b0e1b492883df1cb25b56c60776f64736f6c63430008220033","sourceMap":"906:1820:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;931:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1513:134;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2574:150;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1279:228;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2421:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;954:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1653:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:152;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;995:134;;;:::i;:::-;;973:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1806:161;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2099:158;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1135:138;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:116;2022:4;2058:1;2045:9;:14;2038:22;;;;:::i;:::-;;2077:9;2070:16;;1977:116;:::o;931:17::-;;;;:::o;1513:134::-;1554:4;1586:3;1577:5;:12;1570:20;;;;:::i;:::-;;1616:1;1607:5;:10;1600:18;;;;:::i;:::-;;1635:5;1628:12;;1513:134;:::o;2574:150::-;2617:4;2651:6;2640:7;:17;2633:25;;;;:::i;:::-;;2686:6;2675:7;:17;2668:25;;;;:::i;:::-;;2710:7;2703:14;;2574:150;:::o;1279:228::-;1319:7;1328:4;1334:12;1357:14;1374:10;1357:27;;1394:13;1410:12;1394:28;;1432:17;1452:8;;1432:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:6;1485:8;1495:4;1470:30;;;;;;;;;1279:228;;;:::o;2421:147::-;2463:4;2496:5;2486:6;:15;2479:23;;;;:::i;:::-;;2529:8;2519:6;:18;2512:26;;;;:::i;:::-;;2555:6;2548:13;;2421:147;:::o;954:13::-;;;;:::o;1653:147::-;1695:4;1728:3;1718:6;:13;1711:21;;;;:::i;:::-;;1759:10;1749:6;:20;1742:28;;;;:::i;:::-;;1787:6;1780:13;;1653:147;:::o;2263:152::-;2306:4;2340;2329:7;:15;2322:23;;;;:::i;:::-;;2373:10;2362:7;:21;2355:29;;;;:::i;:::-;;2401:7;2394:14;;2263:152;:::o;995:134::-;1086:1;1082;:5;;;;1101:1;1097;:5;;;;1112:10;;;;;;;;;;;;;;;;;:1;:10;;;;;;:::i;:::-;;995:134::o;973:15::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1806:161::-;1849:4;1883;1872:7;:15;1865:23;;;;:::i;:::-;;1916:19;1905:7;:30;1898:38;;;;:::i;:::-;;1953:7;1946:14;;1806:161;:::o;2099:158::-;2144:4;2180:2;2167:9;:15;2160:23;;;;:::i;:::-;;2213:10;2200:9;:23;2193:31;;;;:::i;:::-;;2241:9;2234:16;;2099:158;:::o;1135:138::-;1172:4;1187:7;1197:1;1187:11;;1208:7;1218:1;1208:11;;1229:7;1244:2;1239;:7;;;;:::i;:::-;1229:17;;1263:2;1256:10;;;;;1135:138;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:98::-;851:6;885:5;879:12;869:22;;800:98;;;:::o;904:168::-;987:11;1021:6;1016:3;1009:19;1061:4;1056:3;1052:14;1037:29;;904:168;;;;:::o;1078:139::-;1167:6;1162:3;1157;1151:23;1208:1;1199:6;1194:3;1190:16;1183:27;1078:139;;;:::o;1223:102::-;1264:6;1315:2;1311:7;1306:2;1299:5;1295:14;1291:28;1281:38;;1223:102;;;:::o;1331:373::-;1417:3;1445:38;1477:5;1445:38;:::i;:::-;1499:70;1562:6;1557:3;1499:70;:::i;:::-;1492:77;;1578:65;1636:6;1631:3;1624:4;1617:5;1613:16;1578:65;:::i;:::-;1668:29;1690:6;1668:29;:::i;:::-;1663:3;1659:39;1652:46;;1421:283;1331:373;;;;:::o;1710:529::-;1877:4;1915:2;1904:9;1900:18;1892:26;;1928:71;1996:1;1985:9;1981:17;1972:6;1928:71;:::i;:::-;2009:72;2077:2;2066:9;2062:18;2053:6;2009:72;:::i;:::-;2128:9;2122:4;2118:20;2113:2;2102:9;2098:18;2091:48;2156:76;2227:4;2218:6;2156:76;:::i;:::-;2148:84;;1710:529;;;;;;:::o;2245:99::-;2297:6;2331:5;2325:12;2315:22;;2245:99;;;:::o;2350:169::-;2434:11;2468:6;2463:3;2456:19;2508:4;2503:3;2499:14;2484:29;;2350:169;;;;:::o;2525:377::-;2613:3;2641:39;2674:5;2641:39;:::i;:::-;2696:71;2760:6;2755:3;2696:71;:::i;:::-;2689:78;;2776:65;2834:6;2829:3;2822:4;2815:5;2811:16;2776:65;:::i;:::-;2866:29;2888:6;2866:29;:::i;:::-;2861:3;2857:39;2850:46;;2617:285;2525:377;;;;:::o;2908:313::-;3021:4;3059:2;3048:9;3044:18;3036:26;;3108:9;3102:4;3098:20;3094:1;3083:9;3079:17;3072:47;3136:78;3209:4;3200:6;3136:78;:::i;:::-;3128:86;;2908:313;;;;:::o;3227:180::-;3275:77;3272:1;3265:88;3372:4;3369:1;3362:15;3396:4;3393:1;3386:15;3413:180;3461:77;3458:1;3451:88;3558:4;3555:1;3548:15;3582:4;3579:1;3572:15;3599:180;3647:77;3644:1;3637:88;3744:4;3741:1;3734:15;3768:4;3765:1;3758:15;3785:320;3829:6;3866:1;3860:4;3856:12;3846:22;;3913:1;3907:4;3903:12;3934:18;3924:81;;3990:4;3982:6;3978:17;3968:27;;3924:81;4052:2;4044:6;4041:14;4021:18;4018:38;4015:84;;4071:18;;:::i;:::-;4015:84;3836:269;3785:320;;;:::o;4111:141::-;4160:4;4183:3;4175:11;;4206:3;4203:1;4196:14;4240:4;4237:1;4227:18;4219:26;;4111:141;;;:::o;4258:93::-;4295:6;4342:2;4337;4330:5;4326:14;4322:23;4312:33;;4258:93;;;:::o;4357:107::-;4401:8;4451:5;4445:4;4441:16;4420:37;;4357:107;;;;:::o;4470:393::-;4539:6;4589:1;4577:10;4573:18;4612:97;4642:66;4631:9;4612:97;:::i;:::-;4730:39;4760:8;4749:9;4730:39;:::i;:::-;4718:51;;4802:4;4798:9;4791:5;4787:21;4778:30;;4851:4;4841:8;4837:19;4830:5;4827:30;4817:40;;4546:317;;4470:393;;;;;:::o;4869:60::-;4897:3;4918:5;4911:12;;4869:60;;;:::o;4935:142::-;4985:9;5018:53;5036:34;5045:24;5063:5;5045:24;:::i;:::-;5036:34;:::i;:::-;5018:53;:::i;:::-;5005:66;;4935:142;;;:::o;5083:75::-;5126:3;5147:5;5140:12;;5083:75;;;:::o;5164:269::-;5274:39;5305:7;5274:39;:::i;:::-;5335:91;5384:41;5408:16;5384:41;:::i;:::-;5376:6;5369:4;5363:11;5335:91;:::i;:::-;5329:4;5322:105;5240:193;5164:269;;;:::o;5439:73::-;5484:3;5505:1;5498:8;;5439:73;:::o;5518:189::-;5595:32;;:::i;:::-;5636:65;5694:6;5686;5680:4;5636:65;:::i;:::-;5571:136;5518:189;;:::o;5713:214::-;5798:1;5783:138;5808:9;5805:1;5802:16;5783:138;;;5860:51;5909:1;5905;5894:9;5890:17;5860:51;:::i;:::-;5833:1;5830;5826:9;5821:14;;5783:138;;;5787:14;5713:214;;:::o;5933:746::-;6034:2;6029:3;6026:11;6023:649;;;6063:10;6058:3;6055:19;6052:610;;;6109:38;6141:5;6109:38;:::i;:::-;6184:22;6202:3;6184:22;:::i;:::-;6243:29;6261:10;6243:29;:::i;:::-;6433:2;6421:10;6418:18;6415:79;;;6475:1;6459:17;;6415:79;6544:12;6534:8;6530:27;6574:74;6634:12;6620;6616:31;6603:11;6574:74;:::i;:::-;6075:587;;;;6052:610;6023:649;5933:746;;;:::o;6685:117::-;6739:8;6789:5;6783:4;6779:16;6758:37;;6685:117;;;;:::o;6808:169::-;6852:6;6885:51;6933:1;6929:6;6921:5;6918:1;6914:13;6885:51;:::i;:::-;6881:56;6966:4;6960;6956:15;6946:25;;6859:118;6808:169;;;;:::o;6982:295::-;7058:4;7204:29;7229:3;7223:4;7204:29;:::i;:::-;7196:37;;7266:3;7263:1;7259:11;7253:4;7250:21;7242:29;;6982:295;;;;:::o;7282:1395::-;7399:37;7432:3;7399:37;:::i;:::-;7501:18;7493:6;7490:30;7487:56;;;7523:18;;:::i;:::-;7487:56;7567:38;7599:4;7593:11;7567:38;:::i;:::-;7652:67;7712:6;7704;7698:4;7652:67;:::i;:::-;7746:1;7770:4;7757:17;;7802:2;7794:6;7791:14;7819:1;7814:618;;;;8476:1;8493:6;8490:77;;;8542:9;8537:3;8533:19;8527:26;8518:35;;8490:77;8593:67;8653:6;8646:5;8593:67;:::i;:::-;8587:4;8580:81;8449:222;7784:887;;7814:618;7866:4;7862:9;7854:6;7850:22;7900:37;7932:4;7900:37;:::i;:::-;7959:1;7973:208;7987:7;7984:1;7981:14;7973:208;;;8066:9;8061:3;8057:19;8051:26;8043:6;8036:42;8117:1;8109:6;8105:14;8095:24;;8164:2;8153:9;8149:18;8136:31;;8010:4;8007:1;8003:12;7998:17;;7973:208;;;8209:6;8200:7;8197:19;8194:179;;;8267:9;8262:3;8258:19;8252:26;8310:48;8352:4;8344:6;8340:17;8329:9;8310:48;:::i;:::-;8302:6;8295:64;8217:156;8194:179;8419:1;8415;8407:6;8403:14;8399:22;8393:4;8386:36;7821:611;;;7784:887;;7374:1303;;;7282:1395;;:::o;8683:180::-;8731:77;8728:1;8721:88;8828:4;8825:1;8818:15;8852:4;8849:1;8842:15;8869:191;8909:3;8928:20;8946:1;8928:20;:::i;:::-;8923:25;;8962:20;8980:1;8962:20;:::i;:::-;8957:25;;9005:1;9002;8998:9;8991:16;;9026:3;9023:1;9020:10;9017:36;;;9033:18;;:::i;:::-;9017:36;8869:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"bar()":"febb0f7e","daysUnit()":"a0d0d59e","etherUnit()":"cb9f1220","foo()":"c2985578","global()":"a05f9906","gweiUnit()":"aec3d640","hoursUnit()":"be44f864","minutesUnit()":"f1e6d198","secondsUnit()":"09879682","weeksUnit()":"2aca45f1","weiUnit()":"12176349","x()":"0c55699c","y()":"a56dfe4a","z()":"c5d7802e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"bar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"daysUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"etherUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"global\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gweiUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hoursUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minutesUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"secondsUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weeksUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weiUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"y\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"z\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/05_DataStorage/DataStorage.sol\":\"Variables\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/05_DataStorage/DataStorage.sol\":{\"keccak256\":\"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673\",\"dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"daysUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"etherUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"global","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"gweiUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"hoursUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minutesUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"secondsUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"weeksUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"weiUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"y","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"z","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/05_DataStorage/DataStorage.sol":"Variables"},"evmVersion":"prague","libraries":{}},"sources":{"src/05_DataStorage/DataStorage.sol":{"keccak256":"0xc6eae154aaa087697f39d4b71b4412b001e0b1999c668f4720ca52845b799ef5","urls":["bzz-raw://1e95673c2231a96bb12cb4c9de6e7779b289c8cb2e3323cdbfa8e3861ec7d673","dweb:/ipfs/QmUXw1EjzR73BeACLiNALh74XAv7hLCXmMdqki3FWq4uJP"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file diff --git a/out/Delegatecall.sol/B.json b/out/Delegatecall.sol/B.json index 9783f1d7..771517b8 100644 --- a/out/Delegatecall.sol/B.json +++ b/out/Delegatecall.sol/B.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"callSetVars","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegatecallSetVars","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104ae8061001c5f395ff3fe60806040526004361061003e575f3560e01c80631c1cba57146100425780634e70b1dc1461005e57806367e404ce14610088578063b39a9641146100b2575b5f5ffd5b61005c60048036038101906100579190610382565b6100ce565b005b348015610069575f5ffd5b506100726101ca565b60405161007f91906103cf565b60405180910390f35b348015610093575f5ffd5b5061009c6101cf565b6040516100a991906103f7565b60405180910390f35b6100cc60048036038101906100c79190610382565b6101f4565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516024016100f891906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101829190610462565b5f60405180830381855af49150503d805f81146101ba576040519150601f19603f3d011682016040523d82523d5f602084013e6101bf565b606091505b509150915050505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405160240161021e91906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102a89190610462565b5f604051808303815f865af19150503d805f81146102e1576040519150601f19603f3d011682016040523d82523d5f602084013e6102e6565b606091505b509150915050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61031e826102f5565b9050919050565b61032e81610314565b8114610338575f5ffd5b50565b5f8135905061034981610325565b92915050565b5f819050919050565b6103618161034f565b811461036b575f5ffd5b50565b5f8135905061037c81610358565b92915050565b5f5f60408385031215610398576103976102f1565b5b5f6103a58582860161033b565b92505060206103b68582860161036e565b9150509250929050565b6103c98161034f565b82525050565b5f6020820190506103e25f8301846103c0565b92915050565b6103f181610314565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61043c82610410565b610446818561041a565b9350610456818560208601610424565b80840191505092915050565b5f61046d8284610432565b91508190509291505056fea26469706673582212206d5e8cc20affa1618d14aec7d44dc3158f62e4a339facf25458021b88fec8b6b64736f6c63430008220033","sourceMap":"633:721:69:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c80631c1cba57146100425780634e70b1dc1461005e57806367e404ce14610088578063b39a9641146100b2575b5f5ffd5b61005c60048036038101906100579190610382565b6100ce565b005b348015610069575f5ffd5b506100726101ca565b60405161007f91906103cf565b60405180910390f35b348015610093575f5ffd5b5061009c6101cf565b6040516100a991906103f7565b60405180910390f35b6100cc60048036038101906100c79190610382565b6101f4565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516024016100f891906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101829190610462565b5f60405180830381855af49150503d805f81146101ba576040519150601f19603f3d011682016040523d82523d5f602084013e6101bf565b606091505b509150915050505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405160240161021e91906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102a89190610462565b5f604051808303815f865af19150503d805f81146102e1576040519150601f19603f3d011682016040523d82523d5f602084013e6102e6565b606091505b509150915050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61031e826102f5565b9050919050565b61032e81610314565b8114610338575f5ffd5b50565b5f8135905061034981610325565b92915050565b5f819050919050565b6103618161034f565b811461036b575f5ffd5b50565b5f8135905061037c81610358565b92915050565b5f5f60408385031215610398576103976102f1565b5b5f6103a58582860161033b565b92505060206103b68582860161036e565b9150509250929050565b6103c98161034f565b82525050565b5f6020820190506103e25f8301846103c0565b92915050565b6103f181610314565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61043c82610410565b610446818561041a565b9350610456818560208601610424565b80840191505092915050565b5f61046d8284610432565b91508190509291505056fea26469706673582212206d5e8cc20affa1618d14aec7d44dc3158f62e4a339facf25458021b88fec8b6b64736f6c63430008220033","sourceMap":"633:721:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;650:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;671:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;782:225;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1103:249;1219:12;1233:17;1254:5;:18;;1330:4;1286:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1254:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:127;;;;1174:178;;1103:249;;:::o;650:15::-;;;;:::o;671:21::-;;;;;;;;;;;;;:::o;782:225::-;882:12;896:17;917:5;:10;;985:4;941:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;881:119;;;;845:162;;782:225;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:118::-;2116:24;2134:5;2116:24;:::i;:::-;2111:3;2104:37;2029:118;;:::o;2153:222::-;2246:4;2284:2;2273:9;2269:18;2261:26;;2297:71;2365:1;2354:9;2350:17;2341:6;2297:71;:::i;:::-;2153:222;;;;:::o;2381:98::-;2432:6;2466:5;2460:12;2450:22;;2381:98;;;:::o;2485:147::-;2586:11;2623:3;2608:18;;2485:147;;;;:::o;2638:139::-;2727:6;2722:3;2717;2711:23;2768:1;2759:6;2754:3;2750:16;2743:27;2638:139;;;:::o;2783:386::-;2887:3;2915:38;2947:5;2915:38;:::i;:::-;2969:88;3050:6;3045:3;2969:88;:::i;:::-;2962:95;;3066:65;3124:6;3119:3;3112:4;3105:5;3101:16;3066:65;:::i;:::-;3156:6;3151:3;3147:16;3140:23;;2891:278;2783:386;;;;:::o;3175:271::-;3305:3;3327:93;3416:3;3407:6;3327:93;:::i;:::-;3320:100;;3437:3;3430:10;;3175:271;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callSetVars(address,uint256)":"b39a9641","delegatecallSetVars(address,uint256)":"1c1cba57","num()":"4e70b1dc","sender()":"67e404ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"callSetVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"delegatecallSetVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/23_Delegatecall/Delegatecall.sol\":\"B\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/23_Delegatecall/Delegatecall.sol\":{\"keccak256\":\"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae\",\"dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callSetVars"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"delegatecallSetVars"},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/23_Delegatecall/Delegatecall.sol":"B"},"evmVersion":"prague","libraries":{}},"sources":{"src/23_Delegatecall/Delegatecall.sol":{"keccak256":"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e","urls":["bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae","dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"callSetVars","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"delegatecallSetVars","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104ae8061001c5f395ff3fe60806040526004361061003e575f3560e01c80631c1cba57146100425780634e70b1dc1461005e57806367e404ce14610088578063b39a9641146100b2575b5f5ffd5b61005c60048036038101906100579190610382565b6100ce565b005b348015610069575f5ffd5b506100726101ca565b60405161007f91906103cf565b60405180910390f35b348015610093575f5ffd5b5061009c6101cf565b6040516100a991906103f7565b60405180910390f35b6100cc60048036038101906100c79190610382565b6101f4565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516024016100f891906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101829190610462565b5f60405180830381855af49150503d805f81146101ba576040519150601f19603f3d011682016040523d82523d5f602084013e6101bf565b606091505b509150915050505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405160240161021e91906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102a89190610462565b5f604051808303815f865af19150503d805f81146102e1576040519150601f19603f3d011682016040523d82523d5f602084013e6102e6565b606091505b509150915050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61031e826102f5565b9050919050565b61032e81610314565b8114610338575f5ffd5b50565b5f8135905061034981610325565b92915050565b5f819050919050565b6103618161034f565b811461036b575f5ffd5b50565b5f8135905061037c81610358565b92915050565b5f5f60408385031215610398576103976102f1565b5b5f6103a58582860161033b565b92505060206103b68582860161036e565b9150509250929050565b6103c98161034f565b82525050565b5f6020820190506103e25f8301846103c0565b92915050565b6103f181610314565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61043c82610410565b610446818561041a565b9350610456818560208601610424565b80840191505092915050565b5f61046d8284610432565b91508190509291505056fea26469706673582212206d5e8cc20affa1618d14aec7d44dc3158f62e4a339facf25458021b88fec8b6b64736f6c63430008220033","sourceMap":"633:721:65:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c80631c1cba57146100425780634e70b1dc1461005e57806367e404ce14610088578063b39a9641146100b2575b5f5ffd5b61005c60048036038101906100579190610382565b6100ce565b005b348015610069575f5ffd5b506100726101ca565b60405161007f91906103cf565b60405180910390f35b348015610093575f5ffd5b5061009c6101cf565b6040516100a991906103f7565b60405180910390f35b6100cc60048036038101906100c79190610382565b6101f4565b005b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516024016100f891906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101829190610462565b5f60405180830381855af49150503d805f81146101ba576040519150601f19603f3d011682016040523d82523d5f602084013e6101bf565b606091505b509150915050505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405160240161021e91906103cf565b6040516020818303038152906040527f6466414b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102a89190610462565b5f604051808303815f865af19150503d805f81146102e1576040519150601f19603f3d011682016040523d82523d5f602084013e6102e6565b606091505b509150915050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61031e826102f5565b9050919050565b61032e81610314565b8114610338575f5ffd5b50565b5f8135905061034981610325565b92915050565b5f819050919050565b6103618161034f565b811461036b575f5ffd5b50565b5f8135905061037c81610358565b92915050565b5f5f60408385031215610398576103976102f1565b5b5f6103a58582860161033b565b92505060206103b68582860161036e565b9150509250929050565b6103c98161034f565b82525050565b5f6020820190506103e25f8301846103c0565b92915050565b6103f181610314565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61043c82610410565b610446818561041a565b9350610456818560208601610424565b80840191505092915050565b5f61046d8284610432565b91508190509291505056fea26469706673582212206d5e8cc20affa1618d14aec7d44dc3158f62e4a339facf25458021b88fec8b6b64736f6c63430008220033","sourceMap":"633:721:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;650:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;671:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;782:225;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1103:249;1219:12;1233:17;1254:5;:18;;1330:4;1286:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1254:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:127;;;;1174:178;;1103:249;;:::o;650:15::-;;;;:::o;671:21::-;;;;;;;;;;;;;:::o;782:225::-;882:12;896:17;917:5;:10;;985:4;941:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;881:119;;;;845:162;;782:225;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:118::-;2116:24;2134:5;2116:24;:::i;:::-;2111:3;2104:37;2029:118;;:::o;2153:222::-;2246:4;2284:2;2273:9;2269:18;2261:26;;2297:71;2365:1;2354:9;2350:17;2341:6;2297:71;:::i;:::-;2153:222;;;;:::o;2381:98::-;2432:6;2466:5;2460:12;2450:22;;2381:98;;;:::o;2485:147::-;2586:11;2623:3;2608:18;;2485:147;;;;:::o;2638:139::-;2727:6;2722:3;2717;2711:23;2768:1;2759:6;2754:3;2750:16;2743:27;2638:139;;;:::o;2783:386::-;2887:3;2915:38;2947:5;2915:38;:::i;:::-;2969:88;3050:6;3045:3;2969:88;:::i;:::-;2962:95;;3066:65;3124:6;3119:3;3112:4;3105:5;3101:16;3066:65;:::i;:::-;3156:6;3151:3;3147:16;3140:23;;2891:278;2783:386;;;;:::o;3175:271::-;3305:3;3327:93;3416:3;3407:6;3327:93;:::i;:::-;3320:100;;3437:3;3430:10;;3175:271;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callSetVars(address,uint256)":"b39a9641","delegatecallSetVars(address,uint256)":"1c1cba57","num()":"4e70b1dc","sender()":"67e404ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"callSetVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"delegatecallSetVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/23_Delegatecall/Delegatecall.sol\":\"B\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/23_Delegatecall/Delegatecall.sol\":{\"keccak256\":\"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae\",\"dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callSetVars"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"delegatecallSetVars"},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/23_Delegatecall/Delegatecall.sol":"B"},"evmVersion":"prague","libraries":{}},"sources":{"src/23_Delegatecall/Delegatecall.sol":{"keccak256":"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e","urls":["bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae","dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/Delegatecall.sol/C.json b/out/Delegatecall.sol/C.json index 613a59b7..c1ef76a1 100644 --- a/out/Delegatecall.sol/C.json +++ b/out/Delegatecall.sol/C.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setVars","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102328061001c5f395ff3fe608060405260043610610033575f3560e01c80634e70b1dc146100375780636466414b1461006157806367e404ce1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610132565b60405180910390f35b61007b60048036038101906100769190610179565b6100ac565b005b348015610088575f5ffd5b506100916100f5565b60405161009e91906101e3565b60405180910390f35b5f5481565b805f819055503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b61012c8161011a565b82525050565b5f6020820190506101455f830184610123565b92915050565b5f5ffd5b6101588161011a565b8114610162575f5ffd5b50565b5f813590506101738161014f565b92915050565b5f6020828403121561018e5761018d61014b565b5b5f61019b84828501610165565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101cd826101a4565b9050919050565b6101dd816101c3565b82525050565b5f6020820190506101f65f8301846101d4565b9291505056fea2646970667358221220f6f5056ca513d36a27f9ed568152915288eac9c72a2c3dadf7487e91b77a9b3d64736f6c63430008220033","sourceMap":"432:167:69:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c80634e70b1dc146100375780636466414b1461006157806367e404ce1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610132565b60405180910390f35b61007b60048036038101906100769190610179565b6100ac565b005b348015610088575f5ffd5b506100916100f5565b60405161009e91906101e3565b60405180910390f35b5f5481565b805f819055503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b61012c8161011a565b82525050565b5f6020820190506101455f830184610123565b92915050565b5f5ffd5b6101588161011a565b8114610162575f5ffd5b50565b5f813590506101738161014f565b92915050565b5f6020828403121561018e5761018d61014b565b5b5f61019b84828501610165565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101cd826101a4565b9050919050565b6101dd816101c3565b82525050565b5f6020820190506101f65f8301846101d4565b9291505056fea2646970667358221220f6f5056ca513d36a27f9ed568152915288eac9c72a2c3dadf7487e91b77a9b3d64736f6c63430008220033","sourceMap":"432:167:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;498:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;470:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;449:15;;;;:::o;498:99::-;557:4;551:3;:10;;;;580;571:6;;:19;;;;;;;;;;;;;;;;;;498:99;:::o;470:21::-;;;;;;;;;;;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"num()":"4e70b1dc","sender()":"67e404ce","setVars(uint256)":"6466414b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"setVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/23_Delegatecall/Delegatecall.sol\":\"C\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/23_Delegatecall/Delegatecall.sol\":{\"keccak256\":\"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae\",\"dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setVars"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/23_Delegatecall/Delegatecall.sol":"C"},"evmVersion":"prague","libraries":{}},"sources":{"src/23_Delegatecall/Delegatecall.sol":{"keccak256":"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e","urls":["bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae","dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setVars","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102328061001c5f395ff3fe608060405260043610610033575f3560e01c80634e70b1dc146100375780636466414b1461006157806367e404ce1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610132565b60405180910390f35b61007b60048036038101906100769190610179565b6100ac565b005b348015610088575f5ffd5b506100916100f5565b60405161009e91906101e3565b60405180910390f35b5f5481565b805f819055503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b61012c8161011a565b82525050565b5f6020820190506101455f830184610123565b92915050565b5f5ffd5b6101588161011a565b8114610162575f5ffd5b50565b5f813590506101738161014f565b92915050565b5f6020828403121561018e5761018d61014b565b5b5f61019b84828501610165565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101cd826101a4565b9050919050565b6101dd816101c3565b82525050565b5f6020820190506101f65f8301846101d4565b9291505056fea2646970667358221220f6f5056ca513d36a27f9ed568152915288eac9c72a2c3dadf7487e91b77a9b3d64736f6c63430008220033","sourceMap":"432:167:65:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610033575f3560e01c80634e70b1dc146100375780636466414b1461006157806367e404ce1461007d575b5f5ffd5b348015610042575f5ffd5b5061004b6100a7565b6040516100589190610132565b60405180910390f35b61007b60048036038101906100769190610179565b6100ac565b005b348015610088575f5ffd5b506100916100f5565b60405161009e91906101e3565b60405180910390f35b5f5481565b805f819055503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b61012c8161011a565b82525050565b5f6020820190506101455f830184610123565b92915050565b5f5ffd5b6101588161011a565b8114610162575f5ffd5b50565b5f813590506101738161014f565b92915050565b5f6020828403121561018e5761018d61014b565b5b5f61019b84828501610165565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101cd826101a4565b9050919050565b6101dd816101c3565b82525050565b5f6020820190506101f65f8301846101d4565b9291505056fea2646970667358221220f6f5056ca513d36a27f9ed568152915288eac9c72a2c3dadf7487e91b77a9b3d64736f6c63430008220033","sourceMap":"432:167:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;498:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;470:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;449:15;;;;:::o;498:99::-;557:4;551:3;:10;;;;580;571:6;;:19;;;;;;;;;;;;;;;;;;498:99;:::o;470:21::-;;;;;;;;;;;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"num()":"4e70b1dc","sender()":"67e404ce","setVars(uint256)":"6466414b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"}],\"name\":\"setVars\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/23_Delegatecall/Delegatecall.sol\":\"C\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/23_Delegatecall/Delegatecall.sol\":{\"keccak256\":\"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae\",\"dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"sender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setVars"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/23_Delegatecall/Delegatecall.sol":"C"},"evmVersion":"prague","libraries":{}},"sources":{"src/23_Delegatecall/Delegatecall.sol":{"keccak256":"0xb79058f083b756b2098ff579e0fd0c12deb3bfc2b1a9f0c832494d8d7ea04c1e","urls":["bzz-raw://4be48d03960828dbccb09c0456e70a6ca3ea2ebd40b889506c947fed08b5c6ae","dweb:/ipfs/QmRvVhoAjJCwyJjvrW5WJVXwXLu1aZRLN4zENv9PVmooJP"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file diff --git a/out/DeleteContract.sol/DeleteContract.json b/out/DeleteContract.sol/DeleteContract.json index f0445577..65b3b2a1 100644 --- a/out/DeleteContract.sol/DeleteContract.json +++ b/out/DeleteContract.sol/DeleteContract.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"deleteContract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"value","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033","sourceMap":"140:402:72:-:0;;;191:2;171:22;;140:402;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033","sourceMap":"140:402:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;171:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:164;;;;;;;;;;;;;:::i;:::-;;435:105;479:12;512:21;502:31;;435:105;:::o;171:22::-;;;;:::o;265:164::-;410:10;389:33;;;7:77:145;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"deleteContract()":"5a58cd4c","getBalance()":"12065fe0","value()":"3fa4f245"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"deleteContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/26_DeleteContract/DeleteContract.sol\":\"DeleteContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/26_DeleteContract/DeleteContract.sol\":{\"keccak256\":\"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269\",\"dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/26_DeleteContract/DeleteContract.sol":"DeleteContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/26_DeleteContract/DeleteContract.sol":{"keccak256":"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac","urls":["bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269","dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt"],"license":"MIT"}},"version":1},"id":72} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"deleteContract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"value","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033","sourceMap":"140:402:66:-:0;;;191:2;171:22;;140:402;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033","sourceMap":"140:402:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;171:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:164;;;;;;;;;;;;;:::i;:::-;;435:105;479:12;512:21;502:31;;435:105;:::o;171:22::-;;;;:::o;265:164::-;410:10;389:33;;;7:77:139;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"deleteContract()":"5a58cd4c","getBalance()":"12065fe0","value()":"3fa4f245"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"deleteContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/26_DeleteContract/DeleteContract.sol\":\"DeleteContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/26_DeleteContract/DeleteContract.sol\":{\"keccak256\":\"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269\",\"dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteContract"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/26_DeleteContract/DeleteContract.sol":"DeleteContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/26_DeleteContract/DeleteContract.sol":{"keccak256":"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac","urls":["bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269","dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file diff --git a/out/DeployContract.sol/DeployContract.json b/out/DeployContract.sol/DeployContract.json index 4c5f5b36..169726b1 100644 --- a/out/DeployContract.sol/DeployContract.json +++ b/out/DeployContract.sol/DeployContract.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"demo","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct DeployContract.DemoResult","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526104fc806100115f395ff3fe608060405260043610610028575f3560e01c806301725a0b1461002c57806312065fe01461004a575b5f5ffd5b610034610074565b60405161004191906102f6565b60405180910390f35b348015610055575f5ffd5b5061005e610217565b60405161006b919061031e565b60405180910390f35b61007c61021e565b5f3460405161008a90610252565b6040518091039082f09050801580156100a5573d5f5f3e3d5ffd5b5090505f60405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610119573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013d9190610365565b81526020018373ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101af9190610365565b81525090508173ffffffffffffffffffffffffffffffffffffffff16635a58cd4c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101f9575f5ffd5b505af115801561020b573d5f5f3e3d5ffd5b50505050809250505090565b5f47905090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b6101368061039183390190565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102888261025f565b9050919050565b6102988161027e565b82525050565b5f819050919050565b6102b08161029e565b82525050565b606082015f8201516102ca5f85018261028f565b5060208201516102dd60208501826102a7565b5060408201516102f060408501826102a7565b50505050565b5f6060820190506103095f8301846102b6565b92915050565b6103188161029e565b82525050565b5f6020820190506103315f83018461030f565b92915050565b5f5ffd5b6103448161029e565b811461034e575f5ffd5b50565b5f8151905061035f8161033b565b92915050565b5f6020828403121561037a57610379610337565b5b5f61038784828501610351565b9150509291505056fe6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033a2646970667358221220cea75c98ef1ef512df3f897420035d3c04f0e286120cc2d7368ec0f4558b880664736f6c63430008220033","sourceMap":"90:611:73:-:0;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610028575f3560e01c806301725a0b1461002c57806312065fe01461004a575b5f5ffd5b610034610074565b60405161004191906102f6565b60405180910390f35b348015610055575f5ffd5b5061005e610217565b60405161006b919061031e565b60405180910390f35b61007c61021e565b5f3460405161008a90610252565b6040518091039082f09050801580156100a5573d5f5f3e3d5ffd5b5090505f60405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610119573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013d9190610365565b81526020018373ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101af9190610365565b81525090508173ffffffffffffffffffffffffffffffffffffffff16635a58cd4c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101f9575f5ffd5b505af115801561020b573d5f5f3e3d5ffd5b50505050809250505090565b5f47905090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b6101368061039183390190565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102888261025f565b9050919050565b6102988161027e565b82525050565b5f819050919050565b6102b08161029e565b82525050565b606082015f8201516102ca5f85018261028f565b5060208201516102dd60208501826102a7565b5060408201516102f060408501826102a7565b50505050565b5f6060820190506103095f8301846102b6565b92915050565b6103188161029e565b82525050565b5f6020820190506103315f83018461030f565b92915050565b5f5ffd5b6103448161029e565b811461034e575f5ffd5b50565b5f8151905061035f8161033b565b92915050565b5f6020828403121561037a57610379610337565b5b5f61038784828501610351565b9150509291505056fe6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033a2646970667358221220cea75c98ef1ef512df3f897420035d3c04f0e286120cc2d7368ec0f4558b880664736f6c63430008220033","sourceMap":"90:611:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;357:342;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;246:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;357:342;397:17;;:::i;:::-;425:18;471:9;446:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;425:58;;493:21;517:125;;;;;;;;556:3;517:125;;;;;;583:3;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;517:125;;;;620:3;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;517:125;;;493:149;;652:3;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:3;682:10;;;;357:342;:::o;246:105::-;290:12;323:21;313:31;;246:105;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:108::-;318:24;336:5;318:24;:::i;:::-;313:3;306:37;241:108;;:::o;355:77::-;392:7;421:5;410:16;;355:77;;;:::o;438:108::-;515:24;533:5;515:24;:::i;:::-;510:3;503:37;438:108;;:::o;628:693::-;783:4;778:3;774:14;870:4;863:5;859:16;853:23;889:63;946:4;941:3;937:14;923:12;889:63;:::i;:::-;798:164;1047:4;1040:5;1036:16;1030:23;1066:63;1123:4;1118:3;1114:14;1100:12;1066:63;:::i;:::-;972:167;1222:4;1215:5;1211:16;1205:23;1241:63;1298:4;1293:3;1289:14;1275:12;1241:63;:::i;:::-;1149:165;752:569;628:693;;:::o;1327:338::-;1478:4;1516:2;1505:9;1501:18;1493:26;;1529:129;1655:1;1644:9;1640:17;1631:6;1529:129;:::i;:::-;1327:338;;;;:::o;1671:118::-;1758:24;1776:5;1758:24;:::i;:::-;1753:3;1746:37;1671:118;;:::o;1795:222::-;1888:4;1926:2;1915:9;1911:18;1903:26;;1939:71;2007:1;1996:9;1992:17;1983:6;1939:71;:::i;:::-;1795:222;;;;:::o;2104:117::-;2213:1;2210;2203:12;2350:122;2423:24;2441:5;2423:24;:::i;:::-;2416:5;2413:35;2403:63;;2462:1;2459;2452:12;2403:63;2350:122;:::o;2478:143::-;2535:5;2566:6;2560:13;2551:22;;2582:33;2609:5;2582:33;:::i;:::-;2478:143;;;;:::o;2627:351::-;2697:6;2746:2;2734:9;2725:7;2721:23;2717:32;2714:119;;;2752:79;;:::i;:::-;2714:119;2872:1;2897:64;2953:7;2944:6;2933:9;2929:22;2897:64;:::i;:::-;2887:74;;2843:128;2627:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"demo()":"01725a0b","getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"demo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct DeployContract.DemoResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/26_DeleteContract/DeployContract.sol\":\"DeployContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/26_DeleteContract/DeleteContract.sol\":{\"keccak256\":\"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269\",\"dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt\"]},\"src/26_DeleteContract/DeployContract.sol\":{\"keccak256\":\"0x2aece13b80b3ac28744967ec0ddf6c9256cd9706207cf466f9f234afe6751cbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1075e9717fd3a8b7e418a51f19a8b0c597efda1ee40bfb8412d3f481bcd7506b\",\"dweb:/ipfs/QmXrmarHS631vMdXD2gbSs8wegMeUcqEN9Zic8pX8FtwiZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"function","name":"demo","outputs":[{"internalType":"struct DeployContract.DemoResult","name":"","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/26_DeleteContract/DeployContract.sol":"DeployContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/26_DeleteContract/DeleteContract.sol":{"keccak256":"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac","urls":["bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269","dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt"],"license":"MIT"},"src/26_DeleteContract/DeployContract.sol":{"keccak256":"0x2aece13b80b3ac28744967ec0ddf6c9256cd9706207cf466f9f234afe6751cbe","urls":["bzz-raw://1075e9717fd3a8b7e418a51f19a8b0c597efda1ee40bfb8412d3f481bcd7506b","dweb:/ipfs/QmXrmarHS631vMdXD2gbSs8wegMeUcqEN9Zic8pX8FtwiZ"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"demo","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct DeployContract.DemoResult","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526104fc806100115f395ff3fe608060405260043610610028575f3560e01c806301725a0b1461002c57806312065fe01461004a575b5f5ffd5b610034610074565b60405161004191906102f6565b60405180910390f35b348015610055575f5ffd5b5061005e610217565b60405161006b919061031e565b60405180910390f35b61007c61021e565b5f3460405161008a90610252565b6040518091039082f09050801580156100a5573d5f5f3e3d5ffd5b5090505f60405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610119573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013d9190610365565b81526020018373ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101af9190610365565b81525090508173ffffffffffffffffffffffffffffffffffffffff16635a58cd4c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101f9575f5ffd5b505af115801561020b573d5f5f3e3d5ffd5b50505050809250505090565b5f47905090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b6101368061039183390190565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102888261025f565b9050919050565b6102988161027e565b82525050565b5f819050919050565b6102b08161029e565b82525050565b606082015f8201516102ca5f85018261028f565b5060208201516102dd60208501826102a7565b5060408201516102f060408501826102a7565b50505050565b5f6060820190506103095f8301846102b6565b92915050565b6103188161029e565b82525050565b5f6020820190506103315f83018461030f565b92915050565b5f5ffd5b6103448161029e565b811461034e575f5ffd5b50565b5f8151905061035f8161033b565b92915050565b5f6020828403121561037a57610379610337565b5b5f61038784828501610351565b9150509291505056fe6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033a2646970667358221220cea75c98ef1ef512df3f897420035d3c04f0e286120cc2d7368ec0f4558b880664736f6c63430008220033","sourceMap":"90:611:67:-:0;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610028575f3560e01c806301725a0b1461002c57806312065fe01461004a575b5f5ffd5b610034610074565b60405161004191906102f6565b60405180910390f35b348015610055575f5ffd5b5061005e610217565b60405161006b919061031e565b60405180910390f35b61007c61021e565b5f3460405161008a90610252565b6040518091039082f09050801580156100a5573d5f5f3e3d5ffd5b5090505f60405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610119573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013d9190610365565b81526020018373ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101af9190610365565b81525090508173ffffffffffffffffffffffffffffffffffffffff16635a58cd4c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101f9575f5ffd5b505af115801561020b573d5f5f3e3d5ffd5b50505050809250505090565b5f47905090565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81525090565b6101368061039183390190565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102888261025f565b9050919050565b6102988161027e565b82525050565b5f819050919050565b6102b08161029e565b82525050565b606082015f8201516102ca5f85018261028f565b5060208201516102dd60208501826102a7565b5060408201516102f060408501826102a7565b50505050565b5f6060820190506103095f8301846102b6565b92915050565b6103188161029e565b82525050565b5f6020820190506103315f83018461030f565b92915050565b5f5ffd5b6103448161029e565b811461034e575f5ffd5b50565b5f8151905061035f8161033b565b92915050565b5f6020828403121561037a57610379610337565b5b5f61038784828501610351565b9150509291505056fe6080604052600a5f55610121806100155f395ff3fe6080604052600436106032575f3560e01c806312065fe014603c5780633fa4f2451460615780635a58cd4c146086576038565b36603857005b5f5ffd5b3480156046575f5ffd5b50604d6099565b6040516058919060d4565b60405180910390f35b348015606b575f5ffd5b50607260a0565b604051607d919060d4565b60405180910390f35b3480156090575f5ffd5b50609760a5565b005b5f47905090565b5f5481565b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5f819050919050565b60ce8160be565b82525050565b5f60208201905060e55f83018460c7565b9291505056fea2646970667358221220248e1c402a964bf3d82f85931fb4ed9602fbfcfeeedce6c1fe08c510795476d264736f6c63430008220033a2646970667358221220cea75c98ef1ef512df3f897420035d3c04f0e286120cc2d7368ec0f4558b880664736f6c63430008220033","sourceMap":"90:611:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;357:342;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;246:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;357:342;397:17;;:::i;:::-;425:18;471:9;446:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;425:58;;493:21;517:125;;;;;;;;556:3;517:125;;;;;;583:3;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;517:125;;;;620:3;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;517:125;;;493:149;;652:3;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:3;682:10;;;;357:342;:::o;246:105::-;290:12;323:21;313:31;;246:105;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:108::-;318:24;336:5;318:24;:::i;:::-;313:3;306:37;241:108;;:::o;355:77::-;392:7;421:5;410:16;;355:77;;;:::o;438:108::-;515:24;533:5;515:24;:::i;:::-;510:3;503:37;438:108;;:::o;628:693::-;783:4;778:3;774:14;870:4;863:5;859:16;853:23;889:63;946:4;941:3;937:14;923:12;889:63;:::i;:::-;798:164;1047:4;1040:5;1036:16;1030:23;1066:63;1123:4;1118:3;1114:14;1100:12;1066:63;:::i;:::-;972:167;1222:4;1215:5;1211:16;1205:23;1241:63;1298:4;1293:3;1289:14;1275:12;1241:63;:::i;:::-;1149:165;752:569;628:693;;:::o;1327:338::-;1478:4;1516:2;1505:9;1501:18;1493:26;;1529:129;1655:1;1644:9;1640:17;1631:6;1529:129;:::i;:::-;1327:338;;;;:::o;1671:118::-;1758:24;1776:5;1758:24;:::i;:::-;1753:3;1746:37;1671:118;;:::o;1795:222::-;1888:4;1926:2;1915:9;1911:18;1903:26;;1939:71;2007:1;1996:9;1992:17;1983:6;1939:71;:::i;:::-;1795:222;;;;:::o;2104:117::-;2213:1;2210;2203:12;2350:122;2423:24;2441:5;2423:24;:::i;:::-;2416:5;2413:35;2403:63;;2462:1;2459;2452:12;2403:63;2350:122;:::o;2478:143::-;2535:5;2566:6;2560:13;2551:22;;2582:33;2609:5;2582:33;:::i;:::-;2478:143;;;;:::o;2627:351::-;2697:6;2746:2;2734:9;2725:7;2721:23;2717:32;2714:119;;;2752:79;;:::i;:::-;2714:119;2872:1;2897:64;2953:7;2944:6;2933:9;2929:22;2897:64;:::i;:::-;2887:74;;2843:128;2627:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"demo()":"01725a0b","getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"demo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct DeployContract.DemoResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/26_DeleteContract/DeployContract.sol\":\"DeployContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/26_DeleteContract/DeleteContract.sol\":{\"keccak256\":\"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269\",\"dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt\"]},\"src/26_DeleteContract/DeployContract.sol\":{\"keccak256\":\"0x2aece13b80b3ac28744967ec0ddf6c9256cd9706207cf466f9f234afe6751cbe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1075e9717fd3a8b7e418a51f19a8b0c597efda1ee40bfb8412d3f481bcd7506b\",\"dweb:/ipfs/QmXrmarHS631vMdXD2gbSs8wegMeUcqEN9Zic8pX8FtwiZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"function","name":"demo","outputs":[{"internalType":"struct DeployContract.DemoResult","name":"","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/26_DeleteContract/DeployContract.sol":"DeployContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/26_DeleteContract/DeleteContract.sol":{"keccak256":"0x3ddd53d276961d266da4be2ba788dcc1905dd28df2b53234fbad2281687a0aac","urls":["bzz-raw://15947fcf4cfdd388f92518f95fbc81d9aa8ec701f183cb48f7e9085c5584f269","dweb:/ipfs/QmUZZKKHECVsnx9s5YrKb4Psioq9bUsxKzkbraYYjCosFt"],"license":"MIT"},"src/26_DeleteContract/DeployContract.sol":{"keccak256":"0x2aece13b80b3ac28744967ec0ddf6c9256cd9706207cf466f9f234afe6751cbe","urls":["bzz-raw://1075e9717fd3a8b7e418a51f19a8b0c597efda1ee40bfb8412d3f481bcd7506b","dweb:/ipfs/QmXrmarHS631vMdXD2gbSs8wegMeUcqEN9Zic8pX8FtwiZ"],"license":"MIT"}},"version":1},"id":67} \ No newline at end of file diff --git a/out/DoS.sol/Attack.json b/out/DoS.sol/Attack.json index 993eaf04..86499e3d 100644 --- a/out/DoS.sol/Attack.json +++ b/out/DoS.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"attack","inputs":[{"name":"gameAddr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102158061001c5f395ff3fe608060405260043610610021575f3560e01c8063d018db3e1461005d57610022565b5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005490610138565b60405180910390fd5b610077600480360381019061007291906101b4565b610079565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100c3575f5ffd5b505af11580156100d5573d5f5f3e3d5ffd5b50505050505050565b5f82825260208201905092915050565b7f446f532041747461636b210000000000000000000000000000000000000000005f82015250565b5f610122600b836100de565b915061012d826100ee565b602082019050919050565b5f6020820190508181035f83015261014f81610116565b9050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101838261015a565b9050919050565b61019381610179565b811461019d575f5ffd5b50565b5f813590506101ae8161018a565b92915050565b5f602082840312156101c9576101c8610156565b5b5f6101d6848285016101a0565b9150509291505056fea264697066735822122098e20f7cf8258d952302c1b1402d36bb9c075664647e6886d671f72862757e6664736f6c63430008220033","sourceMap":"1270:299:135:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610021575f3560e01c8063d018db3e1461005d57610022565b5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005490610138565b60405180910390fd5b610077600480360381019061007291906101b4565b610079565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100c3575f5ffd5b505af11580156100d5573d5f5f3e3d5ffd5b50505050505050565b5f82825260208201905092915050565b7f446f532041747461636b210000000000000000000000000000000000000000005f82015250565b5f610122600b836100de565b915061012d826100ee565b602082019050919050565b5f6020820190508181035f83015261014f81610116565b9050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101838261015a565b9050919050565b61019381610179565b811461019d575f5ffd5b50565b5f813590506101ae8161018a565b92915050565b5f602082840312156101c9576101c8610156565b5b5f6101d6848285016101a0565b9150509291505056fea264697066735822122098e20f7cf8258d952302c1b1402d36bb9c075664647e6886d671f72862757e6664736f6c63430008220033","sourceMap":"1270:299:135:-:0;;;;;;;;;;;;;;;;;;;;;1361:21;;;;;;;;;;:::i;:::-;;;;;;;;1427:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;1488:11;1510:8;1488:31;;1529:3;:11;;;1548:9;1529:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:89;1427:140;:::o;7:169:145:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:161::-;322:13;318:1;310:6;306:14;299:37;182:161;:::o;349:366::-;491:3;512:67;576:2;571:3;512:67;:::i;:::-;505:74;;588:93;677:3;588:93;:::i;:::-;706:2;701:3;697:12;690:19;;349:366;;;:::o;721:419::-;887:4;925:2;914:9;910:18;902:26;;974:9;968:4;964:20;960:1;949:9;945:17;938:47;1002:131;1128:4;1002:131;:::i;:::-;994:139;;721:419;;;:::o;1227:117::-;1336:1;1333;1326:12;1473:126;1510:7;1550:42;1543:5;1539:54;1528:65;;1473:126;;;:::o;1605:96::-;1642:7;1671:24;1689:5;1671:24;:::i;:::-;1660:35;;1605:96;;;:::o;1707:122::-;1780:24;1798:5;1780:24;:::i;:::-;1773:5;1770:35;1760:63;;1819:1;1816;1809:12;1760:63;1707:122;:::o;1835:139::-;1881:5;1919:6;1906:20;1897:29;;1935:33;1962:5;1935:33;:::i;:::-;1835:139;;;;:::o;1980:329::-;2039:6;2088:2;2076:9;2067:7;2063:23;2059:32;2056:119;;;2094:79;;:::i;:::-;2056:119;2214:1;2239:53;2284:7;2275:6;2264:9;2260:22;2239:53;:::i;:::-;2229:63;;2185:117;1980:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gameAddr\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S09_DoS/DoS.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S09_DoS/DoS.sol\":{\"keccak256\":\"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c\",\"dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"gameAddr","type":"address"}],"stateMutability":"payable","type":"function","name":"attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S09_DoS/DoS.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S09_DoS/DoS.sol":{"keccak256":"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f","urls":["bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c","dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF"],"license":"MIT"}},"version":1},"id":135} \ No newline at end of file +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"attack","inputs":[{"name":"gameAddr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102158061001c5f395ff3fe608060405260043610610021575f3560e01c8063d018db3e1461005d57610022565b5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005490610138565b60405180910390fd5b610077600480360381019061007291906101b4565b610079565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100c3575f5ffd5b505af11580156100d5573d5f5f3e3d5ffd5b50505050505050565b5f82825260208201905092915050565b7f446f532041747461636b210000000000000000000000000000000000000000005f82015250565b5f610122600b836100de565b915061012d826100ee565b602082019050919050565b5f6020820190508181035f83015261014f81610116565b9050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101838261015a565b9050919050565b61019381610179565b811461019d575f5ffd5b50565b5f813590506101ae8161018a565b92915050565b5f602082840312156101c9576101c8610156565b5b5f6101d6848285016101a0565b9150509291505056fea264697066735822122098e20f7cf8258d952302c1b1402d36bb9c075664647e6886d671f72862757e6664736f6c63430008220033","sourceMap":"1270:299:129:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610021575f3560e01c8063d018db3e1461005d57610022565b5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005490610138565b60405180910390fd5b610077600480360381019061007291906101b4565b610079565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156100c3575f5ffd5b505af11580156100d5573d5f5f3e3d5ffd5b50505050505050565b5f82825260208201905092915050565b7f446f532041747461636b210000000000000000000000000000000000000000005f82015250565b5f610122600b836100de565b915061012d826100ee565b602082019050919050565b5f6020820190508181035f83015261014f81610116565b9050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101838261015a565b9050919050565b61019381610179565b811461019d575f5ffd5b50565b5f813590506101ae8161018a565b92915050565b5f602082840312156101c9576101c8610156565b5b5f6101d6848285016101a0565b9150509291505056fea264697066735822122098e20f7cf8258d952302c1b1402d36bb9c075664647e6886d671f72862757e6664736f6c63430008220033","sourceMap":"1270:299:129:-:0;;;;;;;;;;;;;;;;;;;;;1361:21;;;;;;;;;;:::i;:::-;;;;;;;;1427:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;1488:11;1510:8;1488:31;;1529:3;:11;;;1548:9;1529:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:89;1427:140;:::o;7:169:139:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:161::-;322:13;318:1;310:6;306:14;299:37;182:161;:::o;349:366::-;491:3;512:67;576:2;571:3;512:67;:::i;:::-;505:74;;588:93;677:3;588:93;:::i;:::-;706:2;701:3;697:12;690:19;;349:366;;;:::o;721:419::-;887:4;925:2;914:9;910:18;902:26;;974:9;968:4;964:20;960:1;949:9;945:17;938:47;1002:131;1128:4;1002:131;:::i;:::-;994:139;;721:419;;;:::o;1227:117::-;1336:1;1333;1326:12;1473:126;1510:7;1550:42;1543:5;1539:54;1528:65;;1473:126;;;:::o;1605:96::-;1642:7;1671:24;1689:5;1671:24;:::i;:::-;1660:35;;1605:96;;;:::o;1707:122::-;1780:24;1798:5;1780:24;:::i;:::-;1773:5;1770:35;1760:63;;1819:1;1816;1809:12;1760:63;1707:122;:::o;1835:139::-;1881:5;1919:6;1906:20;1897:29;;1935:33;1962:5;1935:33;:::i;:::-;1835:139;;;;:::o;1980:329::-;2039:6;2088:2;2076:9;2067:7;2063:23;2059:32;2056:119;;;2094:79;;:::i;:::-;2056:119;2214:1;2239:53;2284:7;2275:6;2264:9;2260:22;2239:53;:::i;:::-;2229:63;;2185:117;1980:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gameAddr\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S09_DoS/DoS.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S09_DoS/DoS.sol\":{\"keccak256\":\"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c\",\"dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"gameAddr","type":"address"}],"stateMutability":"payable","type":"function","name":"attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S09_DoS/DoS.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S09_DoS/DoS.sol":{"keccak256":"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f","urls":["bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c","dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF"],"license":"MIT"}},"version":1},"id":129} \ No newline at end of file diff --git a/out/DoS.sol/DoSGame.json b/out/DoS.sol/DoSGame.json index ab5c5961..e756d892 100644 --- a/out/DoS.sol/DoSGame.json +++ b/out/DoS.sol/DoSGame.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"players","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"refund","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundFinished","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061082e8061001c5f395ff3fe608060405260043610610054575f3560e01c8063590e1ae31461005857806370a082311461006e57806373e1dd14146100aa578063b69ef8a8146100d4578063d0e30db0146100fe578063f71d96cb14610108575b5f5ffd5b348015610063575f5ffd5b5061006c610144565b005b348015610079575f5ffd5b50610094600480360381019061008f9190610536565b61033c565b6040516100a19190610579565b60405180910390f35b3480156100b5575f5ffd5b506100be610351565b6040516100cb91906105ac565b60405180910390f35b3480156100df575f5ffd5b506100e8610362565b6040516100f59190610579565b60405180910390f35b610106610369565b005b348015610113575f5ffd5b5061012e600480360381019061012991906105ef565b61049d565b60405161013b9190610629565b60405180910390f35b5f5f9054906101000a900460ff1615610192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101899061069c565b60405180910390fd5b5f60028054905090505f5b8181101561031f575f600282815481106101ba576101b96106ba565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8273ffffffffffffffffffffffffffffffffffffffff168260405161024a90610714565b5f6040518083038185875af1925050503d805f8114610284576040519150601f19603f3d011682016040523d82523d5f602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610772565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050808060010191505061019d565b5060015f5f6101000a81548160ff02191690831515021790555050565b6001602052805f5260405f205f915090505481565b5f5f9054906101000a900460ff1681565b5f47905090565b5f5f9054906101000a900460ff16156103b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ae9061069c565b60405180910390fd5b5f34116103f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f0906107da565b60405180910390fd5b3460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600281815481106104ac575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610505826104dc565b9050919050565b610515816104fb565b811461051f575f5ffd5b50565b5f813590506105308161050c565b92915050565b5f6020828403121561054b5761054a6104d8565b5b5f61055884828501610522565b91505092915050565b5f819050919050565b61057381610561565b82525050565b5f60208201905061058c5f83018461056a565b92915050565b5f8115159050919050565b6105a681610592565b82525050565b5f6020820190506105bf5f83018461059d565b92915050565b6105ce81610561565b81146105d8575f5ffd5b50565b5f813590506105e9816105c5565b92915050565b5f60208284031215610604576106036104d8565b5b5f610611848285016105db565b91505092915050565b610623816104fb565b82525050565b5f60208201905061063c5f83018461061a565b92915050565b5f82825260208201905092915050565b7f47616d65204f76657200000000000000000000000000000000000000000000005f82015250565b5f610686600983610642565b915061069182610652565b602082019050919050565b5f6020820190508181035f8301526106b38161067a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6106ff5f836106e7565b915061070a826106f1565b5f82019050919050565b5f61071e826106f4565b9150819050919050565b7f526566756e64204661696c2100000000000000000000000000000000000000005f82015250565b5f61075c600c83610642565b915061076782610728565b602082019050919050565b5f6020820190508181035f83015261078981610750565b9050919050565b7f506c6561736520646f6e617465204554480000000000000000000000000000005f82015250565b5f6107c4601183610642565b91506107cf82610790565b602082019050919050565b5f6020820190508181035f8301526107f1816107b8565b905091905056fea264697066735822122068ac97fbde680a6e351de51467bcb13591efa2407b60acc9a155551d6437623064736f6c63430008220033","sourceMap":"147:1121:135:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610054575f3560e01c8063590e1ae31461005857806370a082311461006e57806373e1dd14146100aa578063b69ef8a8146100d4578063d0e30db0146100fe578063f71d96cb14610108575b5f5ffd5b348015610063575f5ffd5b5061006c610144565b005b348015610079575f5ffd5b50610094600480360381019061008f9190610536565b61033c565b6040516100a19190610579565b60405180910390f35b3480156100b5575f5ffd5b506100be610351565b6040516100cb91906105ac565b60405180910390f35b3480156100df575f5ffd5b506100e8610362565b6040516100f59190610579565b60405180910390f35b610106610369565b005b348015610113575f5ffd5b5061012e600480360381019061012991906105ef565b61049d565b60405161013b9190610629565b60405180910390f35b5f5f9054906101000a900460ff1615610192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101899061069c565b60405180910390fd5b5f60028054905090505f5b8181101561031f575f600282815481106101ba576101b96106ba565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8273ffffffffffffffffffffffffffffffffffffffff168260405161024a90610714565b5f6040518083038185875af1925050503d805f8114610284576040519150601f19603f3d011682016040523d82523d5f602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610772565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050808060010191505061019d565b5060015f5f6101000a81548160ff02191690831515021790555050565b6001602052805f5260405f205f915090505481565b5f5f9054906101000a900460ff1681565b5f47905090565b5f5f9054906101000a900460ff16156103b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ae9061069c565b60405180910390fd5b5f34116103f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f0906107da565b60405180910390fd5b3460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600281815481106104ac575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610505826104dc565b9050919050565b610515816104fb565b811461051f575f5ffd5b50565b5f813590506105308161050c565b92915050565b5f6020828403121561054b5761054a6104d8565b5b5f61055884828501610522565b91505092915050565b5f819050919050565b61057381610561565b82525050565b5f60208201905061058c5f83018461056a565b92915050565b5f8115159050919050565b6105a681610592565b82525050565b5f6020820190506105bf5f83018461059d565b92915050565b6105ce81610561565b81146105d8575f5ffd5b50565b5f813590506105e9816105c5565b92915050565b5f60208284031215610604576106036104d8565b5b5f610611848285016105db565b91505092915050565b610623816104fb565b82525050565b5f60208201905061063c5f83018461061a565b92915050565b5f82825260208201905092915050565b7f47616d65204f76657200000000000000000000000000000000000000000000005f82015250565b5f610686600983610642565b915061069182610652565b602082019050919050565b5f6020820190508181035f8301526106b38161067a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6106ff5f836106e7565b915061070a826106f1565b5f82019050919050565b5f61071e826106f4565b9150819050919050565b7f526566756e64204661696c2100000000000000000000000000000000000000005f82015250565b5f61075c600c83610642565b915061076782610728565b602082019050919050565b5f6020820190508181035f83015261078981610750565b9050919050565b7f506c6561736520646f6e617465204554480000000000000000000000000000005f82015250565b5f6107c4601183610642565b91506107cf82610790565b602082019050919050565b5f6020820190508181035f8301526107f1816107b8565b905091905056fea264697066735822122068ac97fbde680a6e351de51467bcb13591efa2407b60acc9a155551d6437623064736f6c63430008220033","sourceMap":"147:1121:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;676:490;;;;;;;;;;;;;:::i;:::-;;202:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1172:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;325:274;;;:::i;:::-;;252:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:490;722:14;;;;;;;;;;;721:15;713:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;760:15;778:7;:14;;;;760:32;;851:9;847:282;866:7;862:1;:11;847:282;;;893:14;910:7;918:1;910:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;893:27;;934:17;954:9;:17;964:6;954:17;;;;;;;;;;;;;;;;934:37;;986:12;1004:6;:11;;1023:9;1004:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:52;;;1059:7;1051:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:1;1097:9;:17;1107:6;1097:17;;;;;;;;;;;;;;;:21;;;;879:250;;;875:3;;;;;;;847:282;;;;1155:4;1138:14;;:21;;;;;;;;;;;;;;;;;;703:463;676:490::o;202:44::-;;;;;;;;;;;;;;;;;:::o;170:26::-;;;;;;;;;;;;;:::o;1172:94::-;1213:7;1238:21;1231:28;;1172:94;:::o;325:274::-;380:14;;;;;;;;;;;379:15;371:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;438:1;426:9;:13;418:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;519:9;495;:21;505:10;495:21;;;;;;;;;;;;;;;:33;;;;568:7;581:10;568:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;325:274::o;252:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:90::-;1645:7;1688:5;1681:13;1674:21;1663:32;;1611:90;;;:::o;1707:109::-;1788:21;1803:5;1788:21;:::i;:::-;1783:3;1776:34;1707:109;;:::o;1822:210::-;1909:4;1947:2;1936:9;1932:18;1924:26;;1960:65;2022:1;2011:9;2007:17;1998:6;1960:65;:::i;:::-;1822:210;;;;:::o;2038:122::-;2111:24;2129:5;2111:24;:::i;:::-;2104:5;2101:35;2091:63;;2150:1;2147;2140:12;2091:63;2038:122;:::o;2166:139::-;2212:5;2250:6;2237:20;2228:29;;2266:33;2293:5;2266:33;:::i;:::-;2166:139;;;;:::o;2311:329::-;2370:6;2419:2;2407:9;2398:7;2394:23;2390:32;2387:119;;;2425:79;;:::i;:::-;2387:119;2545:1;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2516:117;2311:329;;;;:::o;2646:118::-;2733:24;2751:5;2733:24;:::i;:::-;2728:3;2721:37;2646:118;;:::o;2770:222::-;2863:4;2901:2;2890:9;2886:18;2878:26;;2914:71;2982:1;2971:9;2967:17;2958:6;2914:71;:::i;:::-;2770:222;;;;:::o;2998:169::-;3082:11;3116:6;3111:3;3104:19;3156:4;3151:3;3147:14;3132:29;;2998:169;;;;:::o;3173:159::-;3313:11;3309:1;3301:6;3297:14;3290:35;3173:159;:::o;3338:365::-;3480:3;3501:66;3565:1;3560:3;3501:66;:::i;:::-;3494:73;;3576:93;3665:3;3576:93;:::i;:::-;3694:2;3689:3;3685:12;3678:19;;3338:365;;;:::o;3709:419::-;3875:4;3913:2;3902:9;3898:18;3890:26;;3962:9;3956:4;3952:20;3948:1;3937:9;3933:17;3926:47;3990:131;4116:4;3990:131;:::i;:::-;3982:139;;3709:419;;;:::o;4134:180::-;4182:77;4179:1;4172:88;4279:4;4276:1;4269:15;4303:4;4300:1;4293:15;4320:147;4421:11;4458:3;4443:18;;4320:147;;;;:::o;4473:114::-;;:::o;4593:398::-;4752:3;4773:83;4854:1;4849:3;4773:83;:::i;:::-;4766:90;;4865:93;4954:3;4865:93;:::i;:::-;4983:1;4978:3;4974:11;4967:18;;4593:398;;;:::o;4997:379::-;5181:3;5203:147;5346:3;5203:147;:::i;:::-;5196:154;;5367:3;5360:10;;4997:379;;;:::o;5382:162::-;5522:14;5518:1;5510:6;5506:14;5499:38;5382:162;:::o;5550:366::-;5692:3;5713:67;5777:2;5772:3;5713:67;:::i;:::-;5706:74;;5789:93;5878:3;5789:93;:::i;:::-;5907:2;5902:3;5898:12;5891:19;;5550:366;;;:::o;5922:419::-;6088:4;6126:2;6115:9;6111:18;6103:26;;6175:9;6169:4;6165:20;6161:1;6150:9;6146:17;6139:47;6203:131;6329:4;6203:131;:::i;:::-;6195:139;;5922:419;;;:::o;6347:167::-;6487:19;6483:1;6475:6;6471:14;6464:43;6347:167;:::o;6520:366::-;6662:3;6683:67;6747:2;6742:3;6683:67;:::i;:::-;6676:74;;6759:93;6848:3;6759:93;:::i;:::-;6877:2;6872:3;6868:12;6861:19;;6520:366;;;:::o;6892:419::-;7058:4;7096:2;7085:9;7081:18;7073:26;;7145:9;7139:4;7135:20;7131:1;7120:9;7116:17;7109:47;7173:131;7299:4;7173:131;:::i;:::-;7165:139;;6892:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"balance()":"b69ef8a8","balanceOf(address)":"70a08231","deposit()":"d0e30db0","players(uint256)":"f71d96cb","refund()":"590e1ae3","refundFinished()":"73e1dd14"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"players\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refundFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S09_DoS/DoS.sol\":\"DoSGame\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S09_DoS/DoS.sol\":{\"keccak256\":\"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c\",\"dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"players","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"refund"},{"inputs":[],"stateMutability":"view","type":"function","name":"refundFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S09_DoS/DoS.sol":"DoSGame"},"evmVersion":"prague","libraries":{}},"sources":{"src/S09_DoS/DoS.sol":{"keccak256":"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f","urls":["bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c","dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF"],"license":"MIT"}},"version":1},"id":135} \ No newline at end of file +{"abi":[{"type":"function","name":"balance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"players","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"refund","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refundFinished","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061082e8061001c5f395ff3fe608060405260043610610054575f3560e01c8063590e1ae31461005857806370a082311461006e57806373e1dd14146100aa578063b69ef8a8146100d4578063d0e30db0146100fe578063f71d96cb14610108575b5f5ffd5b348015610063575f5ffd5b5061006c610144565b005b348015610079575f5ffd5b50610094600480360381019061008f9190610536565b61033c565b6040516100a19190610579565b60405180910390f35b3480156100b5575f5ffd5b506100be610351565b6040516100cb91906105ac565b60405180910390f35b3480156100df575f5ffd5b506100e8610362565b6040516100f59190610579565b60405180910390f35b610106610369565b005b348015610113575f5ffd5b5061012e600480360381019061012991906105ef565b61049d565b60405161013b9190610629565b60405180910390f35b5f5f9054906101000a900460ff1615610192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101899061069c565b60405180910390fd5b5f60028054905090505f5b8181101561031f575f600282815481106101ba576101b96106ba565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8273ffffffffffffffffffffffffffffffffffffffff168260405161024a90610714565b5f6040518083038185875af1925050503d805f8114610284576040519150601f19603f3d011682016040523d82523d5f602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610772565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050808060010191505061019d565b5060015f5f6101000a81548160ff02191690831515021790555050565b6001602052805f5260405f205f915090505481565b5f5f9054906101000a900460ff1681565b5f47905090565b5f5f9054906101000a900460ff16156103b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ae9061069c565b60405180910390fd5b5f34116103f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f0906107da565b60405180910390fd5b3460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600281815481106104ac575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610505826104dc565b9050919050565b610515816104fb565b811461051f575f5ffd5b50565b5f813590506105308161050c565b92915050565b5f6020828403121561054b5761054a6104d8565b5b5f61055884828501610522565b91505092915050565b5f819050919050565b61057381610561565b82525050565b5f60208201905061058c5f83018461056a565b92915050565b5f8115159050919050565b6105a681610592565b82525050565b5f6020820190506105bf5f83018461059d565b92915050565b6105ce81610561565b81146105d8575f5ffd5b50565b5f813590506105e9816105c5565b92915050565b5f60208284031215610604576106036104d8565b5b5f610611848285016105db565b91505092915050565b610623816104fb565b82525050565b5f60208201905061063c5f83018461061a565b92915050565b5f82825260208201905092915050565b7f47616d65204f76657200000000000000000000000000000000000000000000005f82015250565b5f610686600983610642565b915061069182610652565b602082019050919050565b5f6020820190508181035f8301526106b38161067a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6106ff5f836106e7565b915061070a826106f1565b5f82019050919050565b5f61071e826106f4565b9150819050919050565b7f526566756e64204661696c2100000000000000000000000000000000000000005f82015250565b5f61075c600c83610642565b915061076782610728565b602082019050919050565b5f6020820190508181035f83015261078981610750565b9050919050565b7f506c6561736520646f6e617465204554480000000000000000000000000000005f82015250565b5f6107c4601183610642565b91506107cf82610790565b602082019050919050565b5f6020820190508181035f8301526107f1816107b8565b905091905056fea264697066735822122068ac97fbde680a6e351de51467bcb13591efa2407b60acc9a155551d6437623064736f6c63430008220033","sourceMap":"147:1121:129:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610054575f3560e01c8063590e1ae31461005857806370a082311461006e57806373e1dd14146100aa578063b69ef8a8146100d4578063d0e30db0146100fe578063f71d96cb14610108575b5f5ffd5b348015610063575f5ffd5b5061006c610144565b005b348015610079575f5ffd5b50610094600480360381019061008f9190610536565b61033c565b6040516100a19190610579565b60405180910390f35b3480156100b5575f5ffd5b506100be610351565b6040516100cb91906105ac565b60405180910390f35b3480156100df575f5ffd5b506100e8610362565b6040516100f59190610579565b60405180910390f35b610106610369565b005b348015610113575f5ffd5b5061012e600480360381019061012991906105ef565b61049d565b60405161013b9190610629565b60405180910390f35b5f5f9054906101000a900460ff1615610192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101899061069c565b60405180910390fd5b5f60028054905090505f5b8181101561031f575f600282815481106101ba576101b96106ba565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8273ffffffffffffffffffffffffffffffffffffffff168260405161024a90610714565b5f6040518083038185875af1925050503d805f8114610284576040519150601f19603f3d011682016040523d82523d5f602084013e610289565b606091505b50509050806102cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c490610772565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050808060010191505061019d565b5060015f5f6101000a81548160ff02191690831515021790555050565b6001602052805f5260405f205f915090505481565b5f5f9054906101000a900460ff1681565b5f47905090565b5f5f9054906101000a900460ff16156103b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ae9061069c565b60405180910390fd5b5f34116103f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f0906107da565b60405180910390fd5b3460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600281815481106104ac575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610505826104dc565b9050919050565b610515816104fb565b811461051f575f5ffd5b50565b5f813590506105308161050c565b92915050565b5f6020828403121561054b5761054a6104d8565b5b5f61055884828501610522565b91505092915050565b5f819050919050565b61057381610561565b82525050565b5f60208201905061058c5f83018461056a565b92915050565b5f8115159050919050565b6105a681610592565b82525050565b5f6020820190506105bf5f83018461059d565b92915050565b6105ce81610561565b81146105d8575f5ffd5b50565b5f813590506105e9816105c5565b92915050565b5f60208284031215610604576106036104d8565b5b5f610611848285016105db565b91505092915050565b610623816104fb565b82525050565b5f60208201905061063c5f83018461061a565b92915050565b5f82825260208201905092915050565b7f47616d65204f76657200000000000000000000000000000000000000000000005f82015250565b5f610686600983610642565b915061069182610652565b602082019050919050565b5f6020820190508181035f8301526106b38161067a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6106ff5f836106e7565b915061070a826106f1565b5f82019050919050565b5f61071e826106f4565b9150819050919050565b7f526566756e64204661696c2100000000000000000000000000000000000000005f82015250565b5f61075c600c83610642565b915061076782610728565b602082019050919050565b5f6020820190508181035f83015261078981610750565b9050919050565b7f506c6561736520646f6e617465204554480000000000000000000000000000005f82015250565b5f6107c4601183610642565b91506107cf82610790565b602082019050919050565b5f6020820190508181035f8301526107f1816107b8565b905091905056fea264697066735822122068ac97fbde680a6e351de51467bcb13591efa2407b60acc9a155551d6437623064736f6c63430008220033","sourceMap":"147:1121:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;676:490;;;;;;;;;;;;;:::i;:::-;;202:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1172:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;325:274;;;:::i;:::-;;252:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:490;722:14;;;;;;;;;;;721:15;713:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;760:15;778:7;:14;;;;760:32;;851:9;847:282;866:7;862:1;:11;847:282;;;893:14;910:7;918:1;910:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;893:27;;934:17;954:9;:17;964:6;954:17;;;;;;;;;;;;;;;;934:37;;986:12;1004:6;:11;;1023:9;1004:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:52;;;1059:7;1051:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:1;1097:9;:17;1107:6;1097:17;;;;;;;;;;;;;;;:21;;;;879:250;;;875:3;;;;;;;847:282;;;;1155:4;1138:14;;:21;;;;;;;;;;;;;;;;;;703:463;676:490::o;202:44::-;;;;;;;;;;;;;;;;;:::o;170:26::-;;;;;;;;;;;;;:::o;1172:94::-;1213:7;1238:21;1231:28;;1172:94;:::o;325:274::-;380:14;;;;;;;;;;;379:15;371:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;438:1;426:9;:13;418:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;519:9;495;:21;505:10;495:21;;;;;;;;;;;;;;;:33;;;;568:7;581:10;568:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;325:274::o;252:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:90::-;1645:7;1688:5;1681:13;1674:21;1663:32;;1611:90;;;:::o;1707:109::-;1788:21;1803:5;1788:21;:::i;:::-;1783:3;1776:34;1707:109;;:::o;1822:210::-;1909:4;1947:2;1936:9;1932:18;1924:26;;1960:65;2022:1;2011:9;2007:17;1998:6;1960:65;:::i;:::-;1822:210;;;;:::o;2038:122::-;2111:24;2129:5;2111:24;:::i;:::-;2104:5;2101:35;2091:63;;2150:1;2147;2140:12;2091:63;2038:122;:::o;2166:139::-;2212:5;2250:6;2237:20;2228:29;;2266:33;2293:5;2266:33;:::i;:::-;2166:139;;;;:::o;2311:329::-;2370:6;2419:2;2407:9;2398:7;2394:23;2390:32;2387:119;;;2425:79;;:::i;:::-;2387:119;2545:1;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2516:117;2311:329;;;;:::o;2646:118::-;2733:24;2751:5;2733:24;:::i;:::-;2728:3;2721:37;2646:118;;:::o;2770:222::-;2863:4;2901:2;2890:9;2886:18;2878:26;;2914:71;2982:1;2971:9;2967:17;2958:6;2914:71;:::i;:::-;2770:222;;;;:::o;2998:169::-;3082:11;3116:6;3111:3;3104:19;3156:4;3151:3;3147:14;3132:29;;2998:169;;;;:::o;3173:159::-;3313:11;3309:1;3301:6;3297:14;3290:35;3173:159;:::o;3338:365::-;3480:3;3501:66;3565:1;3560:3;3501:66;:::i;:::-;3494:73;;3576:93;3665:3;3576:93;:::i;:::-;3694:2;3689:3;3685:12;3678:19;;3338:365;;;:::o;3709:419::-;3875:4;3913:2;3902:9;3898:18;3890:26;;3962:9;3956:4;3952:20;3948:1;3937:9;3933:17;3926:47;3990:131;4116:4;3990:131;:::i;:::-;3982:139;;3709:419;;;:::o;4134:180::-;4182:77;4179:1;4172:88;4279:4;4276:1;4269:15;4303:4;4300:1;4293:15;4320:147;4421:11;4458:3;4443:18;;4320:147;;;;:::o;4473:114::-;;:::o;4593:398::-;4752:3;4773:83;4854:1;4849:3;4773:83;:::i;:::-;4766:90;;4865:93;4954:3;4865:93;:::i;:::-;4983:1;4978:3;4974:11;4967:18;;4593:398;;;:::o;4997:379::-;5181:3;5203:147;5346:3;5203:147;:::i;:::-;5196:154;;5367:3;5360:10;;4997:379;;;:::o;5382:162::-;5522:14;5518:1;5510:6;5506:14;5499:38;5382:162;:::o;5550:366::-;5692:3;5713:67;5777:2;5772:3;5713:67;:::i;:::-;5706:74;;5789:93;5878:3;5789:93;:::i;:::-;5907:2;5902:3;5898:12;5891:19;;5550:366;;;:::o;5922:419::-;6088:4;6126:2;6115:9;6111:18;6103:26;;6175:9;6169:4;6165:20;6161:1;6150:9;6146:17;6139:47;6203:131;6329:4;6203:131;:::i;:::-;6195:139;;5922:419;;;:::o;6347:167::-;6487:19;6483:1;6475:6;6471:14;6464:43;6347:167;:::o;6520:366::-;6662:3;6683:67;6747:2;6742:3;6683:67;:::i;:::-;6676:74;;6759:93;6848:3;6759:93;:::i;:::-;6877:2;6872:3;6868:12;6861:19;;6520:366;;;:::o;6892:419::-;7058:4;7096:2;7085:9;7081:18;7073:26;;7145:9;7139:4;7135:20;7131:1;7120:9;7116:17;7109:47;7173:131;7299:4;7173:131;:::i;:::-;7165:139;;6892:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"balance()":"b69ef8a8","balanceOf(address)":"70a08231","deposit()":"d0e30db0","players(uint256)":"f71d96cb","refund()":"590e1ae3","refundFinished()":"73e1dd14"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"players\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refundFinished\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S09_DoS/DoS.sol\":\"DoSGame\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S09_DoS/DoS.sol\":{\"keccak256\":\"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c\",\"dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"players","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"refund"},{"inputs":[],"stateMutability":"view","type":"function","name":"refundFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S09_DoS/DoS.sol":"DoSGame"},"evmVersion":"prague","libraries":{}},"sources":{"src/S09_DoS/DoS.sol":{"keccak256":"0x5a3594e47dd3b9e1a6898d1d907da0034b6fa194adebe409c5c7e73e63fe8f4f","urls":["bzz-raw://ea8560a7d041ab7e116a844fdfaea1c5528b200023ab2058e660e0f1f7a52c0c","dweb:/ipfs/QmZLqRiwMCksrJekKszMey6KPGm8NsPVPkQgYTEGaxdGLF"],"license":"MIT"}},"version":1},"id":129} \ No newline at end of file diff --git a/out/DutchAuction.sol/DutchAuction.json b/out/DutchAuction.sol/DutchAuction.json index 90a6a4ea..9251aed1 100644 --- a/out/DutchAuction.sol/DutchAuction.json +++ b/out/DutchAuction.sol/DutchAuction.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"AUCTION_DROP_INTERVAL","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_DROP_PER_STEP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_END_PRICE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_START_PRICE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COLLECTION_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"auctionMint","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"auctionStartTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAuctionPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuctionStartTime","inputs":[{"name":"timestamp","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseURI","inputs":[{"name":"baseURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawMoney","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"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":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280601181526020017f5754462044757463682041756374696f6e0000000000000000000000000000008152506040518060400160405280601181526020017f5754462044757463682041756374696f6e000000000000000000000000000000815250335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ed575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100e4919061022b565b60405180910390fd5b6100fc8161012b60201b60201c565b50816001908161010c9190610492565b50806002908161011c9190610492565b50505042600781905550610561565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610215826101ec565b9050919050565b6102258161020b565b82525050565b5f60208201905061023e5f83018461021c565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102bf57607f821691505b6020821081036102d2576102d161027b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f9565b61033e86836102f9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038261037d61037884610356565b61035f565b610356565b9050919050565b5f819050919050565b61039b83610368565b6103af6103a782610389565b848454610305565b825550505050565b5f5f905090565b6103c66103b7565b6103d1818484610392565b505050565b5f5b828110156103f7576103ec5f8284016103be565b6001810190506103d8565b505050565b601f82111561044a578282111561044957610416816102d8565b61041f836102ea565b610428856102ea565b6020861015610435575f90505b808301610444828403826103d6565b505050505b5b505050565b5f82821c905092915050565b5f61046a5f198460080261044f565b1980831691505092915050565b5f610482838361045b565b9150826002028217905092915050565b61049b82610244565b67ffffffffffffffff8111156104b4576104b361024e565b5b6104be82546102a8565b6104c98282856103fc565b5f60209050601f8311600181146104fa575f84156104e8578287015190505b6104f28582610477565b865550610559565b601f198416610508866102d8565b5f5b8281101561052f5784890151825560018201915060208501945060208101905061050a565b8683101561054c5784890151610548601f89168261045b565b8355505b6001600288020188555050505b505050505050565b61320f8061056e5f395ff3fe6080604052600436106101c1575f3560e01c806370a08231116100f6578063b88d4fde11610094578063e592301a11610063578063e592301a146105f5578063e985e9c51461061f578063eb54f9ec1461065b578063f2fde38b14610685576101c1565b8063b88d4fde1461053d578063c87b56dd14610565578063caf8a6d1146105a1578063d8258d95146105cb576101c1565b80638da5cb5b116100d05780638da5cb5b146104ab57806395d89b41146104d5578063a22cb465146104ff578063ac44600214610527576101c1565b806370a082311461042f578063715018a61461046b5780637a1c4a5614610481576101c1565b806342842e0e1161016357806355f804b31161013d57806355f804b31461037757806359f369fe1461039f5780635cae01d3146103c95780636352211e146103f3576101c1565b806342842e0e146103095780634bd25c6f146103315780634d3554c31461035b576101c1565b8063081812fc1161019f578063081812fc14610253578063095ea7b31461028f57806318160ddd146102b757806323b872dd146102e1576101c1565b806301ffc9a7146101c55780630697346f1461020157806306fdde0314610229575b5f5ffd5b3480156101d0575f5ffd5b506101eb60048036038101906101e69190612005565b6106ad565b6040516101f8919061204a565b60405180910390f35b34801561020c575f5ffd5b506102276004803603810190610222919061209c565b6107e6565b005b348015610234575f5ffd5b5061023d6107fe565b60405161024a9190612137565b60405180910390f35b34801561025e575f5ffd5b506102796004803603810190610274919061218a565b61088a565b60405161028691906121f4565b60405180910390f35b34801561029a575f5ffd5b506102b560048036038101906102b09190612237565b610961565b005b3480156102c2575f5ffd5b506102cb610a9f565b6040516102d89190612284565b60405180910390f35b3480156102ec575f5ffd5b506103076004803603810190610302919061229d565b610aab565b005b348015610314575f5ffd5b5061032f600480360381019061032a919061229d565b610b13565b005b34801561033c575f5ffd5b50610345610b32565b6040516103529190612284565b60405180910390f35b6103756004803603810190610370919061218a565b610bea565b005b348015610382575f5ffd5b5061039d6004803603810190610398919061234e565b610d86565b005b3480156103aa575f5ffd5b506103b3610da4565b6040516103c09190612284565b60405180910390f35b3480156103d4575f5ffd5b506103dd610ddc565b6040516103ea9190612284565b60405180910390f35b3480156103fe575f5ffd5b506104196004803603810190610414919061218a565b610de1565b60405161042691906121f4565b60405180910390f35b34801561043a575f5ffd5b5061045560048036038101906104509190612399565b610e88565b6040516104629190612284565b60405180910390f35b348015610476575f5ffd5b5061047f610f3c565b005b34801561048c575f5ffd5b50610495610f4f565b6040516104a29190612284565b60405180910390f35b3480156104b6575f5ffd5b506104bf610f5b565b6040516104cc91906121f4565b60405180910390f35b3480156104e0575f5ffd5b506104e9610f82565b6040516104f69190612137565b60405180910390f35b34801561050a575f5ffd5b50610525600480360381019061052091906123ee565b61100e565b005b348015610532575f5ffd5b5061053b611106565b005b348015610548575f5ffd5b50610563600480360381019061055e9190612554565b6111b9565b005b348015610570575f5ffd5b5061058b6004803603810190610586919061218a565b611223565b6040516105989190612137565b60405180910390f35b3480156105ac575f5ffd5b506105b561131d565b6040516105c29190612284565b60405180910390f35b3480156105d6575f5ffd5b506105df611329565b6040516105ec9190612284565b60405180910390f35b348015610600575f5ffd5b5061060961132f565b6040516106169190612284565b60405180910390f35b34801561062a575f5ffd5b50610645600480360381019061064091906125d4565b611335565b604051610652919061204a565b60405180910390f35b348015610666575f5ffd5b5061066f6113c3565b60405161067c9190612284565b60405180910390f35b348015610690575f5ffd5b506106ab60048036038101906106a69190612399565b6113c9565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077757507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107df57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6107ee61144d565b8063ffffffff1660078190555050565b6001805461080b9061263f565b80601f01602080910402602001604051908101604052809291908181526020018280546108379061263f565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906126b9565b60405180910390fd5b60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a50575060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690612721565b60405180910390fd5b610a9a8184846114d4565b505050565b5f600980549050905090565b5f610ab582610de1565b9050610ac2813384611583565b610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890612789565b60405180910390fd5b610b0d818585856116ae565b50505050565b610b2d83838360405180602001604052805f8152506111b9565b505050565b5f600754421015610b4d57670de0b6b3a76400009050610be7565b61025860075442610b5e91906127d4565b10610b735767016345785d8a00009050610be7565b5f603c60075442610b8491906127d4565b610b8e9190612834565b9050603c610258610b9f9190612834565b67016345785d8a0000670de0b6b3a7640000610bbb91906127d4565b610bc59190612834565b81610bd09190612864565b670de0b6b3a7640000610be391906127d4565b9150505b90565b5f60075490505f8114158015610c005750804210155b610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c36906128ef565b60405180910390fd5b61271082610c4b610a9f565b610c55919061290d565b1115610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d906129d6565b60405180910390fd5b5f82610ca0610b32565b610caa9190612864565b905080341015610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612a3e565b60405180910390fd5b5f5f90505b83811015610d28575f610d05610a9f565b9050610d1133826118ed565b610d1a81611afb565b508080600101915050610cf4565b5080341115610d81573373ffffffffffffffffffffffffffffffffffffffff166108fc8234610d5791906127d4565b90811502906040515f60405180830381858888f19350505050158015610d7f573d5f5f3e3d5ffd5b505b505050565b610d8e61144d565b818160089182610d9f929190612c17565b505050565b603c610258610db39190612834565b67016345785d8a0000670de0b6b3a7640000610dcf91906127d4565b610dd99190612834565b81565b603c81565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a906126b9565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612d2e565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4461144d565b610f4d5f611b24565b565b670de0b6b3a764000081565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60028054610f8f9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbb9061263f565b80156110065780601f10610fdd57610100808354040283529160200191611006565b820191905f5260205f20905b815481529060010190602001808311610fe957829003601f168201915b505050505081565b8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110fa919061204a565b60405180910390a35050565b61110e61144d565b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161113390612d79565b5f6040518083038185875af1925050503d805f811461116d576040519150601f19603f3d011682016040523d82523d5f602084013e611172565b606091505b50509050806111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90612dd7565b60405180910390fd5b50565b5f6111c383610de1565b90506111d0813385611583565b61120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612789565b60405180910390fd5b61121c8186868686611be5565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612e3f565b60405180910390fd5b5f6112cc611c04565b90505f8151116112ea5760405180602001604052805f815250611315565b806112f484611c94565b604051602001611305929190612e97565b6040516020818303038152906040525b915050919050565b67016345785d8a000081565b61271081565b61025881565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60075481565b6113d161144d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611441575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161143891906121f4565b60405180910390fd5b61144a81611b24565b50565b611455611ded565b73ffffffffffffffffffffffffffffffffffffffff16611473610f5b565b73ffffffffffffffffffffffffffffffffffffffff16146114d257611496611ded565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114c991906121f4565b60405180910390fd5b565b8160055f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061161957508273ffffffffffffffffffffffffffffffffffffffff1660055f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806116a5575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612f04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190612f6c565b60405180910390fd5b611795845f836114d4565b600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117e291906127d4565b92505081905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611836919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290612fd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f09061303c565b60405180910390fd5b600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a46919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600981908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bf1858585856116ae565b611bfd84848484611df4565b5050505050565b606060088054611c139061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3f9061263f565b8015611c8a5780601f10611c6157610100808354040283529160200191611c8a565b820191905f5260205f20905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60605f8203611cda576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611de8565b5f8290505f5b5f8214611d09578080611cf29061305a565b915050600a82611d029190612834565b9150611ce0565b5f8167ffffffffffffffff811115611d2457611d23612430565b5b6040519080825280601f01601f191660200182016040528015611d565781602001600182028036833780820191505090505b5090505b5f8514611de157600182611d6e91906127d4565b9150600a85611d7d91906130a1565b6030611d89919061290d565b60f81b818381518110611d9f57611d9e6130d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611dda9190612834565b9450611d5a565b8093505050505b919050565b5f33905090565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611f99578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b8152600401611e529493929190613150565b6020604051808303815f875af1925050508015611e8d57506040513d601f19601f82011682018060405250810190611e8a91906131ae565b60015b611f0e573d805f8114611ebb576040519150601f19603f3d011682016040523d82523d5f602084013e611ec0565b606091505b505f815103611f0657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906121f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f9757836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8e91906121f4565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fe481611fb0565b8114611fee575f5ffd5b50565b5f81359050611fff81611fdb565b92915050565b5f6020828403121561201a57612019611fa8565b5b5f61202784828501611ff1565b91505092915050565b5f8115159050919050565b61204481612030565b82525050565b5f60208201905061205d5f83018461203b565b92915050565b5f63ffffffff82169050919050565b61207b81612063565b8114612085575f5ffd5b50565b5f8135905061209681612072565b92915050565b5f602082840312156120b1576120b0611fa8565b5b5f6120be84828501612088565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612109826120c7565b61211381856120d1565b93506121238185602086016120e1565b61212c816120ef565b840191505092915050565b5f6020820190508181035f83015261214f81846120ff565b905092915050565b5f819050919050565b61216981612157565b8114612173575f5ffd5b50565b5f8135905061218481612160565b92915050565b5f6020828403121561219f5761219e611fa8565b5b5f6121ac84828501612176565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121de826121b5565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b612216816121d4565b8114612220575f5ffd5b50565b5f813590506122318161220d565b92915050565b5f5f6040838503121561224d5761224c611fa8565b5b5f61225a85828601612223565b925050602061226b85828601612176565b9150509250929050565b61227e81612157565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f5f5f606084860312156122b4576122b3611fa8565b5b5f6122c186828701612223565b93505060206122d286828701612223565b92505060406122e386828701612176565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261230e5761230d6122ed565b5b8235905067ffffffffffffffff81111561232b5761232a6122f1565b5b602083019150836001820283011115612347576123466122f5565b5b9250929050565b5f5f6020838503121561236457612363611fa8565b5b5f83013567ffffffffffffffff81111561238157612380611fac565b5b61238d858286016122f9565b92509250509250929050565b5f602082840312156123ae576123ad611fa8565b5b5f6123bb84828501612223565b91505092915050565b6123cd81612030565b81146123d7575f5ffd5b50565b5f813590506123e8816123c4565b92915050565b5f5f6040838503121561240457612403611fa8565b5b5f61241185828601612223565b9250506020612422858286016123da565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612466826120ef565b810181811067ffffffffffffffff8211171561248557612484612430565b5b80604052505050565b5f612497611f9f565b90506124a3828261245d565b919050565b5f67ffffffffffffffff8211156124c2576124c1612430565b5b6124cb826120ef565b9050602081019050919050565b828183375f83830152505050565b5f6124f86124f3846124a8565b61248e565b9050828152602081018484840111156125145761251361242c565b5b61251f8482856124d8565b509392505050565b5f82601f83011261253b5761253a6122ed565b5b813561254b8482602086016124e6565b91505092915050565b5f5f5f5f6080858703121561256c5761256b611fa8565b5b5f61257987828801612223565b945050602061258a87828801612223565b935050604061259b87828801612176565b925050606085013567ffffffffffffffff8111156125bc576125bb611fac565b5b6125c887828801612527565b91505092959194509250565b5f5f604083850312156125ea576125e9611fa8565b5b5f6125f785828601612223565b925050602061260885828601612223565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061265657607f821691505b60208210810361266957612668612612565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6126a36013836120d1565b91506126ae8261266f565b602082019050919050565b5f6020820190508181035f8301526126d081612697565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61270b601e836120d1565b9150612716826126d7565b602082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6127736016836120d1565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127de82612157565b91506127e983612157565b9250828203905081811115612801576128006127a7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61283e82612157565b915061284983612157565b92508261285957612858612807565b5b828204905092915050565b5f61286e82612157565b915061287983612157565b925082820261288781612157565b9150828204841483151761289e5761289d6127a7565b5b5092915050565b7f73616c6520686173206e6f7420737461727465642079657400000000000000005f82015250565b5f6128d96018836120d1565b91506128e4826128a5565b602082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b5f61291782612157565b915061292283612157565b925082820190508082111561293a576129396127a7565b5b92915050565b7f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f5f8201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e60208201527f7420616d6f756e74000000000000000000000000000000000000000000000000604082015250565b5f6129c06048836120d1565b91506129cb82612940565b606082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e65656420746f2073656e64206d6f7265204554482e000000000000000000005f82015250565b5f612a286016836120d1565b9150612a33826129f4565b602082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a87565b612acc8683612a87565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b07612b02612afd84612157565b612ae4565b612157565b9050919050565b5f819050919050565b612b2083612aed565b612b34612b2c82612b0e565b848454612a93565b825550505050565b5f5f905090565b612b4b612b3c565b612b56818484612b17565b505050565b5f5b82811015612b7c57612b715f828401612b43565b600181019050612b5d565b505050565b601f821115612bcf5782821115612bce57612b9b81612a66565b612ba483612a78565b612bad85612a78565b6020861015612bba575f90505b808301612bc982840382612b5b565b505050505b5b505050565b5f82821c905092915050565b5f612bef5f1984600802612bd4565b1980831691505092915050565b5f612c078383612be0565b9150826002028217905092915050565b612c218383612a5c565b67ffffffffffffffff811115612c3a57612c39612430565b5b612c44825461263f565b612c4f828285612b81565b5f601f831160018114612c7c575f8415612c6a578287013590505b612c748582612bfc565b865550612cdb565b601f198416612c8a86612a66565b5f5b82811015612cb157848901358255600182019150602085019450602081019050612c8c565b86831015612cce5784890135612cca601f891682612be0565b8355505b6001600288020188555050505b50505050505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f612d186014836120d1565b9150612d2382612ce4565b602082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b5f81905092915050565b50565b5f612d645f83612d4c565b9150612d6f82612d56565b5f82019050919050565b5f612d8382612d59565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612dc16010836120d1565b9150612dcc82612d8d565b602082019050919050565b5f6020820190508181035f830152612dee81612db5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612e29600f836120d1565b9150612e3482612df5565b602082019050919050565b5f6020820190508181035f830152612e5681612e1d565b9050919050565b5f81905092915050565b5f612e71826120c7565b612e7b8185612e5d565b9350612e8b8185602086016120e1565b80840191505092915050565b5f612ea28285612e67565b9150612eae8284612e67565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f612eee6009836120d1565b9150612ef982612eba565b602082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612f56601c836120d1565b9150612f6182612f22565b602082019050919050565b5f6020820190508181035f830152612f8381612f4a565b9050919050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612fbe6014836120d1565b9150612fc982612f8a565b602082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6130266014836120d1565b915061303182612ff2565b602082019050919050565b5f6020820190508181035f8301526130538161301a565b9050919050565b5f61306482612157565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613096576130956127a7565b5b600182019050919050565b5f6130ab82612157565b91506130b683612157565b9250826130c6576130c5612807565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f613122826130fe565b61312c8185613108565b935061313c8185602086016120e1565b613145816120ef565b840191505092915050565b5f6080820190506131635f8301876121e5565b61317060208301866121e5565b61317d6040830185612275565b818103606083015261318f8184613118565b905095945050505050565b5f815190506131a881611fdb565b92915050565b5f602082840312156131c3576131c2611fa8565b5b5f6131d08482850161319a565b9150509291505056fea2646970667358221220e6c4961231964124990a12bf5aebeeec3778d11abb7c1f9a33114bf6ac9c6b9164736f6c63430008220033","sourceMap":"146:3872:91:-:0;;;1168:134;;;;;;;;;;1005:111:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:10:91;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1078:5:84;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;1280:15:91::2;1261:16;:34;;;;146:3872:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:180::-;746:77;743:1;736:88;843:4;840:1;833:15;867:4;864:1;857:15;884:180;932:77;929:1;922:88;1029:4;1026:1;1019:15;1053:4;1050:1;1043:15;1070:320;1114:6;1151:1;1145:4;1141:12;1131:22;;1198:1;1192:4;1188:12;1219:18;1209:81;;1275:4;1267:6;1263:17;1253:27;;1209:81;1337:2;1329:6;1326:14;1306:18;1303:38;1300:84;;1356:18;;:::i;:::-;1300:84;1121:269;1070:320;;;:::o;1396:141::-;1445:4;1468:3;1460:11;;1491:3;1488:1;1481:14;1525:4;1522:1;1512:18;1504:26;;1396:141;;;:::o;1543:93::-;1580:6;1627:2;1622;1615:5;1611:14;1607:23;1597:33;;1543:93;;;:::o;1642:107::-;1686:8;1736:5;1730:4;1726:16;1705:37;;1642:107;;;;:::o;1755:393::-;1824:6;1874:1;1862:10;1858:18;1897:97;1927:66;1916:9;1897:97;:::i;:::-;2015:39;2045:8;2034:9;2015:39;:::i;:::-;2003:51;;2087:4;2083:9;2076:5;2072:21;2063:30;;2136:4;2126:8;2122:19;2115:5;2112:30;2102:40;;1831:317;;1755:393;;;;;:::o;2154:77::-;2191:7;2220:5;2209:16;;2154:77;;;:::o;2237:60::-;2265:3;2286:5;2279:12;;2237:60;;;:::o;2303:142::-;2353:9;2386:53;2404:34;2413:24;2431:5;2413:24;:::i;:::-;2404:34;:::i;:::-;2386:53;:::i;:::-;2373:66;;2303:142;;;:::o;2451:75::-;2494:3;2515:5;2508:12;;2451:75;;;:::o;2532:269::-;2642:39;2673:7;2642:39;:::i;:::-;2703:91;2752:41;2776:16;2752:41;:::i;:::-;2744:6;2737:4;2731:11;2703:91;:::i;:::-;2697:4;2690:105;2608:193;2532:269;;;:::o;2807:73::-;2852:3;2873:1;2866:8;;2807:73;:::o;2886:189::-;2963:32;;:::i;:::-;3004:65;3062:6;3054;3048:4;3004:65;:::i;:::-;2939:136;2886:189;;:::o;3081:214::-;3166:1;3151:138;3176:9;3173:1;3170:16;3151:138;;;3228:51;3277:1;3273;3262:9;3258:17;3228:51;:::i;:::-;3201:1;3198;3194:9;3189:14;;3151:138;;;3155:14;3081:214;;:::o;3301:746::-;3402:2;3397:3;3394:11;3391:649;;;3431:10;3426:3;3423:19;3420:610;;;3477:38;3509:5;3477:38;:::i;:::-;3552:22;3570:3;3552:22;:::i;:::-;3611:29;3629:10;3611:29;:::i;:::-;3801:2;3789:10;3786:18;3783:79;;;3843:1;3827:17;;3783:79;3912:12;3902:8;3898:27;3942:74;4002:12;3988;3984:31;3971:11;3942:74;:::i;:::-;3443:587;;;;3420:610;3391:649;3301:746;;;:::o;4053:117::-;4107:8;4157:5;4151:4;4147:16;4126:37;;4053:117;;;;:::o;4176:169::-;4220:6;4253:51;4301:1;4297:6;4289:5;4286:1;4282:13;4253:51;:::i;:::-;4249:56;4334:4;4328;4324:15;4314:25;;4227:118;4176:169;;;;:::o;4350:295::-;4426:4;4572:29;4597:3;4591:4;4572:29;:::i;:::-;4564:37;;4634:3;4631:1;4627:11;4621:4;4618:21;4610:29;;4350:295;;;;:::o;4650:1395::-;4767:37;4800:3;4767:37;:::i;:::-;4869:18;4861:6;4858:30;4855:56;;;4891:18;;:::i;:::-;4855:56;4935:38;4967:4;4961:11;4935:38;:::i;:::-;5020:67;5080:6;5072;5066:4;5020:67;:::i;:::-;5114:1;5138:4;5125:17;;5170:2;5162:6;5159:14;5187:1;5182:618;;;;5844:1;5861:6;5858:77;;;5910:9;5905:3;5901:19;5895:26;5886:35;;5858:77;5961:67;6021:6;6014:5;5961:67;:::i;:::-;5955:4;5948:81;5817:222;5152:887;;5182:618;5234:4;5230:9;5222:6;5218:22;5268:37;5300:4;5268:37;:::i;:::-;5327:1;5341:208;5355:7;5352:1;5349:14;5341:208;;;5434:9;5429:3;5425:19;5419:26;5411:6;5404:42;5485:1;5477:6;5473:14;5463:24;;5532:2;5521:9;5517:18;5504:31;;5378:4;5375:1;5371:12;5366:17;;5341:208;;;5577:6;5568:7;5565:19;5562:179;;;5635:9;5630:3;5626:19;5620:26;5678:48;5720:4;5712:6;5708:17;5697:9;5678:48;:::i;:::-;5670:6;5663:64;5585:156;5562:179;5787:1;5783;5775:6;5771:14;5767:22;5761:4;5754:36;5189:611;;;5152:887;;4742:1303;;;4650:1395;;:::o;146:3872:91:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101c1575f3560e01c806370a08231116100f6578063b88d4fde11610094578063e592301a11610063578063e592301a146105f5578063e985e9c51461061f578063eb54f9ec1461065b578063f2fde38b14610685576101c1565b8063b88d4fde1461053d578063c87b56dd14610565578063caf8a6d1146105a1578063d8258d95146105cb576101c1565b80638da5cb5b116100d05780638da5cb5b146104ab57806395d89b41146104d5578063a22cb465146104ff578063ac44600214610527576101c1565b806370a082311461042f578063715018a61461046b5780637a1c4a5614610481576101c1565b806342842e0e1161016357806355f804b31161013d57806355f804b31461037757806359f369fe1461039f5780635cae01d3146103c95780636352211e146103f3576101c1565b806342842e0e146103095780634bd25c6f146103315780634d3554c31461035b576101c1565b8063081812fc1161019f578063081812fc14610253578063095ea7b31461028f57806318160ddd146102b757806323b872dd146102e1576101c1565b806301ffc9a7146101c55780630697346f1461020157806306fdde0314610229575b5f5ffd5b3480156101d0575f5ffd5b506101eb60048036038101906101e69190612005565b6106ad565b6040516101f8919061204a565b60405180910390f35b34801561020c575f5ffd5b506102276004803603810190610222919061209c565b6107e6565b005b348015610234575f5ffd5b5061023d6107fe565b60405161024a9190612137565b60405180910390f35b34801561025e575f5ffd5b506102796004803603810190610274919061218a565b61088a565b60405161028691906121f4565b60405180910390f35b34801561029a575f5ffd5b506102b560048036038101906102b09190612237565b610961565b005b3480156102c2575f5ffd5b506102cb610a9f565b6040516102d89190612284565b60405180910390f35b3480156102ec575f5ffd5b506103076004803603810190610302919061229d565b610aab565b005b348015610314575f5ffd5b5061032f600480360381019061032a919061229d565b610b13565b005b34801561033c575f5ffd5b50610345610b32565b6040516103529190612284565b60405180910390f35b6103756004803603810190610370919061218a565b610bea565b005b348015610382575f5ffd5b5061039d6004803603810190610398919061234e565b610d86565b005b3480156103aa575f5ffd5b506103b3610da4565b6040516103c09190612284565b60405180910390f35b3480156103d4575f5ffd5b506103dd610ddc565b6040516103ea9190612284565b60405180910390f35b3480156103fe575f5ffd5b506104196004803603810190610414919061218a565b610de1565b60405161042691906121f4565b60405180910390f35b34801561043a575f5ffd5b5061045560048036038101906104509190612399565b610e88565b6040516104629190612284565b60405180910390f35b348015610476575f5ffd5b5061047f610f3c565b005b34801561048c575f5ffd5b50610495610f4f565b6040516104a29190612284565b60405180910390f35b3480156104b6575f5ffd5b506104bf610f5b565b6040516104cc91906121f4565b60405180910390f35b3480156104e0575f5ffd5b506104e9610f82565b6040516104f69190612137565b60405180910390f35b34801561050a575f5ffd5b50610525600480360381019061052091906123ee565b61100e565b005b348015610532575f5ffd5b5061053b611106565b005b348015610548575f5ffd5b50610563600480360381019061055e9190612554565b6111b9565b005b348015610570575f5ffd5b5061058b6004803603810190610586919061218a565b611223565b6040516105989190612137565b60405180910390f35b3480156105ac575f5ffd5b506105b561131d565b6040516105c29190612284565b60405180910390f35b3480156105d6575f5ffd5b506105df611329565b6040516105ec9190612284565b60405180910390f35b348015610600575f5ffd5b5061060961132f565b6040516106169190612284565b60405180910390f35b34801561062a575f5ffd5b50610645600480360381019061064091906125d4565b611335565b604051610652919061204a565b60405180910390f35b348015610666575f5ffd5b5061066f6113c3565b60405161067c9190612284565b60405180910390f35b348015610690575f5ffd5b506106ab60048036038101906106a69190612399565b6113c9565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077757507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107df57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6107ee61144d565b8063ffffffff1660078190555050565b6001805461080b9061263f565b80601f01602080910402602001604051908101604052809291908181526020018280546108379061263f565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906126b9565b60405180910390fd5b60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a50575060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690612721565b60405180910390fd5b610a9a8184846114d4565b505050565b5f600980549050905090565b5f610ab582610de1565b9050610ac2813384611583565b610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890612789565b60405180910390fd5b610b0d818585856116ae565b50505050565b610b2d83838360405180602001604052805f8152506111b9565b505050565b5f600754421015610b4d57670de0b6b3a76400009050610be7565b61025860075442610b5e91906127d4565b10610b735767016345785d8a00009050610be7565b5f603c60075442610b8491906127d4565b610b8e9190612834565b9050603c610258610b9f9190612834565b67016345785d8a0000670de0b6b3a7640000610bbb91906127d4565b610bc59190612834565b81610bd09190612864565b670de0b6b3a7640000610be391906127d4565b9150505b90565b5f60075490505f8114158015610c005750804210155b610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c36906128ef565b60405180910390fd5b61271082610c4b610a9f565b610c55919061290d565b1115610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d906129d6565b60405180910390fd5b5f82610ca0610b32565b610caa9190612864565b905080341015610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612a3e565b60405180910390fd5b5f5f90505b83811015610d28575f610d05610a9f565b9050610d1133826118ed565b610d1a81611afb565b508080600101915050610cf4565b5080341115610d81573373ffffffffffffffffffffffffffffffffffffffff166108fc8234610d5791906127d4565b90811502906040515f60405180830381858888f19350505050158015610d7f573d5f5f3e3d5ffd5b505b505050565b610d8e61144d565b818160089182610d9f929190612c17565b505050565b603c610258610db39190612834565b67016345785d8a0000670de0b6b3a7640000610dcf91906127d4565b610dd99190612834565b81565b603c81565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a906126b9565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612d2e565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4461144d565b610f4d5f611b24565b565b670de0b6b3a764000081565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60028054610f8f9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbb9061263f565b80156110065780601f10610fdd57610100808354040283529160200191611006565b820191905f5260205f20905b815481529060010190602001808311610fe957829003601f168201915b505050505081565b8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110fa919061204a565b60405180910390a35050565b61110e61144d565b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161113390612d79565b5f6040518083038185875af1925050503d805f811461116d576040519150601f19603f3d011682016040523d82523d5f602084013e611172565b606091505b50509050806111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90612dd7565b60405180910390fd5b50565b5f6111c383610de1565b90506111d0813385611583565b61120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612789565b60405180910390fd5b61121c8186868686611be5565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612e3f565b60405180910390fd5b5f6112cc611c04565b90505f8151116112ea5760405180602001604052805f815250611315565b806112f484611c94565b604051602001611305929190612e97565b6040516020818303038152906040525b915050919050565b67016345785d8a000081565b61271081565b61025881565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60075481565b6113d161144d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611441575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161143891906121f4565b60405180910390fd5b61144a81611b24565b50565b611455611ded565b73ffffffffffffffffffffffffffffffffffffffff16611473610f5b565b73ffffffffffffffffffffffffffffffffffffffff16146114d257611496611ded565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114c991906121f4565b60405180910390fd5b565b8160055f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061161957508273ffffffffffffffffffffffffffffffffffffffff1660055f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806116a5575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612f04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190612f6c565b60405180910390fd5b611795845f836114d4565b600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117e291906127d4565b92505081905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611836919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290612fd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f09061303c565b60405180910390fd5b600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a46919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600981908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bf1858585856116ae565b611bfd84848484611df4565b5050505050565b606060088054611c139061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3f9061263f565b8015611c8a5780601f10611c6157610100808354040283529160200191611c8a565b820191905f5260205f20905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60605f8203611cda576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611de8565b5f8290505f5b5f8214611d09578080611cf29061305a565b915050600a82611d029190612834565b9150611ce0565b5f8167ffffffffffffffff811115611d2457611d23612430565b5b6040519080825280601f01601f191660200182016040528015611d565781602001600182028036833780820191505090505b5090505b5f8514611de157600182611d6e91906127d4565b9150600a85611d7d91906130a1565b6030611d89919061290d565b60f81b818381518110611d9f57611d9e6130d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611dda9190612834565b9450611d5a565b8093505050505b919050565b5f33905090565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611f99578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b8152600401611e529493929190613150565b6020604051808303815f875af1925050508015611e8d57506040513d601f19601f82011682018060405250810190611e8a91906131ae565b60015b611f0e573d805f8114611ebb576040519150601f19603f3d011682016040523d82523d5f602084013e611ec0565b606091505b505f815103611f0657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906121f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f9757836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8e91906121f4565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fe481611fb0565b8114611fee575f5ffd5b50565b5f81359050611fff81611fdb565b92915050565b5f6020828403121561201a57612019611fa8565b5b5f61202784828501611ff1565b91505092915050565b5f8115159050919050565b61204481612030565b82525050565b5f60208201905061205d5f83018461203b565b92915050565b5f63ffffffff82169050919050565b61207b81612063565b8114612085575f5ffd5b50565b5f8135905061209681612072565b92915050565b5f602082840312156120b1576120b0611fa8565b5b5f6120be84828501612088565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612109826120c7565b61211381856120d1565b93506121238185602086016120e1565b61212c816120ef565b840191505092915050565b5f6020820190508181035f83015261214f81846120ff565b905092915050565b5f819050919050565b61216981612157565b8114612173575f5ffd5b50565b5f8135905061218481612160565b92915050565b5f6020828403121561219f5761219e611fa8565b5b5f6121ac84828501612176565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121de826121b5565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b612216816121d4565b8114612220575f5ffd5b50565b5f813590506122318161220d565b92915050565b5f5f6040838503121561224d5761224c611fa8565b5b5f61225a85828601612223565b925050602061226b85828601612176565b9150509250929050565b61227e81612157565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f5f5f606084860312156122b4576122b3611fa8565b5b5f6122c186828701612223565b93505060206122d286828701612223565b92505060406122e386828701612176565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261230e5761230d6122ed565b5b8235905067ffffffffffffffff81111561232b5761232a6122f1565b5b602083019150836001820283011115612347576123466122f5565b5b9250929050565b5f5f6020838503121561236457612363611fa8565b5b5f83013567ffffffffffffffff81111561238157612380611fac565b5b61238d858286016122f9565b92509250509250929050565b5f602082840312156123ae576123ad611fa8565b5b5f6123bb84828501612223565b91505092915050565b6123cd81612030565b81146123d7575f5ffd5b50565b5f813590506123e8816123c4565b92915050565b5f5f6040838503121561240457612403611fa8565b5b5f61241185828601612223565b9250506020612422858286016123da565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612466826120ef565b810181811067ffffffffffffffff8211171561248557612484612430565b5b80604052505050565b5f612497611f9f565b90506124a3828261245d565b919050565b5f67ffffffffffffffff8211156124c2576124c1612430565b5b6124cb826120ef565b9050602081019050919050565b828183375f83830152505050565b5f6124f86124f3846124a8565b61248e565b9050828152602081018484840111156125145761251361242c565b5b61251f8482856124d8565b509392505050565b5f82601f83011261253b5761253a6122ed565b5b813561254b8482602086016124e6565b91505092915050565b5f5f5f5f6080858703121561256c5761256b611fa8565b5b5f61257987828801612223565b945050602061258a87828801612223565b935050604061259b87828801612176565b925050606085013567ffffffffffffffff8111156125bc576125bb611fac565b5b6125c887828801612527565b91505092959194509250565b5f5f604083850312156125ea576125e9611fa8565b5b5f6125f785828601612223565b925050602061260885828601612223565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061265657607f821691505b60208210810361266957612668612612565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6126a36013836120d1565b91506126ae8261266f565b602082019050919050565b5f6020820190508181035f8301526126d081612697565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61270b601e836120d1565b9150612716826126d7565b602082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6127736016836120d1565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127de82612157565b91506127e983612157565b9250828203905081811115612801576128006127a7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61283e82612157565b915061284983612157565b92508261285957612858612807565b5b828204905092915050565b5f61286e82612157565b915061287983612157565b925082820261288781612157565b9150828204841483151761289e5761289d6127a7565b5b5092915050565b7f73616c6520686173206e6f7420737461727465642079657400000000000000005f82015250565b5f6128d96018836120d1565b91506128e4826128a5565b602082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b5f61291782612157565b915061292283612157565b925082820190508082111561293a576129396127a7565b5b92915050565b7f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f5f8201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e60208201527f7420616d6f756e74000000000000000000000000000000000000000000000000604082015250565b5f6129c06048836120d1565b91506129cb82612940565b606082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e65656420746f2073656e64206d6f7265204554482e000000000000000000005f82015250565b5f612a286016836120d1565b9150612a33826129f4565b602082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a87565b612acc8683612a87565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b07612b02612afd84612157565b612ae4565b612157565b9050919050565b5f819050919050565b612b2083612aed565b612b34612b2c82612b0e565b848454612a93565b825550505050565b5f5f905090565b612b4b612b3c565b612b56818484612b17565b505050565b5f5b82811015612b7c57612b715f828401612b43565b600181019050612b5d565b505050565b601f821115612bcf5782821115612bce57612b9b81612a66565b612ba483612a78565b612bad85612a78565b6020861015612bba575f90505b808301612bc982840382612b5b565b505050505b5b505050565b5f82821c905092915050565b5f612bef5f1984600802612bd4565b1980831691505092915050565b5f612c078383612be0565b9150826002028217905092915050565b612c218383612a5c565b67ffffffffffffffff811115612c3a57612c39612430565b5b612c44825461263f565b612c4f828285612b81565b5f601f831160018114612c7c575f8415612c6a578287013590505b612c748582612bfc565b865550612cdb565b601f198416612c8a86612a66565b5f5b82811015612cb157848901358255600182019150602085019450602081019050612c8c565b86831015612cce5784890135612cca601f891682612be0565b8355505b6001600288020188555050505b50505050505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f612d186014836120d1565b9150612d2382612ce4565b602082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b5f81905092915050565b50565b5f612d645f83612d4c565b9150612d6f82612d56565b5f82019050919050565b5f612d8382612d59565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612dc16010836120d1565b9150612dcc82612d8d565b602082019050919050565b5f6020820190508181035f830152612dee81612db5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612e29600f836120d1565b9150612e3482612df5565b602082019050919050565b5f6020820190508181035f830152612e5681612e1d565b9050919050565b5f81905092915050565b5f612e71826120c7565b612e7b8185612e5d565b9350612e8b8185602086016120e1565b80840191505092915050565b5f612ea28285612e67565b9150612eae8284612e67565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f612eee6009836120d1565b9150612ef982612eba565b602082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612f56601c836120d1565b9150612f6182612f22565b602082019050919050565b5f6020820190508181035f830152612f8381612f4a565b9050919050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612fbe6014836120d1565b9150612fc982612f8a565b602082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6130266014836120d1565b915061303182612ff2565b602082019050919050565b5f6020820190508181035f8301526130538161301a565b9050919050565b5f61306482612157565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613096576130956127a7565b5b600182019050919050565b5f6130ab82612157565b91506130b683612157565b9250826130c6576130c5612807565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f613122826130fe565b61312c8185613108565b935061313c8185602086016120e1565b613145816120ef565b840191505092915050565b5f6080820190506131635f8301876121e5565b61317060208301866121e5565b61317d6040830185612275565b818103606083015261318f8184613118565b905095945050505050565b5f815190506131a881611fdb565b92915050565b5f602082840312156131c3576131c2611fa8565b5b5f6131d08482850161319a565b9150509291505056fea2646970667358221220e6c4961231964124990a12bf5aebeeec3778d11abb7c1f9a33114bf6ac9c6b9164736f6c63430008220033","sourceMap":"146:3872:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3412:111:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;328:27:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1377:102:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4874:329:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2878:479:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1701:1139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3700:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;630:146;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;;;;;;;;;;;:::i;:::-;;259:53:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3841:175:91;;;;;;;;;;;;;:::i;:::-;;6025:370:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;331:53:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;193:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;418:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;815:31:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1166:317:84;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;3412:111:91:-;1531:13:19;:11;:13::i;:::-;3507:9:91::1;3488:28;;:16;:28;;;;3412:111:::0;:::o;328:27:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;1377:102:91:-;1429:7;1455:10;:17;;;;1448:24;;1377:102;:::o;4874:329:84:-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;2878:479:91:-;2950:7;2995:16;;2977:15;:34;2973:378;;;305:7;3023:26;;;;2973:378;457:10;3087:16;;3069:15;:34;;;;:::i;:::-;:50;3065:286;;375:9;3131:24;;;;3065:286;3182:13;572:9;3217:16;;3199:15;:34;;;;:::i;:::-;3198:72;;;;:::i;:::-;3182:88;;572:9;457:10;739:36;;;;:::i;:::-;375:9;305:7;687:39;;;;:::i;:::-;686:90;;;;:::i;:::-;3310:5;:29;;;;:::i;:::-;305:7;3287:53;;;;:::i;:::-;3280:60;;;2878:479;;:::o;1701:1139::-;1766:22;1799:16;;1766:50;;1900:1;1882:14;:19;;:56;;;;;1924:14;1905:15;:33;;1882:56;1865:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;235:5;2082:8;2066:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:43;;2049:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;2245:17;2285:8;2265:17;:15;:17::i;:::-;:28;;;;:::i;:::-;2245:48;;2344:9;2331;:22;;2323:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2460:9;2472:1;2460:13;;2456:194;2479:8;2475:1;:12;2456:194;;;2508:17;2528:13;:11;:13::i;:::-;2508:33;;2555:28;2561:10;2573:9;2555:5;:28::i;:::-;2597:42;2629:9;2597:31;:42::i;:::-;2494:156;2489:3;;;;;;;2456:194;;;;2702:9;2690;:21;2686:148;;;2735:10;2727:28;;:51;2768:9;2756;:21;;;;:::i;:::-;2727:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2686:148;1756:1084;;1701:1139;:::o;3700:104::-;1531:13:19;:11;:13::i;:::-;3790:7:91::1;;3774:13;:23;;;;;;;:::i;:::-;;3700:104:::0;;:::o;630:146::-;572:9;457:10;739:36;;;;:::i;:::-;375:9;305:7;687:39;;;;:::i;:::-;686:90;;;;:::i;:::-;630:146;:::o;524:57::-;572:9;524:57;:::o;1833:178:84:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;259:53:91:-;305:7;259:53;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;380:29:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;3841:175:91:-;1531:13:19;:11;:13::i;:::-;3896:12:91::1;3914:10;:15;;3937:21;3914:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3895:68;;;3981:7;3973:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;3885:131;3841:175::o:0;6025:370:84:-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;331:53:91:-;375:9;331:53;:::o;193:47::-;235:5;193:47;:::o;418:49::-;457:10;418:49;:::o;2160:192:84:-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;815:31:91:-;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;3116:186:84:-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;1564:107:91:-;1640:10;1656:7;1640:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1564:107;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;5652:262:84:-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;3544:112:91:-;3604:13;3636;3629:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3544:112;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:93::-;1554:7;1594:10;1587:5;1583:22;1572:33;;1518:93;;;:::o;1617:120::-;1689:23;1706:5;1689:23;:::i;:::-;1682:5;1679:34;1669:62;;1727:1;1724;1717:12;1669:62;1617:120;:::o;1743:137::-;1788:5;1826:6;1813:20;1804:29;;1842:32;1868:5;1842:32;:::i;:::-;1743:137;;;;:::o;1886:327::-;1944:6;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:52;2188:7;2179:6;2168:9;2164:22;2144:52;:::i;:::-;2134:62;;2090:116;1886:327;;;;:::o;2219:99::-;2271:6;2305:5;2299:12;2289:22;;2219:99;;;:::o;2324:169::-;2408:11;2442:6;2437:3;2430:19;2482:4;2477:3;2473:14;2458:29;;2324:169;;;;:::o;2499:139::-;2588:6;2583:3;2578;2572:23;2629:1;2620:6;2615:3;2611:16;2604:27;2499:139;;;:::o;2644:102::-;2685:6;2736:2;2732:7;2727:2;2720:5;2716:14;2712:28;2702:38;;2644:102;;;:::o;2752:377::-;2840:3;2868:39;2901:5;2868:39;:::i;:::-;2923:71;2987:6;2982:3;2923:71;:::i;:::-;2916:78;;3003:65;3061:6;3056:3;3049:4;3042:5;3038:16;3003:65;:::i;:::-;3093:29;3115:6;3093:29;:::i;:::-;3088:3;3084:39;3077:46;;2844:285;2752:377;;;;:::o;3135:313::-;3248:4;3286:2;3275:9;3271:18;3263:26;;3335:9;3329:4;3325:20;3321:1;3310:9;3306:17;3299:47;3363:78;3436:4;3427:6;3363:78;:::i;:::-;3355:86;;3135:313;;;;:::o;3454:77::-;3491:7;3520:5;3509:16;;3454:77;;;:::o;3537:122::-;3610:24;3628:5;3610:24;:::i;:::-;3603:5;3600:35;3590:63;;3649:1;3646;3639:12;3590:63;3537:122;:::o;3665:139::-;3711:5;3749:6;3736:20;3727:29;;3765:33;3792:5;3765:33;:::i;:::-;3665:139;;;;:::o;3810:329::-;3869:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:119;;;3924:79;;:::i;:::-;3886:119;4044:1;4069:53;4114:7;4105:6;4094:9;4090:22;4069:53;:::i;:::-;4059:63;;4015:117;3810:329;;;;:::o;4145:126::-;4182:7;4222:42;4215:5;4211:54;4200:65;;4145:126;;;:::o;4277:96::-;4314:7;4343:24;4361:5;4343:24;:::i;:::-;4332:35;;4277:96;;;:::o;4379:118::-;4466:24;4484:5;4466:24;:::i;:::-;4461:3;4454:37;4379:118;;:::o;4503:222::-;4596:4;4634:2;4623:9;4619:18;4611:26;;4647:71;4715:1;4704:9;4700:17;4691:6;4647:71;:::i;:::-;4503:222;;;;:::o;4731:122::-;4804:24;4822:5;4804:24;:::i;:::-;4797:5;4794:35;4784:63;;4843:1;4840;4833:12;4784:63;4731:122;:::o;4859:139::-;4905:5;4943:6;4930:20;4921:29;;4959:33;4986:5;4959:33;:::i;:::-;4859:139;;;;:::o;5004:474::-;5072:6;5080;5129:2;5117:9;5108:7;5104:23;5100:32;5097:119;;;5135:79;;:::i;:::-;5097:119;5255:1;5280:53;5325:7;5316:6;5305:9;5301:22;5280:53;:::i;:::-;5270:63;;5226:117;5382:2;5408:53;5453:7;5444:6;5433:9;5429:22;5408:53;:::i;:::-;5398:63;;5353:118;5004:474;;;;;:::o;5484:118::-;5571:24;5589:5;5571:24;:::i;:::-;5566:3;5559:37;5484:118;;:::o;5608:222::-;5701:4;5739:2;5728:9;5724:18;5716:26;;5752:71;5820:1;5809:9;5805:17;5796:6;5752:71;:::i;:::-;5608:222;;;;:::o;5836:619::-;5913:6;5921;5929;5978:2;5966:9;5957:7;5953:23;5949:32;5946:119;;;5984:79;;:::i;:::-;5946:119;6104:1;6129:53;6174:7;6165:6;6154:9;6150:22;6129:53;:::i;:::-;6119:63;;6075:117;6231:2;6257:53;6302:7;6293:6;6282:9;6278:22;6257:53;:::i;:::-;6247:63;;6202:118;6359:2;6385:53;6430:7;6421:6;6410:9;6406:22;6385:53;:::i;:::-;6375:63;;6330:118;5836:619;;;;;:::o;6461:117::-;6570:1;6567;6560:12;6584:117;6693:1;6690;6683:12;6707:117;6816:1;6813;6806:12;6844:553;6902:8;6912:6;6962:3;6955:4;6947:6;6943:17;6939:27;6929:122;;6970:79;;:::i;:::-;6929:122;7083:6;7070:20;7060:30;;7113:18;7105:6;7102:30;7099:117;;;7135:79;;:::i;:::-;7099:117;7249:4;7241:6;7237:17;7225:29;;7303:3;7295:4;7287:6;7283:17;7273:8;7269:32;7266:41;7263:128;;;7310:79;;:::i;:::-;7263:128;6844:553;;;;;:::o;7403:529::-;7474:6;7482;7531:2;7519:9;7510:7;7506:23;7502:32;7499:119;;;7537:79;;:::i;:::-;7499:119;7685:1;7674:9;7670:17;7657:31;7715:18;7707:6;7704:30;7701:117;;;7737:79;;:::i;:::-;7701:117;7850:65;7907:7;7898:6;7887:9;7883:22;7850:65;:::i;:::-;7832:83;;;;7628:297;7403:529;;;;;:::o;7938:329::-;7997:6;8046:2;8034:9;8025:7;8021:23;8017:32;8014:119;;;8052:79;;:::i;:::-;8014:119;8172:1;8197:53;8242:7;8233:6;8222:9;8218:22;8197:53;:::i;:::-;8187:63;;8143:117;7938:329;;;;:::o;8273:116::-;8343:21;8358:5;8343:21;:::i;:::-;8336:5;8333:32;8323:60;;8379:1;8376;8369:12;8323:60;8273:116;:::o;8395:133::-;8438:5;8476:6;8463:20;8454:29;;8492:30;8516:5;8492:30;:::i;:::-;8395:133;;;;:::o;8534:468::-;8599:6;8607;8656:2;8644:9;8635:7;8631:23;8627:32;8624:119;;;8662:79;;:::i;:::-;8624:119;8782:1;8807:53;8852:7;8843:6;8832:9;8828:22;8807:53;:::i;:::-;8797:63;;8753:117;8909:2;8935:50;8977:7;8968:6;8957:9;8953:22;8935:50;:::i;:::-;8925:60;;8880:115;8534:468;;;;;:::o;9008:117::-;9117:1;9114;9107:12;9131:180;9179:77;9176:1;9169:88;9276:4;9273:1;9266:15;9300:4;9297:1;9290:15;9317:281;9400:27;9422:4;9400:27;:::i;:::-;9392:6;9388:40;9530:6;9518:10;9515:22;9494:18;9482:10;9479:34;9476:62;9473:88;;;9541:18;;:::i;:::-;9473:88;9581:10;9577:2;9570:22;9360:238;9317:281;;:::o;9604:129::-;9638:6;9665:20;;:::i;:::-;9655:30;;9694:33;9722:4;9714:6;9694:33;:::i;:::-;9604:129;;;:::o;9739:307::-;9800:4;9890:18;9882:6;9879:30;9876:56;;;9912:18;;:::i;:::-;9876:56;9950:29;9972:6;9950:29;:::i;:::-;9942:37;;10034:4;10028;10024:15;10016:23;;9739:307;;;:::o;10052:148::-;10150:6;10145:3;10140;10127:30;10191:1;10182:6;10177:3;10173:16;10166:27;10052:148;;;:::o;10206:423::-;10283:5;10308:65;10324:48;10365:6;10324:48;:::i;:::-;10308:65;:::i;:::-;10299:74;;10396:6;10389:5;10382:21;10434:4;10427:5;10423:16;10472:3;10463:6;10458:3;10454:16;10451:25;10448:112;;;10479:79;;:::i;:::-;10448:112;10569:54;10616:6;10611:3;10606;10569:54;:::i;:::-;10289:340;10206:423;;;;;:::o;10648:338::-;10703:5;10752:3;10745:4;10737:6;10733:17;10729:27;10719:122;;10760:79;;:::i;:::-;10719:122;10877:6;10864:20;10902:78;10976:3;10968:6;10961:4;10953:6;10949:17;10902:78;:::i;:::-;10893:87;;10709:277;10648:338;;;;:::o;10992:943::-;11087:6;11095;11103;11111;11160:3;11148:9;11139:7;11135:23;11131:33;11128:120;;;11167:79;;:::i;:::-;11128:120;11287:1;11312:53;11357:7;11348:6;11337:9;11333:22;11312:53;:::i;:::-;11302:63;;11258:117;11414:2;11440:53;11485:7;11476:6;11465:9;11461:22;11440:53;:::i;:::-;11430:63;;11385:118;11542:2;11568:53;11613:7;11604:6;11593:9;11589:22;11568:53;:::i;:::-;11558:63;;11513:118;11698:2;11687:9;11683:18;11670:32;11729:18;11721:6;11718:30;11715:117;;;11751:79;;:::i;:::-;11715:117;11856:62;11910:7;11901:6;11890:9;11886:22;11856:62;:::i;:::-;11846:72;;11641:287;10992:943;;;;;;;:::o;11941:474::-;12009:6;12017;12066:2;12054:9;12045:7;12041:23;12037:32;12034:119;;;12072:79;;:::i;:::-;12034:119;12192:1;12217:53;12262:7;12253:6;12242:9;12238:22;12217:53;:::i;:::-;12207:63;;12163:117;12319:2;12345:53;12390:7;12381:6;12370:9;12366:22;12345:53;:::i;:::-;12335:63;;12290:118;11941:474;;;;;:::o;12421:180::-;12469:77;12466:1;12459:88;12566:4;12563:1;12556:15;12590:4;12587:1;12580:15;12607:320;12651:6;12688:1;12682:4;12678:12;12668:22;;12735:1;12729:4;12725:12;12756:18;12746:81;;12812:4;12804:6;12800:17;12790:27;;12746:81;12874:2;12866:6;12863:14;12843:18;12840:38;12837:84;;12893:18;;:::i;:::-;12837:84;12658:269;12607:320;;;:::o;12933:169::-;13073:21;13069:1;13061:6;13057:14;13050:45;12933:169;:::o;13108:366::-;13250:3;13271:67;13335:2;13330:3;13271:67;:::i;:::-;13264:74;;13347:93;13436:3;13347:93;:::i;:::-;13465:2;13460:3;13456:12;13449:19;;13108:366;;;:::o;13480:419::-;13646:4;13684:2;13673:9;13669:18;13661:26;;13733:9;13727:4;13723:20;13719:1;13708:9;13704:17;13697:47;13761:131;13887:4;13761:131;:::i;:::-;13753:139;;13480:419;;;:::o;13905:180::-;14045:32;14041:1;14033:6;14029:14;14022:56;13905:180;:::o;14091:366::-;14233:3;14254:67;14318:2;14313:3;14254:67;:::i;:::-;14247:74;;14330:93;14419:3;14330:93;:::i;:::-;14448:2;14443:3;14439:12;14432:19;;14091:366;;;:::o;14463:419::-;14629:4;14667:2;14656:9;14652:18;14644:26;;14716:9;14710:4;14706:20;14702:1;14691:9;14687:17;14680:47;14744:131;14870:4;14744:131;:::i;:::-;14736:139;;14463:419;;;:::o;14888:172::-;15028:24;15024:1;15016:6;15012:14;15005:48;14888:172;:::o;15066:366::-;15208:3;15229:67;15293:2;15288:3;15229:67;:::i;:::-;15222:74;;15305:93;15394:3;15305:93;:::i;:::-;15423:2;15418:3;15414:12;15407:19;;15066:366;;;:::o;15438:419::-;15604:4;15642:2;15631:9;15627:18;15619:26;;15691:9;15685:4;15681:20;15677:1;15666:9;15662:17;15655:47;15719:131;15845:4;15719:131;:::i;:::-;15711:139;;15438:419;;;:::o;15863:180::-;15911:77;15908:1;15901:88;16008:4;16005:1;15998:15;16032:4;16029:1;16022:15;16049:194;16089:4;16109:20;16127:1;16109:20;:::i;:::-;16104:25;;16143:20;16161:1;16143:20;:::i;:::-;16138:25;;16187:1;16184;16180:9;16172:17;;16211:1;16205:4;16202:11;16199:37;;;16216:18;;:::i;:::-;16199:37;16049:194;;;;:::o;16249:180::-;16297:77;16294:1;16287:88;16394:4;16391:1;16384:15;16418:4;16415:1;16408:15;16435:185;16475:1;16492:20;16510:1;16492:20;:::i;:::-;16487:25;;16526:20;16544:1;16526:20;:::i;:::-;16521:25;;16565:1;16555:35;;16570:18;;:::i;:::-;16555:35;16612:1;16609;16605:9;16600:14;;16435:185;;;;:::o;16626:410::-;16666:7;16689:20;16707:1;16689:20;:::i;:::-;16684:25;;16723:20;16741:1;16723:20;:::i;:::-;16718:25;;16778:1;16775;16771:9;16800:30;16818:11;16800:30;:::i;:::-;16789:41;;16979:1;16970:7;16966:15;16963:1;16960:22;16940:1;16933:9;16913:83;16890:139;;17009:18;;:::i;:::-;16890:139;16674:362;16626:410;;;;:::o;17042:174::-;17182:26;17178:1;17170:6;17166:14;17159:50;17042:174;:::o;17222:366::-;17364:3;17385:67;17449:2;17444:3;17385:67;:::i;:::-;17378:74;;17461:93;17550:3;17461:93;:::i;:::-;17579:2;17574:3;17570:12;17563:19;;17222:366;;;:::o;17594:419::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17847:9;17841:4;17837:20;17833:1;17822:9;17818:17;17811:47;17875:131;18001:4;17875:131;:::i;:::-;17867:139;;17594:419;;;:::o;18019:191::-;18059:3;18078:20;18096:1;18078:20;:::i;:::-;18073:25;;18112:20;18130:1;18112:20;:::i;:::-;18107:25;;18155:1;18152;18148:9;18141:16;;18176:3;18173:1;18170:10;18167:36;;;18183:18;;:::i;:::-;18167:36;18019:191;;;;:::o;18216:296::-;18356:34;18352:1;18344:6;18340:14;18333:58;18425:34;18420:2;18412:6;18408:15;18401:59;18494:10;18489:2;18481:6;18477:15;18470:35;18216:296;:::o;18518:366::-;18660:3;18681:67;18745:2;18740:3;18681:67;:::i;:::-;18674:74;;18757:93;18846:3;18757:93;:::i;:::-;18875:2;18870:3;18866:12;18859:19;;18518:366;;;:::o;18890:419::-;19056:4;19094:2;19083:9;19079:18;19071:26;;19143:9;19137:4;19133:20;19129:1;19118:9;19114:17;19107:47;19171:131;19297:4;19171:131;:::i;:::-;19163:139;;18890:419;;;:::o;19315:172::-;19455:24;19451:1;19443:6;19439:14;19432:48;19315:172;:::o;19493:366::-;19635:3;19656:67;19720:2;19715:3;19656:67;:::i;:::-;19649:74;;19732:93;19821:3;19732:93;:::i;:::-;19850:2;19845:3;19841:12;19834:19;;19493:366;;;:::o;19865:419::-;20031:4;20069:2;20058:9;20054:18;20046:26;;20118:9;20112:4;20108:20;20104:1;20093:9;20089:17;20082:47;20146:131;20272:4;20146:131;:::i;:::-;20138:139;;19865:419;;;:::o;20290:97::-;20349:6;20377:3;20367:13;;20290:97;;;;:::o;20393:141::-;20442:4;20465:3;20457:11;;20488:3;20485:1;20478:14;20522:4;20519:1;20509:18;20501:26;;20393:141;;;:::o;20540:93::-;20577:6;20624:2;20619;20612:5;20608:14;20604:23;20594:33;;20540:93;;;:::o;20639:107::-;20683:8;20733:5;20727:4;20723:16;20702:37;;20639:107;;;;:::o;20752:393::-;20821:6;20871:1;20859:10;20855:18;20894:97;20924:66;20913:9;20894:97;:::i;:::-;21012:39;21042:8;21031:9;21012:39;:::i;:::-;21000:51;;21084:4;21080:9;21073:5;21069:21;21060:30;;21133:4;21123:8;21119:19;21112:5;21109:30;21099:40;;20828:317;;20752:393;;;;;:::o;21151:60::-;21179:3;21200:5;21193:12;;21151:60;;;:::o;21217:142::-;21267:9;21300:53;21318:34;21327:24;21345:5;21327:24;:::i;:::-;21318:34;:::i;:::-;21300:53;:::i;:::-;21287:66;;21217:142;;;:::o;21365:75::-;21408:3;21429:5;21422:12;;21365:75;;;:::o;21446:269::-;21556:39;21587:7;21556:39;:::i;:::-;21617:91;21666:41;21690:16;21666:41;:::i;:::-;21658:6;21651:4;21645:11;21617:91;:::i;:::-;21611:4;21604:105;21522:193;21446:269;;;:::o;21721:73::-;21766:3;21787:1;21780:8;;21721:73;:::o;21800:189::-;21877:32;;:::i;:::-;21918:65;21976:6;21968;21962:4;21918:65;:::i;:::-;21853:136;21800:189;;:::o;21995:214::-;22080:1;22065:138;22090:9;22087:1;22084:16;22065:138;;;22142:51;22191:1;22187;22176:9;22172:17;22142:51;:::i;:::-;22115:1;22112;22108:9;22103:14;;22065:138;;;22069:14;21995:214;;:::o;22215:746::-;22316:2;22311:3;22308:11;22305:649;;;22345:10;22340:3;22337:19;22334:610;;;22391:38;22423:5;22391:38;:::i;:::-;22466:22;22484:3;22466:22;:::i;:::-;22525:29;22543:10;22525:29;:::i;:::-;22715:2;22703:10;22700:18;22697:79;;;22757:1;22741:17;;22697:79;22826:12;22816:8;22812:27;22856:74;22916:12;22902;22898:31;22885:11;22856:74;:::i;:::-;22357:587;;;;22334:610;22305:649;22215:746;;;:::o;22967:117::-;23021:8;23071:5;23065:4;23061:16;23040:37;;22967:117;;;;:::o;23090:169::-;23134:6;23167:51;23215:1;23211:6;23203:5;23200:1;23196:13;23167:51;:::i;:::-;23163:56;23248:4;23242;23238:15;23228:25;;23141:118;23090:169;;;;:::o;23264:295::-;23340:4;23486:29;23511:3;23505:4;23486:29;:::i;:::-;23478:37;;23548:3;23545:1;23541:11;23535:4;23532:21;23524:29;;23264:295;;;;:::o;23564:1403::-;23688:44;23728:3;23723;23688:44;:::i;:::-;23797:18;23789:6;23786:30;23783:56;;;23819:18;;:::i;:::-;23783:56;23863:38;23895:4;23889:11;23863:38;:::i;:::-;23948:67;24008:6;24000;23994:4;23948:67;:::i;:::-;24042:1;24071:2;24063:6;24060:14;24088:1;24083:632;;;;24759:1;24776:6;24773:84;;;24832:9;24827:3;24823:19;24810:33;24801:42;;24773:84;24883:67;24943:6;24936:5;24883:67;:::i;:::-;24877:4;24870:81;24732:229;24053:908;;24083:632;24135:4;24131:9;24123:6;24119:22;24169:37;24201:4;24169:37;:::i;:::-;24228:1;24242:215;24256:7;24253:1;24250:14;24242:215;;;24342:9;24337:3;24333:19;24320:33;24312:6;24305:49;24393:1;24385:6;24381:14;24371:24;;24440:2;24429:9;24425:18;24412:31;;24279:4;24276:1;24272:12;24267:17;;24242:215;;;24485:6;24476:7;24473:19;24470:186;;;24550:9;24545:3;24541:19;24528:33;24593:48;24635:4;24627:6;24623:17;24612:9;24593:48;:::i;:::-;24585:6;24578:64;24493:163;24470:186;24702:1;24698;24690:6;24686:14;24682:22;24676:4;24669:36;24090:625;;;24053:908;;23663:1304;;;23564:1403;;;:::o;24973:170::-;25113:22;25109:1;25101:6;25097:14;25090:46;24973:170;:::o;25149:366::-;25291:3;25312:67;25376:2;25371:3;25312:67;:::i;:::-;25305:74;;25388:93;25477:3;25388:93;:::i;:::-;25506:2;25501:3;25497:12;25490:19;;25149:366;;;:::o;25521:419::-;25687:4;25725:2;25714:9;25710:18;25702:26;;25774:9;25768:4;25764:20;25760:1;25749:9;25745:17;25738:47;25802:131;25928:4;25802:131;:::i;:::-;25794:139;;25521:419;;;:::o;25946:147::-;26047:11;26084:3;26069:18;;25946:147;;;;:::o;26099:114::-;;:::o;26219:398::-;26378:3;26399:83;26480:1;26475:3;26399:83;:::i;:::-;26392:90;;26491:93;26580:3;26491:93;:::i;:::-;26609:1;26604:3;26600:11;26593:18;;26219:398;;;:::o;26623:379::-;26807:3;26829:147;26972:3;26829:147;:::i;:::-;26822:154;;26993:3;26986:10;;26623:379;;;:::o;27008:166::-;27148:18;27144:1;27136:6;27132:14;27125:42;27008:166;:::o;27180:366::-;27322:3;27343:67;27407:2;27402:3;27343:67;:::i;:::-;27336:74;;27419:93;27508:3;27419:93;:::i;:::-;27537:2;27532:3;27528:12;27521:19;;27180:366;;;:::o;27552:419::-;27718:4;27756:2;27745:9;27741:18;27733:26;;27805:9;27799:4;27795:20;27791:1;27780:9;27776:17;27769:47;27833:131;27959:4;27833:131;:::i;:::-;27825:139;;27552:419;;;:::o;27977:165::-;28117:17;28113:1;28105:6;28101:14;28094:41;27977:165;:::o;28148:366::-;28290:3;28311:67;28375:2;28370:3;28311:67;:::i;:::-;28304:74;;28387:93;28476:3;28387:93;:::i;:::-;28505:2;28500:3;28496:12;28489:19;;28148:366;;;:::o;28520:419::-;28686:4;28724:2;28713:9;28709:18;28701:26;;28773:9;28767:4;28763:20;28759:1;28748:9;28744:17;28737:47;28801:131;28927:4;28801:131;:::i;:::-;28793:139;;28520:419;;;:::o;28945:148::-;29047:11;29084:3;29069:18;;28945:148;;;;:::o;29099:390::-;29205:3;29233:39;29266:5;29233:39;:::i;:::-;29288:89;29370:6;29365:3;29288:89;:::i;:::-;29281:96;;29386:65;29444:6;29439:3;29432:4;29425:5;29421:16;29386:65;:::i;:::-;29476:6;29471:3;29467:16;29460:23;;29209:280;29099:390;;;;:::o;29495:435::-;29675:3;29697:95;29788:3;29779:6;29697:95;:::i;:::-;29690:102;;29809:95;29900:3;29891:6;29809:95;:::i;:::-;29802:102;;29921:3;29914:10;;29495:435;;;;;:::o;29936:159::-;30076:11;30072:1;30064:6;30060:14;30053:35;29936:159;:::o;30101:365::-;30243:3;30264:66;30328:1;30323:3;30264:66;:::i;:::-;30257:73;;30339:93;30428:3;30339:93;:::i;:::-;30457:2;30452:3;30448:12;30441:19;;30101:365;;;:::o;30472:419::-;30638:4;30676:2;30665:9;30661:18;30653:26;;30725:9;30719:4;30715:20;30711:1;30700:9;30696:17;30689:47;30753:131;30879:4;30753:131;:::i;:::-;30745:139;;30472:419;;;:::o;30897:178::-;31037:30;31033:1;31025:6;31021:14;31014:54;30897:178;:::o;31081:366::-;31223:3;31244:67;31308:2;31303:3;31244:67;:::i;:::-;31237:74;;31320:93;31409:3;31320:93;:::i;:::-;31438:2;31433:3;31429:12;31422:19;;31081:366;;;:::o;31453:419::-;31619:4;31657:2;31646:9;31642:18;31634:26;;31706:9;31700:4;31696:20;31692:1;31681:9;31677:17;31670:47;31734:131;31860:4;31734:131;:::i;:::-;31726:139;;31453:419;;;:::o;31878:170::-;32018:22;32014:1;32006:6;32002:14;31995:46;31878:170;:::o;32054:366::-;32196:3;32217:67;32281:2;32276:3;32217:67;:::i;:::-;32210:74;;32293:93;32382:3;32293:93;:::i;:::-;32411:2;32406:3;32402:12;32395:19;;32054:366;;;:::o;32426:419::-;32592:4;32630:2;32619:9;32615:18;32607:26;;32679:9;32673:4;32669:20;32665:1;32654:9;32650:17;32643:47;32707:131;32833:4;32707:131;:::i;:::-;32699:139;;32426:419;;;:::o;32851:170::-;32991:22;32987:1;32979:6;32975:14;32968:46;32851:170;:::o;33027:366::-;33169:3;33190:67;33254:2;33249:3;33190:67;:::i;:::-;33183:74;;33266:93;33355:3;33266:93;:::i;:::-;33384:2;33379:3;33375:12;33368:19;;33027:366;;;:::o;33399:419::-;33565:4;33603:2;33592:9;33588:18;33580:26;;33652:9;33646:4;33642:20;33638:1;33627:9;33623:17;33616:47;33680:131;33806:4;33680:131;:::i;:::-;33672:139;;33399:419;;;:::o;33824:233::-;33863:3;33886:24;33904:5;33886:24;:::i;:::-;33877:33;;33932:66;33925:5;33922:77;33919:103;;34002:18;;:::i;:::-;33919:103;34049:1;34042:5;34038:13;34031:20;;33824:233;;;:::o;34063:176::-;34095:1;34112:20;34130:1;34112:20;:::i;:::-;34107:25;;34146:20;34164:1;34146:20;:::i;:::-;34141:25;;34185:1;34175:35;;34190:18;;:::i;:::-;34175:35;34231:1;34228;34224:9;34219:14;;34063:176;;;;:::o;34245:180::-;34293:77;34290:1;34283:88;34390:4;34387:1;34380:15;34414:4;34411:1;34404:15;34431:98;34482:6;34516:5;34510:12;34500:22;;34431:98;;;:::o;34535:168::-;34618:11;34652:6;34647:3;34640:19;34692:4;34687:3;34683:14;34668:29;;34535:168;;;;:::o;34709:373::-;34795:3;34823:38;34855:5;34823:38;:::i;:::-;34877:70;34940:6;34935:3;34877:70;:::i;:::-;34870:77;;34956:65;35014:6;35009:3;35002:4;34995:5;34991:16;34956:65;:::i;:::-;35046:29;35068:6;35046:29;:::i;:::-;35041:3;35037:39;35030:46;;34799:283;34709:373;;;;:::o;35088:640::-;35283:4;35321:3;35310:9;35306:19;35298:27;;35335:71;35403:1;35392:9;35388:17;35379:6;35335:71;:::i;:::-;35416:72;35484:2;35473:9;35469:18;35460:6;35416:72;:::i;:::-;35498;35566:2;35555:9;35551:18;35542:6;35498:72;:::i;:::-;35617:9;35611:4;35607:20;35602:2;35591:9;35587:18;35580:48;35645:76;35716:4;35707:6;35645:76;:::i;:::-;35637:84;;35088:640;;;;;;;:::o;35734:141::-;35790:5;35821:6;35815:13;35806:22;;35837:32;35863:5;35837:32;:::i;:::-;35734:141;;;;:::o;35881:349::-;35950:6;35999:2;35987:9;35978:7;35974:23;35970:32;35967:119;;;36005:79;;:::i;:::-;35967:119;36125:1;36150:63;36205:7;36196:6;36185:9;36181:22;36150:63;:::i;:::-;36140:73;;36096:127;35881:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"AUCTION_DROP_INTERVAL()":"5cae01d3","AUCTION_DROP_PER_STEP()":"59f369fe","AUCTION_END_PRICE()":"caf8a6d1","AUCTION_START_PRICE()":"7a1c4a56","AUCTION_TIME()":"e592301a","COLLECTION_SIZE()":"d8258d95","approve(address,uint256)":"095ea7b3","auctionMint(uint256)":"4d3554c3","auctionStartTime()":"eb54f9ec","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","getAuctionPrice()":"4bd25c6f","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setAuctionStartTime(uint32)":"0697346f","setBaseURI(string)":"55f804b3","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","withdrawMoney()":"ac446002"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AUCTION_DROP_INTERVAL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_DROP_PER_STEP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_END_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_START_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COLLECTION_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"auctionMint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"auctionStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuctionPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"}],\"name\":\"setAuctionStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawMoney\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"},\"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\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"},\"totalSupply()\":{\"notice\":\"ERC721Enumerable\\u4e2dtotalSupply\\u51fd\\u6570\\u7684\\u5b9e\\u73b0\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/35_DutchAuction/DutchAuction.sol\":\"DutchAuction\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/35_DutchAuction/DutchAuction.sol\":{\"keccak256\":\"0x8ae43867659c75b5e6c933d1721ad180130f687e17e8b0b05653df5d3f061b85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c8ffa593a94b356e7dc0766d7b9246686321e50d5cd2edad961941dcae5534\",\"dweb:/ipfs/QmcErAo1ZTuHCeGxu4rzF1Xq5Nu7S7yzB3evtFyd7yW3WY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","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":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_DROP_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_DROP_PER_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_END_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_START_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COLLECTION_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"stateMutability":"payable","type":"function","name":"auctionMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"auctionStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAuctionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"uint32","name":"timestamp","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"setAuctionStartTime"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setBaseURI"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdrawMoney"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"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."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"},"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":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"},"totalSupply()":{"notice":"ERC721Enumerable中totalSupply函数的实现"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/35_DutchAuction/DutchAuction.sol":"DutchAuction"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/35_DutchAuction/DutchAuction.sol":{"keccak256":"0x8ae43867659c75b5e6c933d1721ad180130f687e17e8b0b05653df5d3f061b85","urls":["bzz-raw://81c8ffa593a94b356e7dc0766d7b9246686321e50d5cd2edad961941dcae5534","dweb:/ipfs/QmcErAo1ZTuHCeGxu4rzF1Xq5Nu7S7yzB3evtFyd7yW3WY"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"AUCTION_DROP_INTERVAL","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_DROP_PER_STEP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_END_PRICE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_START_PRICE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"AUCTION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COLLECTION_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"auctionMint","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"auctionStartTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAuctionPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuctionStartTime","inputs":[{"name":"timestamp","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBaseURI","inputs":[{"name":"baseURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawMoney","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"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":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280601181526020017f5754462044757463682041756374696f6e0000000000000000000000000000008152506040518060400160405280601181526020017f5754462044757463682041756374696f6e000000000000000000000000000000815250335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ed575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100e4919061022b565b60405180910390fd5b6100fc8161012b60201b60201c565b50816001908161010c9190610492565b50806002908161011c9190610492565b50505042600781905550610561565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610215826101ec565b9050919050565b6102258161020b565b82525050565b5f60208201905061023e5f83018461021c565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102bf57607f821691505b6020821081036102d2576102d161027b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f9565b61033e86836102f9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038261037d61037884610356565b61035f565b610356565b9050919050565b5f819050919050565b61039b83610368565b6103af6103a782610389565b848454610305565b825550505050565b5f5f905090565b6103c66103b7565b6103d1818484610392565b505050565b5f5b828110156103f7576103ec5f8284016103be565b6001810190506103d8565b505050565b601f82111561044a578282111561044957610416816102d8565b61041f836102ea565b610428856102ea565b6020861015610435575f90505b808301610444828403826103d6565b505050505b5b505050565b5f82821c905092915050565b5f61046a5f198460080261044f565b1980831691505092915050565b5f610482838361045b565b9150826002028217905092915050565b61049b82610244565b67ffffffffffffffff8111156104b4576104b361024e565b5b6104be82546102a8565b6104c98282856103fc565b5f60209050601f8311600181146104fa575f84156104e8578287015190505b6104f28582610477565b865550610559565b601f198416610508866102d8565b5f5b8281101561052f5784890151825560018201915060208501945060208101905061050a565b8683101561054c5784890151610548601f89168261045b565b8355505b6001600288020188555050505b505050505050565b61320f8061056e5f395ff3fe6080604052600436106101c1575f3560e01c806370a08231116100f6578063b88d4fde11610094578063e592301a11610063578063e592301a146105f5578063e985e9c51461061f578063eb54f9ec1461065b578063f2fde38b14610685576101c1565b8063b88d4fde1461053d578063c87b56dd14610565578063caf8a6d1146105a1578063d8258d95146105cb576101c1565b80638da5cb5b116100d05780638da5cb5b146104ab57806395d89b41146104d5578063a22cb465146104ff578063ac44600214610527576101c1565b806370a082311461042f578063715018a61461046b5780637a1c4a5614610481576101c1565b806342842e0e1161016357806355f804b31161013d57806355f804b31461037757806359f369fe1461039f5780635cae01d3146103c95780636352211e146103f3576101c1565b806342842e0e146103095780634bd25c6f146103315780634d3554c31461035b576101c1565b8063081812fc1161019f578063081812fc14610253578063095ea7b31461028f57806318160ddd146102b757806323b872dd146102e1576101c1565b806301ffc9a7146101c55780630697346f1461020157806306fdde0314610229575b5f5ffd5b3480156101d0575f5ffd5b506101eb60048036038101906101e69190612005565b6106ad565b6040516101f8919061204a565b60405180910390f35b34801561020c575f5ffd5b506102276004803603810190610222919061209c565b6107e6565b005b348015610234575f5ffd5b5061023d6107fe565b60405161024a9190612137565b60405180910390f35b34801561025e575f5ffd5b506102796004803603810190610274919061218a565b61088a565b60405161028691906121f4565b60405180910390f35b34801561029a575f5ffd5b506102b560048036038101906102b09190612237565b610961565b005b3480156102c2575f5ffd5b506102cb610a9f565b6040516102d89190612284565b60405180910390f35b3480156102ec575f5ffd5b506103076004803603810190610302919061229d565b610aab565b005b348015610314575f5ffd5b5061032f600480360381019061032a919061229d565b610b13565b005b34801561033c575f5ffd5b50610345610b32565b6040516103529190612284565b60405180910390f35b6103756004803603810190610370919061218a565b610bea565b005b348015610382575f5ffd5b5061039d6004803603810190610398919061234e565b610d86565b005b3480156103aa575f5ffd5b506103b3610da4565b6040516103c09190612284565b60405180910390f35b3480156103d4575f5ffd5b506103dd610ddc565b6040516103ea9190612284565b60405180910390f35b3480156103fe575f5ffd5b506104196004803603810190610414919061218a565b610de1565b60405161042691906121f4565b60405180910390f35b34801561043a575f5ffd5b5061045560048036038101906104509190612399565b610e88565b6040516104629190612284565b60405180910390f35b348015610476575f5ffd5b5061047f610f3c565b005b34801561048c575f5ffd5b50610495610f4f565b6040516104a29190612284565b60405180910390f35b3480156104b6575f5ffd5b506104bf610f5b565b6040516104cc91906121f4565b60405180910390f35b3480156104e0575f5ffd5b506104e9610f82565b6040516104f69190612137565b60405180910390f35b34801561050a575f5ffd5b50610525600480360381019061052091906123ee565b61100e565b005b348015610532575f5ffd5b5061053b611106565b005b348015610548575f5ffd5b50610563600480360381019061055e9190612554565b6111b9565b005b348015610570575f5ffd5b5061058b6004803603810190610586919061218a565b611223565b6040516105989190612137565b60405180910390f35b3480156105ac575f5ffd5b506105b561131d565b6040516105c29190612284565b60405180910390f35b3480156105d6575f5ffd5b506105df611329565b6040516105ec9190612284565b60405180910390f35b348015610600575f5ffd5b5061060961132f565b6040516106169190612284565b60405180910390f35b34801561062a575f5ffd5b50610645600480360381019061064091906125d4565b611335565b604051610652919061204a565b60405180910390f35b348015610666575f5ffd5b5061066f6113c3565b60405161067c9190612284565b60405180910390f35b348015610690575f5ffd5b506106ab60048036038101906106a69190612399565b6113c9565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077757507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107df57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6107ee61144d565b8063ffffffff1660078190555050565b6001805461080b9061263f565b80601f01602080910402602001604051908101604052809291908181526020018280546108379061263f565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906126b9565b60405180910390fd5b60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a50575060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690612721565b60405180910390fd5b610a9a8184846114d4565b505050565b5f600980549050905090565b5f610ab582610de1565b9050610ac2813384611583565b610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890612789565b60405180910390fd5b610b0d818585856116ae565b50505050565b610b2d83838360405180602001604052805f8152506111b9565b505050565b5f600754421015610b4d57670de0b6b3a76400009050610be7565b61025860075442610b5e91906127d4565b10610b735767016345785d8a00009050610be7565b5f603c60075442610b8491906127d4565b610b8e9190612834565b9050603c610258610b9f9190612834565b67016345785d8a0000670de0b6b3a7640000610bbb91906127d4565b610bc59190612834565b81610bd09190612864565b670de0b6b3a7640000610be391906127d4565b9150505b90565b5f60075490505f8114158015610c005750804210155b610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c36906128ef565b60405180910390fd5b61271082610c4b610a9f565b610c55919061290d565b1115610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d906129d6565b60405180910390fd5b5f82610ca0610b32565b610caa9190612864565b905080341015610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612a3e565b60405180910390fd5b5f5f90505b83811015610d28575f610d05610a9f565b9050610d1133826118ed565b610d1a81611afb565b508080600101915050610cf4565b5080341115610d81573373ffffffffffffffffffffffffffffffffffffffff166108fc8234610d5791906127d4565b90811502906040515f60405180830381858888f19350505050158015610d7f573d5f5f3e3d5ffd5b505b505050565b610d8e61144d565b818160089182610d9f929190612c17565b505050565b603c610258610db39190612834565b67016345785d8a0000670de0b6b3a7640000610dcf91906127d4565b610dd99190612834565b81565b603c81565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a906126b9565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612d2e565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4461144d565b610f4d5f611b24565b565b670de0b6b3a764000081565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60028054610f8f9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbb9061263f565b80156110065780601f10610fdd57610100808354040283529160200191611006565b820191905f5260205f20905b815481529060010190602001808311610fe957829003601f168201915b505050505081565b8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110fa919061204a565b60405180910390a35050565b61110e61144d565b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161113390612d79565b5f6040518083038185875af1925050503d805f811461116d576040519150601f19603f3d011682016040523d82523d5f602084013e611172565b606091505b50509050806111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90612dd7565b60405180910390fd5b50565b5f6111c383610de1565b90506111d0813385611583565b61120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612789565b60405180910390fd5b61121c8186868686611be5565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612e3f565b60405180910390fd5b5f6112cc611c04565b90505f8151116112ea5760405180602001604052805f815250611315565b806112f484611c94565b604051602001611305929190612e97565b6040516020818303038152906040525b915050919050565b67016345785d8a000081565b61271081565b61025881565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60075481565b6113d161144d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611441575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161143891906121f4565b60405180910390fd5b61144a81611b24565b50565b611455611ded565b73ffffffffffffffffffffffffffffffffffffffff16611473610f5b565b73ffffffffffffffffffffffffffffffffffffffff16146114d257611496611ded565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114c991906121f4565b60405180910390fd5b565b8160055f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061161957508273ffffffffffffffffffffffffffffffffffffffff1660055f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806116a5575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612f04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190612f6c565b60405180910390fd5b611795845f836114d4565b600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117e291906127d4565b92505081905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611836919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290612fd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f09061303c565b60405180910390fd5b600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a46919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600981908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bf1858585856116ae565b611bfd84848484611df4565b5050505050565b606060088054611c139061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3f9061263f565b8015611c8a5780601f10611c6157610100808354040283529160200191611c8a565b820191905f5260205f20905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60605f8203611cda576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611de8565b5f8290505f5b5f8214611d09578080611cf29061305a565b915050600a82611d029190612834565b9150611ce0565b5f8167ffffffffffffffff811115611d2457611d23612430565b5b6040519080825280601f01601f191660200182016040528015611d565781602001600182028036833780820191505090505b5090505b5f8514611de157600182611d6e91906127d4565b9150600a85611d7d91906130a1565b6030611d89919061290d565b60f81b818381518110611d9f57611d9e6130d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611dda9190612834565b9450611d5a565b8093505050505b919050565b5f33905090565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611f99578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b8152600401611e529493929190613150565b6020604051808303815f875af1925050508015611e8d57506040513d601f19601f82011682018060405250810190611e8a91906131ae565b60015b611f0e573d805f8114611ebb576040519150601f19603f3d011682016040523d82523d5f602084013e611ec0565b606091505b505f815103611f0657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906121f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f9757836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8e91906121f4565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fe481611fb0565b8114611fee575f5ffd5b50565b5f81359050611fff81611fdb565b92915050565b5f6020828403121561201a57612019611fa8565b5b5f61202784828501611ff1565b91505092915050565b5f8115159050919050565b61204481612030565b82525050565b5f60208201905061205d5f83018461203b565b92915050565b5f63ffffffff82169050919050565b61207b81612063565b8114612085575f5ffd5b50565b5f8135905061209681612072565b92915050565b5f602082840312156120b1576120b0611fa8565b5b5f6120be84828501612088565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612109826120c7565b61211381856120d1565b93506121238185602086016120e1565b61212c816120ef565b840191505092915050565b5f6020820190508181035f83015261214f81846120ff565b905092915050565b5f819050919050565b61216981612157565b8114612173575f5ffd5b50565b5f8135905061218481612160565b92915050565b5f6020828403121561219f5761219e611fa8565b5b5f6121ac84828501612176565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121de826121b5565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b612216816121d4565b8114612220575f5ffd5b50565b5f813590506122318161220d565b92915050565b5f5f6040838503121561224d5761224c611fa8565b5b5f61225a85828601612223565b925050602061226b85828601612176565b9150509250929050565b61227e81612157565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f5f5f606084860312156122b4576122b3611fa8565b5b5f6122c186828701612223565b93505060206122d286828701612223565b92505060406122e386828701612176565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261230e5761230d6122ed565b5b8235905067ffffffffffffffff81111561232b5761232a6122f1565b5b602083019150836001820283011115612347576123466122f5565b5b9250929050565b5f5f6020838503121561236457612363611fa8565b5b5f83013567ffffffffffffffff81111561238157612380611fac565b5b61238d858286016122f9565b92509250509250929050565b5f602082840312156123ae576123ad611fa8565b5b5f6123bb84828501612223565b91505092915050565b6123cd81612030565b81146123d7575f5ffd5b50565b5f813590506123e8816123c4565b92915050565b5f5f6040838503121561240457612403611fa8565b5b5f61241185828601612223565b9250506020612422858286016123da565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612466826120ef565b810181811067ffffffffffffffff8211171561248557612484612430565b5b80604052505050565b5f612497611f9f565b90506124a3828261245d565b919050565b5f67ffffffffffffffff8211156124c2576124c1612430565b5b6124cb826120ef565b9050602081019050919050565b828183375f83830152505050565b5f6124f86124f3846124a8565b61248e565b9050828152602081018484840111156125145761251361242c565b5b61251f8482856124d8565b509392505050565b5f82601f83011261253b5761253a6122ed565b5b813561254b8482602086016124e6565b91505092915050565b5f5f5f5f6080858703121561256c5761256b611fa8565b5b5f61257987828801612223565b945050602061258a87828801612223565b935050604061259b87828801612176565b925050606085013567ffffffffffffffff8111156125bc576125bb611fac565b5b6125c887828801612527565b91505092959194509250565b5f5f604083850312156125ea576125e9611fa8565b5b5f6125f785828601612223565b925050602061260885828601612223565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061265657607f821691505b60208210810361266957612668612612565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6126a36013836120d1565b91506126ae8261266f565b602082019050919050565b5f6020820190508181035f8301526126d081612697565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61270b601e836120d1565b9150612716826126d7565b602082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6127736016836120d1565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127de82612157565b91506127e983612157565b9250828203905081811115612801576128006127a7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61283e82612157565b915061284983612157565b92508261285957612858612807565b5b828204905092915050565b5f61286e82612157565b915061287983612157565b925082820261288781612157565b9150828204841483151761289e5761289d6127a7565b5b5092915050565b7f73616c6520686173206e6f7420737461727465642079657400000000000000005f82015250565b5f6128d96018836120d1565b91506128e4826128a5565b602082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b5f61291782612157565b915061292283612157565b925082820190508082111561293a576129396127a7565b5b92915050565b7f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f5f8201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e60208201527f7420616d6f756e74000000000000000000000000000000000000000000000000604082015250565b5f6129c06048836120d1565b91506129cb82612940565b606082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e65656420746f2073656e64206d6f7265204554482e000000000000000000005f82015250565b5f612a286016836120d1565b9150612a33826129f4565b602082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a87565b612acc8683612a87565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b07612b02612afd84612157565b612ae4565b612157565b9050919050565b5f819050919050565b612b2083612aed565b612b34612b2c82612b0e565b848454612a93565b825550505050565b5f5f905090565b612b4b612b3c565b612b56818484612b17565b505050565b5f5b82811015612b7c57612b715f828401612b43565b600181019050612b5d565b505050565b601f821115612bcf5782821115612bce57612b9b81612a66565b612ba483612a78565b612bad85612a78565b6020861015612bba575f90505b808301612bc982840382612b5b565b505050505b5b505050565b5f82821c905092915050565b5f612bef5f1984600802612bd4565b1980831691505092915050565b5f612c078383612be0565b9150826002028217905092915050565b612c218383612a5c565b67ffffffffffffffff811115612c3a57612c39612430565b5b612c44825461263f565b612c4f828285612b81565b5f601f831160018114612c7c575f8415612c6a578287013590505b612c748582612bfc565b865550612cdb565b601f198416612c8a86612a66565b5f5b82811015612cb157848901358255600182019150602085019450602081019050612c8c565b86831015612cce5784890135612cca601f891682612be0565b8355505b6001600288020188555050505b50505050505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f612d186014836120d1565b9150612d2382612ce4565b602082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b5f81905092915050565b50565b5f612d645f83612d4c565b9150612d6f82612d56565b5f82019050919050565b5f612d8382612d59565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612dc16010836120d1565b9150612dcc82612d8d565b602082019050919050565b5f6020820190508181035f830152612dee81612db5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612e29600f836120d1565b9150612e3482612df5565b602082019050919050565b5f6020820190508181035f830152612e5681612e1d565b9050919050565b5f81905092915050565b5f612e71826120c7565b612e7b8185612e5d565b9350612e8b8185602086016120e1565b80840191505092915050565b5f612ea28285612e67565b9150612eae8284612e67565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f612eee6009836120d1565b9150612ef982612eba565b602082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612f56601c836120d1565b9150612f6182612f22565b602082019050919050565b5f6020820190508181035f830152612f8381612f4a565b9050919050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612fbe6014836120d1565b9150612fc982612f8a565b602082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6130266014836120d1565b915061303182612ff2565b602082019050919050565b5f6020820190508181035f8301526130538161301a565b9050919050565b5f61306482612157565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613096576130956127a7565b5b600182019050919050565b5f6130ab82612157565b91506130b683612157565b9250826130c6576130c5612807565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f613122826130fe565b61312c8185613108565b935061313c8185602086016120e1565b613145816120ef565b840191505092915050565b5f6080820190506131635f8301876121e5565b61317060208301866121e5565b61317d6040830185612275565b818103606083015261318f8184613118565b905095945050505050565b5f815190506131a881611fdb565b92915050565b5f602082840312156131c3576131c2611fa8565b5b5f6131d08482850161319a565b9150509291505056fea2646970667358221220e6c4961231964124990a12bf5aebeeec3778d11abb7c1f9a33114bf6ac9c6b9164736f6c63430008220033","sourceMap":"146:3872:85:-:0;;;1168:134;;;;;;;;;;1005:111:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:10:85;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1078:5:78;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;1280:15:85::2;1261:16;:34;;;;146:3872:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:180::-;746:77;743:1;736:88;843:4;840:1;833:15;867:4;864:1;857:15;884:180;932:77;929:1;922:88;1029:4;1026:1;1019:15;1053:4;1050:1;1043:15;1070:320;1114:6;1151:1;1145:4;1141:12;1131:22;;1198:1;1192:4;1188:12;1219:18;1209:81;;1275:4;1267:6;1263:17;1253:27;;1209:81;1337:2;1329:6;1326:14;1306:18;1303:38;1300:84;;1356:18;;:::i;:::-;1300:84;1121:269;1070:320;;;:::o;1396:141::-;1445:4;1468:3;1460:11;;1491:3;1488:1;1481:14;1525:4;1522:1;1512:18;1504:26;;1396:141;;;:::o;1543:93::-;1580:6;1627:2;1622;1615:5;1611:14;1607:23;1597:33;;1543:93;;;:::o;1642:107::-;1686:8;1736:5;1730:4;1726:16;1705:37;;1642:107;;;;:::o;1755:393::-;1824:6;1874:1;1862:10;1858:18;1897:97;1927:66;1916:9;1897:97;:::i;:::-;2015:39;2045:8;2034:9;2015:39;:::i;:::-;2003:51;;2087:4;2083:9;2076:5;2072:21;2063:30;;2136:4;2126:8;2122:19;2115:5;2112:30;2102:40;;1831:317;;1755:393;;;;;:::o;2154:77::-;2191:7;2220:5;2209:16;;2154:77;;;:::o;2237:60::-;2265:3;2286:5;2279:12;;2237:60;;;:::o;2303:142::-;2353:9;2386:53;2404:34;2413:24;2431:5;2413:24;:::i;:::-;2404:34;:::i;:::-;2386:53;:::i;:::-;2373:66;;2303:142;;;:::o;2451:75::-;2494:3;2515:5;2508:12;;2451:75;;;:::o;2532:269::-;2642:39;2673:7;2642:39;:::i;:::-;2703:91;2752:41;2776:16;2752:41;:::i;:::-;2744:6;2737:4;2731:11;2703:91;:::i;:::-;2697:4;2690:105;2608:193;2532:269;;;:::o;2807:73::-;2852:3;2873:1;2866:8;;2807:73;:::o;2886:189::-;2963:32;;:::i;:::-;3004:65;3062:6;3054;3048:4;3004:65;:::i;:::-;2939:136;2886:189;;:::o;3081:214::-;3166:1;3151:138;3176:9;3173:1;3170:16;3151:138;;;3228:51;3277:1;3273;3262:9;3258:17;3228:51;:::i;:::-;3201:1;3198;3194:9;3189:14;;3151:138;;;3155:14;3081:214;;:::o;3301:746::-;3402:2;3397:3;3394:11;3391:649;;;3431:10;3426:3;3423:19;3420:610;;;3477:38;3509:5;3477:38;:::i;:::-;3552:22;3570:3;3552:22;:::i;:::-;3611:29;3629:10;3611:29;:::i;:::-;3801:2;3789:10;3786:18;3783:79;;;3843:1;3827:17;;3783:79;3912:12;3902:8;3898:27;3942:74;4002:12;3988;3984:31;3971:11;3942:74;:::i;:::-;3443:587;;;;3420:610;3391:649;3301:746;;;:::o;4053:117::-;4107:8;4157:5;4151:4;4147:16;4126:37;;4053:117;;;;:::o;4176:169::-;4220:6;4253:51;4301:1;4297:6;4289:5;4286:1;4282:13;4253:51;:::i;:::-;4249:56;4334:4;4328;4324:15;4314:25;;4227:118;4176:169;;;;:::o;4350:295::-;4426:4;4572:29;4597:3;4591:4;4572:29;:::i;:::-;4564:37;;4634:3;4631:1;4627:11;4621:4;4618:21;4610:29;;4350:295;;;;:::o;4650:1395::-;4767:37;4800:3;4767:37;:::i;:::-;4869:18;4861:6;4858:30;4855:56;;;4891:18;;:::i;:::-;4855:56;4935:38;4967:4;4961:11;4935:38;:::i;:::-;5020:67;5080:6;5072;5066:4;5020:67;:::i;:::-;5114:1;5138:4;5125:17;;5170:2;5162:6;5159:14;5187:1;5182:618;;;;5844:1;5861:6;5858:77;;;5910:9;5905:3;5901:19;5895:26;5886:35;;5858:77;5961:67;6021:6;6014:5;5961:67;:::i;:::-;5955:4;5948:81;5817:222;5152:887;;5182:618;5234:4;5230:9;5222:6;5218:22;5268:37;5300:4;5268:37;:::i;:::-;5327:1;5341:208;5355:7;5352:1;5349:14;5341:208;;;5434:9;5429:3;5425:19;5419:26;5411:6;5404:42;5485:1;5477:6;5473:14;5463:24;;5532:2;5521:9;5517:18;5504:31;;5378:4;5375:1;5371:12;5366:17;;5341:208;;;5577:6;5568:7;5565:19;5562:179;;;5635:9;5630:3;5626:19;5620:26;5678:48;5720:4;5712:6;5708:17;5697:9;5678:48;:::i;:::-;5670:6;5663:64;5585:156;5562:179;5787:1;5783;5775:6;5771:14;5767:22;5761:4;5754:36;5189:611;;;5152:887;;4742:1303;;;4650:1395;;:::o;146:3872:85:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101c1575f3560e01c806370a08231116100f6578063b88d4fde11610094578063e592301a11610063578063e592301a146105f5578063e985e9c51461061f578063eb54f9ec1461065b578063f2fde38b14610685576101c1565b8063b88d4fde1461053d578063c87b56dd14610565578063caf8a6d1146105a1578063d8258d95146105cb576101c1565b80638da5cb5b116100d05780638da5cb5b146104ab57806395d89b41146104d5578063a22cb465146104ff578063ac44600214610527576101c1565b806370a082311461042f578063715018a61461046b5780637a1c4a5614610481576101c1565b806342842e0e1161016357806355f804b31161013d57806355f804b31461037757806359f369fe1461039f5780635cae01d3146103c95780636352211e146103f3576101c1565b806342842e0e146103095780634bd25c6f146103315780634d3554c31461035b576101c1565b8063081812fc1161019f578063081812fc14610253578063095ea7b31461028f57806318160ddd146102b757806323b872dd146102e1576101c1565b806301ffc9a7146101c55780630697346f1461020157806306fdde0314610229575b5f5ffd5b3480156101d0575f5ffd5b506101eb60048036038101906101e69190612005565b6106ad565b6040516101f8919061204a565b60405180910390f35b34801561020c575f5ffd5b506102276004803603810190610222919061209c565b6107e6565b005b348015610234575f5ffd5b5061023d6107fe565b60405161024a9190612137565b60405180910390f35b34801561025e575f5ffd5b506102796004803603810190610274919061218a565b61088a565b60405161028691906121f4565b60405180910390f35b34801561029a575f5ffd5b506102b560048036038101906102b09190612237565b610961565b005b3480156102c2575f5ffd5b506102cb610a9f565b6040516102d89190612284565b60405180910390f35b3480156102ec575f5ffd5b506103076004803603810190610302919061229d565b610aab565b005b348015610314575f5ffd5b5061032f600480360381019061032a919061229d565b610b13565b005b34801561033c575f5ffd5b50610345610b32565b6040516103529190612284565b60405180910390f35b6103756004803603810190610370919061218a565b610bea565b005b348015610382575f5ffd5b5061039d6004803603810190610398919061234e565b610d86565b005b3480156103aa575f5ffd5b506103b3610da4565b6040516103c09190612284565b60405180910390f35b3480156103d4575f5ffd5b506103dd610ddc565b6040516103ea9190612284565b60405180910390f35b3480156103fe575f5ffd5b506104196004803603810190610414919061218a565b610de1565b60405161042691906121f4565b60405180910390f35b34801561043a575f5ffd5b5061045560048036038101906104509190612399565b610e88565b6040516104629190612284565b60405180910390f35b348015610476575f5ffd5b5061047f610f3c565b005b34801561048c575f5ffd5b50610495610f4f565b6040516104a29190612284565b60405180910390f35b3480156104b6575f5ffd5b506104bf610f5b565b6040516104cc91906121f4565b60405180910390f35b3480156104e0575f5ffd5b506104e9610f82565b6040516104f69190612137565b60405180910390f35b34801561050a575f5ffd5b50610525600480360381019061052091906123ee565b61100e565b005b348015610532575f5ffd5b5061053b611106565b005b348015610548575f5ffd5b50610563600480360381019061055e9190612554565b6111b9565b005b348015610570575f5ffd5b5061058b6004803603810190610586919061218a565b611223565b6040516105989190612137565b60405180910390f35b3480156105ac575f5ffd5b506105b561131d565b6040516105c29190612284565b60405180910390f35b3480156105d6575f5ffd5b506105df611329565b6040516105ec9190612284565b60405180910390f35b348015610600575f5ffd5b5061060961132f565b6040516106169190612284565b60405180910390f35b34801561062a575f5ffd5b50610645600480360381019061064091906125d4565b611335565b604051610652919061204a565b60405180910390f35b348015610666575f5ffd5b5061066f6113c3565b60405161067c9190612284565b60405180910390f35b348015610690575f5ffd5b506106ab60048036038101906106a69190612399565b6113c9565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061077757507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107df57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6107ee61144d565b8063ffffffff1660078190555050565b6001805461080b9061263f565b80601f01602080910402602001604051908101604052809291908181526020018280546108379061263f565b80156108825780601f1061085957610100808354040283529160200191610882565b820191905f5260205f20905b81548152906001019060200180831161086557829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610929576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610920906126b9565b60405180910390fd5b60055f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a50575060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690612721565b60405180910390fd5b610a9a8184846114d4565b505050565b5f600980549050905090565b5f610ab582610de1565b9050610ac2813384611583565b610b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af890612789565b60405180910390fd5b610b0d818585856116ae565b50505050565b610b2d83838360405180602001604052805f8152506111b9565b505050565b5f600754421015610b4d57670de0b6b3a76400009050610be7565b61025860075442610b5e91906127d4565b10610b735767016345785d8a00009050610be7565b5f603c60075442610b8491906127d4565b610b8e9190612834565b9050603c610258610b9f9190612834565b67016345785d8a0000670de0b6b3a7640000610bbb91906127d4565b610bc59190612834565b81610bd09190612864565b670de0b6b3a7640000610be391906127d4565b9150505b90565b5f60075490505f8114158015610c005750804210155b610c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c36906128ef565b60405180910390fd5b61271082610c4b610a9f565b610c55919061290d565b1115610c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8d906129d6565b60405180910390fd5b5f82610ca0610b32565b610caa9190612864565b905080341015610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612a3e565b60405180910390fd5b5f5f90505b83811015610d28575f610d05610a9f565b9050610d1133826118ed565b610d1a81611afb565b508080600101915050610cf4565b5080341115610d81573373ffffffffffffffffffffffffffffffffffffffff166108fc8234610d5791906127d4565b90811502906040515f60405180830381858888f19350505050158015610d7f573d5f5f3e3d5ffd5b505b505050565b610d8e61144d565b818160089182610d9f929190612c17565b505050565b603c610258610db39190612834565b67016345785d8a0000670de0b6b3a7640000610dcf91906127d4565b610dd99190612834565b81565b603c81565b5f60035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a906126b9565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612d2e565b60405180910390fd5b60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4461144d565b610f4d5f611b24565b565b670de0b6b3a764000081565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60028054610f8f9061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fbb9061263f565b80156110065780601f10610fdd57610100808354040283529160200191611006565b820191905f5260205f20905b815481529060010190602001808311610fe957829003601f168201915b505050505081565b8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110fa919061204a565b60405180910390a35050565b61110e61144d565b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161113390612d79565b5f6040518083038185875af1925050503d805f811461116d576040519150601f19603f3d011682016040523d82523d5f602084013e611172565b606091505b50509050806111b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ad90612dd7565b60405180910390fd5b50565b5f6111c383610de1565b90506111d0813385611583565b61120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612789565b60405180910390fd5b61121c8186868686611be5565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660035f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90612e3f565b60405180910390fd5b5f6112cc611c04565b90505f8151116112ea5760405180602001604052805f815250611315565b806112f484611c94565b604051602001611305929190612e97565b6040516020818303038152906040525b915050919050565b67016345785d8a000081565b61271081565b61025881565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60075481565b6113d161144d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611441575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161143891906121f4565b60405180910390fd5b61144a81611b24565b50565b611455611ded565b73ffffffffffffffffffffffffffffffffffffffff16611473610f5b565b73ffffffffffffffffffffffffffffffffffffffff16146114d257611496611ded565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016114c991906121f4565b60405180910390fd5b565b8160055f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061161957508273ffffffffffffffffffffffffffffffffffffffff1660055f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b806116a5575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461171c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171390612f04565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190612f6c565b60405180910390fd5b611795845f836114d4565b600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117e291906127d4565b92505081905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611836919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290612fd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f09061303c565b60405180910390fd5b600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a46919061290d565b925050819055508160035f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600981908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bf1858585856116ae565b611bfd84848484611df4565b5050505050565b606060088054611c139061263f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3f9061263f565b8015611c8a5780601f10611c6157610100808354040283529160200191611c8a565b820191905f5260205f20905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60605f8203611cda576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611de8565b5f8290505f5b5f8214611d09578080611cf29061305a565b915050600a82611d029190612834565b9150611ce0565b5f8167ffffffffffffffff811115611d2457611d23612430565b5b6040519080825280601f01601f191660200182016040528015611d565781602001600182028036833780820191505090505b5090505b5f8514611de157600182611d6e91906127d4565b9150600a85611d7d91906130a1565b6030611d89919061290d565b60f81b818381518110611d9f57611d9e6130d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611dda9190612834565b9450611d5a565b8093505050505b919050565b5f33905090565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611f99578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b8152600401611e529493929190613150565b6020604051808303815f875af1925050508015611e8d57506040513d601f19601f82011682018060405250810190611e8a91906131ae565b60015b611f0e573d805f8114611ebb576040519150601f19603f3d011682016040523d82523d5f602084013e611ec0565b606091505b505f815103611f0657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611efd91906121f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f9757836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f8e91906121f4565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fe481611fb0565b8114611fee575f5ffd5b50565b5f81359050611fff81611fdb565b92915050565b5f6020828403121561201a57612019611fa8565b5b5f61202784828501611ff1565b91505092915050565b5f8115159050919050565b61204481612030565b82525050565b5f60208201905061205d5f83018461203b565b92915050565b5f63ffffffff82169050919050565b61207b81612063565b8114612085575f5ffd5b50565b5f8135905061209681612072565b92915050565b5f602082840312156120b1576120b0611fa8565b5b5f6120be84828501612088565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612109826120c7565b61211381856120d1565b93506121238185602086016120e1565b61212c816120ef565b840191505092915050565b5f6020820190508181035f83015261214f81846120ff565b905092915050565b5f819050919050565b61216981612157565b8114612173575f5ffd5b50565b5f8135905061218481612160565b92915050565b5f6020828403121561219f5761219e611fa8565b5b5f6121ac84828501612176565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121de826121b5565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b612216816121d4565b8114612220575f5ffd5b50565b5f813590506122318161220d565b92915050565b5f5f6040838503121561224d5761224c611fa8565b5b5f61225a85828601612223565b925050602061226b85828601612176565b9150509250929050565b61227e81612157565b82525050565b5f6020820190506122975f830184612275565b92915050565b5f5f5f606084860312156122b4576122b3611fa8565b5b5f6122c186828701612223565b93505060206122d286828701612223565b92505060406122e386828701612176565b9150509250925092565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261230e5761230d6122ed565b5b8235905067ffffffffffffffff81111561232b5761232a6122f1565b5b602083019150836001820283011115612347576123466122f5565b5b9250929050565b5f5f6020838503121561236457612363611fa8565b5b5f83013567ffffffffffffffff81111561238157612380611fac565b5b61238d858286016122f9565b92509250509250929050565b5f602082840312156123ae576123ad611fa8565b5b5f6123bb84828501612223565b91505092915050565b6123cd81612030565b81146123d7575f5ffd5b50565b5f813590506123e8816123c4565b92915050565b5f5f6040838503121561240457612403611fa8565b5b5f61241185828601612223565b9250506020612422858286016123da565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612466826120ef565b810181811067ffffffffffffffff8211171561248557612484612430565b5b80604052505050565b5f612497611f9f565b90506124a3828261245d565b919050565b5f67ffffffffffffffff8211156124c2576124c1612430565b5b6124cb826120ef565b9050602081019050919050565b828183375f83830152505050565b5f6124f86124f3846124a8565b61248e565b9050828152602081018484840111156125145761251361242c565b5b61251f8482856124d8565b509392505050565b5f82601f83011261253b5761253a6122ed565b5b813561254b8482602086016124e6565b91505092915050565b5f5f5f5f6080858703121561256c5761256b611fa8565b5b5f61257987828801612223565b945050602061258a87828801612223565b935050604061259b87828801612176565b925050606085013567ffffffffffffffff8111156125bc576125bb611fac565b5b6125c887828801612527565b91505092959194509250565b5f5f604083850312156125ea576125e9611fa8565b5b5f6125f785828601612223565b925050602061260885828601612223565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061265657607f821691505b60208210810361266957612668612612565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6126a36013836120d1565b91506126ae8261266f565b602082019050919050565b5f6020820190508181035f8301526126d081612697565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61270b601e836120d1565b9150612716826126d7565b602082019050919050565b5f6020820190508181035f830152612738816126ff565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6127736016836120d1565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127de82612157565b91506127e983612157565b9250828203905081811115612801576128006127a7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61283e82612157565b915061284983612157565b92508261285957612858612807565b5b828204905092915050565b5f61286e82612157565b915061287983612157565b925082820261288781612157565b9150828204841483151761289e5761289d6127a7565b5b5092915050565b7f73616c6520686173206e6f7420737461727465642079657400000000000000005f82015250565b5f6128d96018836120d1565b91506128e4826128a5565b602082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b5f61291782612157565b915061292283612157565b925082820190508082111561293a576129396127a7565b5b92915050565b7f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f5f8201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e60208201527f7420616d6f756e74000000000000000000000000000000000000000000000000604082015250565b5f6129c06048836120d1565b91506129cb82612940565b606082019050919050565b5f6020820190508181035f8301526129ed816129b4565b9050919050565b7f4e65656420746f2073656e64206d6f7265204554482e000000000000000000005f82015250565b5f612a286016836120d1565b9150612a33826129f4565b602082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a87565b612acc8683612a87565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612b07612b02612afd84612157565b612ae4565b612157565b9050919050565b5f819050919050565b612b2083612aed565b612b34612b2c82612b0e565b848454612a93565b825550505050565b5f5f905090565b612b4b612b3c565b612b56818484612b17565b505050565b5f5b82811015612b7c57612b715f828401612b43565b600181019050612b5d565b505050565b601f821115612bcf5782821115612bce57612b9b81612a66565b612ba483612a78565b612bad85612a78565b6020861015612bba575f90505b808301612bc982840382612b5b565b505050505b5b505050565b5f82821c905092915050565b5f612bef5f1984600802612bd4565b1980831691505092915050565b5f612c078383612be0565b9150826002028217905092915050565b612c218383612a5c565b67ffffffffffffffff811115612c3a57612c39612430565b5b612c44825461263f565b612c4f828285612b81565b5f601f831160018114612c7c575f8415612c6a578287013590505b612c748582612bfc565b865550612cdb565b601f198416612c8a86612a66565b5f5b82811015612cb157848901358255600182019150602085019450602081019050612c8c565b86831015612cce5784890135612cca601f891682612be0565b8355505b6001600288020188555050505b50505050505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f612d186014836120d1565b9150612d2382612ce4565b602082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b5f81905092915050565b50565b5f612d645f83612d4c565b9150612d6f82612d56565b5f82019050919050565b5f612d8382612d59565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612dc16010836120d1565b9150612dcc82612d8d565b602082019050919050565b5f6020820190508181035f830152612dee81612db5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612e29600f836120d1565b9150612e3482612df5565b602082019050919050565b5f6020820190508181035f830152612e5681612e1d565b9050919050565b5f81905092915050565b5f612e71826120c7565b612e7b8185612e5d565b9350612e8b8185602086016120e1565b80840191505092915050565b5f612ea28285612e67565b9150612eae8284612e67565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f612eee6009836120d1565b9150612ef982612eba565b602082019050919050565b5f6020820190508181035f830152612f1b81612ee2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612f56601c836120d1565b9150612f6182612f22565b602082019050919050565b5f6020820190508181035f830152612f8381612f4a565b9050919050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612fbe6014836120d1565b9150612fc982612f8a565b602082019050919050565b5f6020820190508181035f830152612feb81612fb2565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6130266014836120d1565b915061303182612ff2565b602082019050919050565b5f6020820190508181035f8301526130538161301a565b9050919050565b5f61306482612157565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613096576130956127a7565b5b600182019050919050565b5f6130ab82612157565b91506130b683612157565b9250826130c6576130c5612807565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f613122826130fe565b61312c8185613108565b935061313c8185602086016120e1565b613145816120ef565b840191505092915050565b5f6080820190506131635f8301876121e5565b61317060208301866121e5565b61317d6040830185612275565b818103606083015261318f8184613118565b905095945050505050565b5f815190506131a881611fdb565b92915050565b5f602082840312156131c3576131c2611fa8565b5b5f6131d08482850161319a565b9150509291505056fea2646970667358221220e6c4961231964124990a12bf5aebeeec3778d11abb7c1f9a33114bf6ac9c6b9164736f6c63430008220033","sourceMap":"146:3872:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3412:111:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;328:27:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1377:102:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4874:329:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2878:479:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1701:1139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3700:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;630:146;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;524:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;;;;;;;;;;;:::i;:::-;;259:53:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:85:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3841:175:85;;;;;;;;;;;;;:::i;:::-;;6025:370:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;331:53:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;193:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;418:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;815:31:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1166:317:78;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;3412:111:85:-;1531:13:19;:11;:13::i;:::-;3507:9:85::1;3488:28;;:16;:28;;;;3412:111:::0;:::o;328:27:78:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;1377:102:85:-;1429:7;1455:10;:17;;;;1448:24;;1377:102;:::o;4874:329:78:-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;2878:479:85:-;2950:7;2995:16;;2977:15;:34;2973:378;;;305:7;3023:26;;;;2973:378;457:10;3087:16;;3069:15;:34;;;;:::i;:::-;:50;3065:286;;375:9;3131:24;;;;3065:286;3182:13;572:9;3217:16;;3199:15;:34;;;;:::i;:::-;3198:72;;;;:::i;:::-;3182:88;;572:9;457:10;739:36;;;;:::i;:::-;375:9;305:7;687:39;;;;:::i;:::-;686:90;;;;:::i;:::-;3310:5;:29;;;;:::i;:::-;305:7;3287:53;;;;:::i;:::-;3280:60;;;2878:479;;:::o;1701:1139::-;1766:22;1799:16;;1766:50;;1900:1;1882:14;:19;;:56;;;;;1924:14;1905:15;:33;;1882:56;1865:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;235:5;2082:8;2066:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:43;;2049:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;2245:17;2285:8;2265:17;:15;:17::i;:::-;:28;;;;:::i;:::-;2245:48;;2344:9;2331;:22;;2323:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2460:9;2472:1;2460:13;;2456:194;2479:8;2475:1;:12;2456:194;;;2508:17;2528:13;:11;:13::i;:::-;2508:33;;2555:28;2561:10;2573:9;2555:5;:28::i;:::-;2597:42;2629:9;2597:31;:42::i;:::-;2494:156;2489:3;;;;;;;2456:194;;;;2702:9;2690;:21;2686:148;;;2735:10;2727:28;;:51;2768:9;2756;:21;;;;:::i;:::-;2727:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2686:148;1756:1084;;1701:1139;:::o;3700:104::-;1531:13:19;:11;:13::i;:::-;3790:7:85::1;;3774:13;:23;;;;;;;:::i;:::-;;3700:104:::0;;:::o;630:146::-;572:9;457:10;739:36;;;;:::i;:::-;375:9;305:7;687:39;;;;:::i;:::-;686:90;;;;:::i;:::-;630:146;:::o;524:57::-;572:9;524:57;:::o;1833:178:78:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;259:53:85:-;305:7;259:53;:::o;1638:85:19:-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;380:29:78:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;3841:175:85:-;1531:13:19;:11;:13::i;:::-;3896:12:85::1;3914:10;:15;;3937:21;3914:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3895:68;;;3981:7;3973:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;3885:131;3841:175::o:0;6025:370:78:-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;331:53:85:-;375:9;331:53;:::o;193:47::-;235:5;193:47;:::o;418:49::-;457:10;418:49;:::o;2160:192:78:-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;815:31:85:-;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;3116:186:78:-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;1564:107:85:-;1640:10;1656:7;1640:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1564:107;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;5652:262:78:-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;3544:112:85:-;3604:13;3636;3629:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3544:112;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:93::-;1554:7;1594:10;1587:5;1583:22;1572:33;;1518:93;;;:::o;1617:120::-;1689:23;1706:5;1689:23;:::i;:::-;1682:5;1679:34;1669:62;;1727:1;1724;1717:12;1669:62;1617:120;:::o;1743:137::-;1788:5;1826:6;1813:20;1804:29;;1842:32;1868:5;1842:32;:::i;:::-;1743:137;;;;:::o;1886:327::-;1944:6;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:52;2188:7;2179:6;2168:9;2164:22;2144:52;:::i;:::-;2134:62;;2090:116;1886:327;;;;:::o;2219:99::-;2271:6;2305:5;2299:12;2289:22;;2219:99;;;:::o;2324:169::-;2408:11;2442:6;2437:3;2430:19;2482:4;2477:3;2473:14;2458:29;;2324:169;;;;:::o;2499:139::-;2588:6;2583:3;2578;2572:23;2629:1;2620:6;2615:3;2611:16;2604:27;2499:139;;;:::o;2644:102::-;2685:6;2736:2;2732:7;2727:2;2720:5;2716:14;2712:28;2702:38;;2644:102;;;:::o;2752:377::-;2840:3;2868:39;2901:5;2868:39;:::i;:::-;2923:71;2987:6;2982:3;2923:71;:::i;:::-;2916:78;;3003:65;3061:6;3056:3;3049:4;3042:5;3038:16;3003:65;:::i;:::-;3093:29;3115:6;3093:29;:::i;:::-;3088:3;3084:39;3077:46;;2844:285;2752:377;;;;:::o;3135:313::-;3248:4;3286:2;3275:9;3271:18;3263:26;;3335:9;3329:4;3325:20;3321:1;3310:9;3306:17;3299:47;3363:78;3436:4;3427:6;3363:78;:::i;:::-;3355:86;;3135:313;;;;:::o;3454:77::-;3491:7;3520:5;3509:16;;3454:77;;;:::o;3537:122::-;3610:24;3628:5;3610:24;:::i;:::-;3603:5;3600:35;3590:63;;3649:1;3646;3639:12;3590:63;3537:122;:::o;3665:139::-;3711:5;3749:6;3736:20;3727:29;;3765:33;3792:5;3765:33;:::i;:::-;3665:139;;;;:::o;3810:329::-;3869:6;3918:2;3906:9;3897:7;3893:23;3889:32;3886:119;;;3924:79;;:::i;:::-;3886:119;4044:1;4069:53;4114:7;4105:6;4094:9;4090:22;4069:53;:::i;:::-;4059:63;;4015:117;3810:329;;;;:::o;4145:126::-;4182:7;4222:42;4215:5;4211:54;4200:65;;4145:126;;;:::o;4277:96::-;4314:7;4343:24;4361:5;4343:24;:::i;:::-;4332:35;;4277:96;;;:::o;4379:118::-;4466:24;4484:5;4466:24;:::i;:::-;4461:3;4454:37;4379:118;;:::o;4503:222::-;4596:4;4634:2;4623:9;4619:18;4611:26;;4647:71;4715:1;4704:9;4700:17;4691:6;4647:71;:::i;:::-;4503:222;;;;:::o;4731:122::-;4804:24;4822:5;4804:24;:::i;:::-;4797:5;4794:35;4784:63;;4843:1;4840;4833:12;4784:63;4731:122;:::o;4859:139::-;4905:5;4943:6;4930:20;4921:29;;4959:33;4986:5;4959:33;:::i;:::-;4859:139;;;;:::o;5004:474::-;5072:6;5080;5129:2;5117:9;5108:7;5104:23;5100:32;5097:119;;;5135:79;;:::i;:::-;5097:119;5255:1;5280:53;5325:7;5316:6;5305:9;5301:22;5280:53;:::i;:::-;5270:63;;5226:117;5382:2;5408:53;5453:7;5444:6;5433:9;5429:22;5408:53;:::i;:::-;5398:63;;5353:118;5004:474;;;;;:::o;5484:118::-;5571:24;5589:5;5571:24;:::i;:::-;5566:3;5559:37;5484:118;;:::o;5608:222::-;5701:4;5739:2;5728:9;5724:18;5716:26;;5752:71;5820:1;5809:9;5805:17;5796:6;5752:71;:::i;:::-;5608:222;;;;:::o;5836:619::-;5913:6;5921;5929;5978:2;5966:9;5957:7;5953:23;5949:32;5946:119;;;5984:79;;:::i;:::-;5946:119;6104:1;6129:53;6174:7;6165:6;6154:9;6150:22;6129:53;:::i;:::-;6119:63;;6075:117;6231:2;6257:53;6302:7;6293:6;6282:9;6278:22;6257:53;:::i;:::-;6247:63;;6202:118;6359:2;6385:53;6430:7;6421:6;6410:9;6406:22;6385:53;:::i;:::-;6375:63;;6330:118;5836:619;;;;;:::o;6461:117::-;6570:1;6567;6560:12;6584:117;6693:1;6690;6683:12;6707:117;6816:1;6813;6806:12;6844:553;6902:8;6912:6;6962:3;6955:4;6947:6;6943:17;6939:27;6929:122;;6970:79;;:::i;:::-;6929:122;7083:6;7070:20;7060:30;;7113:18;7105:6;7102:30;7099:117;;;7135:79;;:::i;:::-;7099:117;7249:4;7241:6;7237:17;7225:29;;7303:3;7295:4;7287:6;7283:17;7273:8;7269:32;7266:41;7263:128;;;7310:79;;:::i;:::-;7263:128;6844:553;;;;;:::o;7403:529::-;7474:6;7482;7531:2;7519:9;7510:7;7506:23;7502:32;7499:119;;;7537:79;;:::i;:::-;7499:119;7685:1;7674:9;7670:17;7657:31;7715:18;7707:6;7704:30;7701:117;;;7737:79;;:::i;:::-;7701:117;7850:65;7907:7;7898:6;7887:9;7883:22;7850:65;:::i;:::-;7832:83;;;;7628:297;7403:529;;;;;:::o;7938:329::-;7997:6;8046:2;8034:9;8025:7;8021:23;8017:32;8014:119;;;8052:79;;:::i;:::-;8014:119;8172:1;8197:53;8242:7;8233:6;8222:9;8218:22;8197:53;:::i;:::-;8187:63;;8143:117;7938:329;;;;:::o;8273:116::-;8343:21;8358:5;8343:21;:::i;:::-;8336:5;8333:32;8323:60;;8379:1;8376;8369:12;8323:60;8273:116;:::o;8395:133::-;8438:5;8476:6;8463:20;8454:29;;8492:30;8516:5;8492:30;:::i;:::-;8395:133;;;;:::o;8534:468::-;8599:6;8607;8656:2;8644:9;8635:7;8631:23;8627:32;8624:119;;;8662:79;;:::i;:::-;8624:119;8782:1;8807:53;8852:7;8843:6;8832:9;8828:22;8807:53;:::i;:::-;8797:63;;8753:117;8909:2;8935:50;8977:7;8968:6;8957:9;8953:22;8935:50;:::i;:::-;8925:60;;8880:115;8534:468;;;;;:::o;9008:117::-;9117:1;9114;9107:12;9131:180;9179:77;9176:1;9169:88;9276:4;9273:1;9266:15;9300:4;9297:1;9290:15;9317:281;9400:27;9422:4;9400:27;:::i;:::-;9392:6;9388:40;9530:6;9518:10;9515:22;9494:18;9482:10;9479:34;9476:62;9473:88;;;9541:18;;:::i;:::-;9473:88;9581:10;9577:2;9570:22;9360:238;9317:281;;:::o;9604:129::-;9638:6;9665:20;;:::i;:::-;9655:30;;9694:33;9722:4;9714:6;9694:33;:::i;:::-;9604:129;;;:::o;9739:307::-;9800:4;9890:18;9882:6;9879:30;9876:56;;;9912:18;;:::i;:::-;9876:56;9950:29;9972:6;9950:29;:::i;:::-;9942:37;;10034:4;10028;10024:15;10016:23;;9739:307;;;:::o;10052:148::-;10150:6;10145:3;10140;10127:30;10191:1;10182:6;10177:3;10173:16;10166:27;10052:148;;;:::o;10206:423::-;10283:5;10308:65;10324:48;10365:6;10324:48;:::i;:::-;10308:65;:::i;:::-;10299:74;;10396:6;10389:5;10382:21;10434:4;10427:5;10423:16;10472:3;10463:6;10458:3;10454:16;10451:25;10448:112;;;10479:79;;:::i;:::-;10448:112;10569:54;10616:6;10611:3;10606;10569:54;:::i;:::-;10289:340;10206:423;;;;;:::o;10648:338::-;10703:5;10752:3;10745:4;10737:6;10733:17;10729:27;10719:122;;10760:79;;:::i;:::-;10719:122;10877:6;10864:20;10902:78;10976:3;10968:6;10961:4;10953:6;10949:17;10902:78;:::i;:::-;10893:87;;10709:277;10648:338;;;;:::o;10992:943::-;11087:6;11095;11103;11111;11160:3;11148:9;11139:7;11135:23;11131:33;11128:120;;;11167:79;;:::i;:::-;11128:120;11287:1;11312:53;11357:7;11348:6;11337:9;11333:22;11312:53;:::i;:::-;11302:63;;11258:117;11414:2;11440:53;11485:7;11476:6;11465:9;11461:22;11440:53;:::i;:::-;11430:63;;11385:118;11542:2;11568:53;11613:7;11604:6;11593:9;11589:22;11568:53;:::i;:::-;11558:63;;11513:118;11698:2;11687:9;11683:18;11670:32;11729:18;11721:6;11718:30;11715:117;;;11751:79;;:::i;:::-;11715:117;11856:62;11910:7;11901:6;11890:9;11886:22;11856:62;:::i;:::-;11846:72;;11641:287;10992:943;;;;;;;:::o;11941:474::-;12009:6;12017;12066:2;12054:9;12045:7;12041:23;12037:32;12034:119;;;12072:79;;:::i;:::-;12034:119;12192:1;12217:53;12262:7;12253:6;12242:9;12238:22;12217:53;:::i;:::-;12207:63;;12163:117;12319:2;12345:53;12390:7;12381:6;12370:9;12366:22;12345:53;:::i;:::-;12335:63;;12290:118;11941:474;;;;;:::o;12421:180::-;12469:77;12466:1;12459:88;12566:4;12563:1;12556:15;12590:4;12587:1;12580:15;12607:320;12651:6;12688:1;12682:4;12678:12;12668:22;;12735:1;12729:4;12725:12;12756:18;12746:81;;12812:4;12804:6;12800:17;12790:27;;12746:81;12874:2;12866:6;12863:14;12843:18;12840:38;12837:84;;12893:18;;:::i;:::-;12837:84;12658:269;12607:320;;;:::o;12933:169::-;13073:21;13069:1;13061:6;13057:14;13050:45;12933:169;:::o;13108:366::-;13250:3;13271:67;13335:2;13330:3;13271:67;:::i;:::-;13264:74;;13347:93;13436:3;13347:93;:::i;:::-;13465:2;13460:3;13456:12;13449:19;;13108:366;;;:::o;13480:419::-;13646:4;13684:2;13673:9;13669:18;13661:26;;13733:9;13727:4;13723:20;13719:1;13708:9;13704:17;13697:47;13761:131;13887:4;13761:131;:::i;:::-;13753:139;;13480:419;;;:::o;13905:180::-;14045:32;14041:1;14033:6;14029:14;14022:56;13905:180;:::o;14091:366::-;14233:3;14254:67;14318:2;14313:3;14254:67;:::i;:::-;14247:74;;14330:93;14419:3;14330:93;:::i;:::-;14448:2;14443:3;14439:12;14432:19;;14091:366;;;:::o;14463:419::-;14629:4;14667:2;14656:9;14652:18;14644:26;;14716:9;14710:4;14706:20;14702:1;14691:9;14687:17;14680:47;14744:131;14870:4;14744:131;:::i;:::-;14736:139;;14463:419;;;:::o;14888:172::-;15028:24;15024:1;15016:6;15012:14;15005:48;14888:172;:::o;15066:366::-;15208:3;15229:67;15293:2;15288:3;15229:67;:::i;:::-;15222:74;;15305:93;15394:3;15305:93;:::i;:::-;15423:2;15418:3;15414:12;15407:19;;15066:366;;;:::o;15438:419::-;15604:4;15642:2;15631:9;15627:18;15619:26;;15691:9;15685:4;15681:20;15677:1;15666:9;15662:17;15655:47;15719:131;15845:4;15719:131;:::i;:::-;15711:139;;15438:419;;;:::o;15863:180::-;15911:77;15908:1;15901:88;16008:4;16005:1;15998:15;16032:4;16029:1;16022:15;16049:194;16089:4;16109:20;16127:1;16109:20;:::i;:::-;16104:25;;16143:20;16161:1;16143:20;:::i;:::-;16138:25;;16187:1;16184;16180:9;16172:17;;16211:1;16205:4;16202:11;16199:37;;;16216:18;;:::i;:::-;16199:37;16049:194;;;;:::o;16249:180::-;16297:77;16294:1;16287:88;16394:4;16391:1;16384:15;16418:4;16415:1;16408:15;16435:185;16475:1;16492:20;16510:1;16492:20;:::i;:::-;16487:25;;16526:20;16544:1;16526:20;:::i;:::-;16521:25;;16565:1;16555:35;;16570:18;;:::i;:::-;16555:35;16612:1;16609;16605:9;16600:14;;16435:185;;;;:::o;16626:410::-;16666:7;16689:20;16707:1;16689:20;:::i;:::-;16684:25;;16723:20;16741:1;16723:20;:::i;:::-;16718:25;;16778:1;16775;16771:9;16800:30;16818:11;16800:30;:::i;:::-;16789:41;;16979:1;16970:7;16966:15;16963:1;16960:22;16940:1;16933:9;16913:83;16890:139;;17009:18;;:::i;:::-;16890:139;16674:362;16626:410;;;;:::o;17042:174::-;17182:26;17178:1;17170:6;17166:14;17159:50;17042:174;:::o;17222:366::-;17364:3;17385:67;17449:2;17444:3;17385:67;:::i;:::-;17378:74;;17461:93;17550:3;17461:93;:::i;:::-;17579:2;17574:3;17570:12;17563:19;;17222:366;;;:::o;17594:419::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17847:9;17841:4;17837:20;17833:1;17822:9;17818:17;17811:47;17875:131;18001:4;17875:131;:::i;:::-;17867:139;;17594:419;;;:::o;18019:191::-;18059:3;18078:20;18096:1;18078:20;:::i;:::-;18073:25;;18112:20;18130:1;18112:20;:::i;:::-;18107:25;;18155:1;18152;18148:9;18141:16;;18176:3;18173:1;18170:10;18167:36;;;18183:18;;:::i;:::-;18167:36;18019:191;;;;:::o;18216:296::-;18356:34;18352:1;18344:6;18340:14;18333:58;18425:34;18420:2;18412:6;18408:15;18401:59;18494:10;18489:2;18481:6;18477:15;18470:35;18216:296;:::o;18518:366::-;18660:3;18681:67;18745:2;18740:3;18681:67;:::i;:::-;18674:74;;18757:93;18846:3;18757:93;:::i;:::-;18875:2;18870:3;18866:12;18859:19;;18518:366;;;:::o;18890:419::-;19056:4;19094:2;19083:9;19079:18;19071:26;;19143:9;19137:4;19133:20;19129:1;19118:9;19114:17;19107:47;19171:131;19297:4;19171:131;:::i;:::-;19163:139;;18890:419;;;:::o;19315:172::-;19455:24;19451:1;19443:6;19439:14;19432:48;19315:172;:::o;19493:366::-;19635:3;19656:67;19720:2;19715:3;19656:67;:::i;:::-;19649:74;;19732:93;19821:3;19732:93;:::i;:::-;19850:2;19845:3;19841:12;19834:19;;19493:366;;;:::o;19865:419::-;20031:4;20069:2;20058:9;20054:18;20046:26;;20118:9;20112:4;20108:20;20104:1;20093:9;20089:17;20082:47;20146:131;20272:4;20146:131;:::i;:::-;20138:139;;19865:419;;;:::o;20290:97::-;20349:6;20377:3;20367:13;;20290:97;;;;:::o;20393:141::-;20442:4;20465:3;20457:11;;20488:3;20485:1;20478:14;20522:4;20519:1;20509:18;20501:26;;20393:141;;;:::o;20540:93::-;20577:6;20624:2;20619;20612:5;20608:14;20604:23;20594:33;;20540:93;;;:::o;20639:107::-;20683:8;20733:5;20727:4;20723:16;20702:37;;20639:107;;;;:::o;20752:393::-;20821:6;20871:1;20859:10;20855:18;20894:97;20924:66;20913:9;20894:97;:::i;:::-;21012:39;21042:8;21031:9;21012:39;:::i;:::-;21000:51;;21084:4;21080:9;21073:5;21069:21;21060:30;;21133:4;21123:8;21119:19;21112:5;21109:30;21099:40;;20828:317;;20752:393;;;;;:::o;21151:60::-;21179:3;21200:5;21193:12;;21151:60;;;:::o;21217:142::-;21267:9;21300:53;21318:34;21327:24;21345:5;21327:24;:::i;:::-;21318:34;:::i;:::-;21300:53;:::i;:::-;21287:66;;21217:142;;;:::o;21365:75::-;21408:3;21429:5;21422:12;;21365:75;;;:::o;21446:269::-;21556:39;21587:7;21556:39;:::i;:::-;21617:91;21666:41;21690:16;21666:41;:::i;:::-;21658:6;21651:4;21645:11;21617:91;:::i;:::-;21611:4;21604:105;21522:193;21446:269;;;:::o;21721:73::-;21766:3;21787:1;21780:8;;21721:73;:::o;21800:189::-;21877:32;;:::i;:::-;21918:65;21976:6;21968;21962:4;21918:65;:::i;:::-;21853:136;21800:189;;:::o;21995:214::-;22080:1;22065:138;22090:9;22087:1;22084:16;22065:138;;;22142:51;22191:1;22187;22176:9;22172:17;22142:51;:::i;:::-;22115:1;22112;22108:9;22103:14;;22065:138;;;22069:14;21995:214;;:::o;22215:746::-;22316:2;22311:3;22308:11;22305:649;;;22345:10;22340:3;22337:19;22334:610;;;22391:38;22423:5;22391:38;:::i;:::-;22466:22;22484:3;22466:22;:::i;:::-;22525:29;22543:10;22525:29;:::i;:::-;22715:2;22703:10;22700:18;22697:79;;;22757:1;22741:17;;22697:79;22826:12;22816:8;22812:27;22856:74;22916:12;22902;22898:31;22885:11;22856:74;:::i;:::-;22357:587;;;;22334:610;22305:649;22215:746;;;:::o;22967:117::-;23021:8;23071:5;23065:4;23061:16;23040:37;;22967:117;;;;:::o;23090:169::-;23134:6;23167:51;23215:1;23211:6;23203:5;23200:1;23196:13;23167:51;:::i;:::-;23163:56;23248:4;23242;23238:15;23228:25;;23141:118;23090:169;;;;:::o;23264:295::-;23340:4;23486:29;23511:3;23505:4;23486:29;:::i;:::-;23478:37;;23548:3;23545:1;23541:11;23535:4;23532:21;23524:29;;23264:295;;;;:::o;23564:1403::-;23688:44;23728:3;23723;23688:44;:::i;:::-;23797:18;23789:6;23786:30;23783:56;;;23819:18;;:::i;:::-;23783:56;23863:38;23895:4;23889:11;23863:38;:::i;:::-;23948:67;24008:6;24000;23994:4;23948:67;:::i;:::-;24042:1;24071:2;24063:6;24060:14;24088:1;24083:632;;;;24759:1;24776:6;24773:84;;;24832:9;24827:3;24823:19;24810:33;24801:42;;24773:84;24883:67;24943:6;24936:5;24883:67;:::i;:::-;24877:4;24870:81;24732:229;24053:908;;24083:632;24135:4;24131:9;24123:6;24119:22;24169:37;24201:4;24169:37;:::i;:::-;24228:1;24242:215;24256:7;24253:1;24250:14;24242:215;;;24342:9;24337:3;24333:19;24320:33;24312:6;24305:49;24393:1;24385:6;24381:14;24371:24;;24440:2;24429:9;24425:18;24412:31;;24279:4;24276:1;24272:12;24267:17;;24242:215;;;24485:6;24476:7;24473:19;24470:186;;;24550:9;24545:3;24541:19;24528:33;24593:48;24635:4;24627:6;24623:17;24612:9;24593:48;:::i;:::-;24585:6;24578:64;24493:163;24470:186;24702:1;24698;24690:6;24686:14;24682:22;24676:4;24669:36;24090:625;;;24053:908;;23663:1304;;;23564:1403;;;:::o;24973:170::-;25113:22;25109:1;25101:6;25097:14;25090:46;24973:170;:::o;25149:366::-;25291:3;25312:67;25376:2;25371:3;25312:67;:::i;:::-;25305:74;;25388:93;25477:3;25388:93;:::i;:::-;25506:2;25501:3;25497:12;25490:19;;25149:366;;;:::o;25521:419::-;25687:4;25725:2;25714:9;25710:18;25702:26;;25774:9;25768:4;25764:20;25760:1;25749:9;25745:17;25738:47;25802:131;25928:4;25802:131;:::i;:::-;25794:139;;25521:419;;;:::o;25946:147::-;26047:11;26084:3;26069:18;;25946:147;;;;:::o;26099:114::-;;:::o;26219:398::-;26378:3;26399:83;26480:1;26475:3;26399:83;:::i;:::-;26392:90;;26491:93;26580:3;26491:93;:::i;:::-;26609:1;26604:3;26600:11;26593:18;;26219:398;;;:::o;26623:379::-;26807:3;26829:147;26972:3;26829:147;:::i;:::-;26822:154;;26993:3;26986:10;;26623:379;;;:::o;27008:166::-;27148:18;27144:1;27136:6;27132:14;27125:42;27008:166;:::o;27180:366::-;27322:3;27343:67;27407:2;27402:3;27343:67;:::i;:::-;27336:74;;27419:93;27508:3;27419:93;:::i;:::-;27537:2;27532:3;27528:12;27521:19;;27180:366;;;:::o;27552:419::-;27718:4;27756:2;27745:9;27741:18;27733:26;;27805:9;27799:4;27795:20;27791:1;27780:9;27776:17;27769:47;27833:131;27959:4;27833:131;:::i;:::-;27825:139;;27552:419;;;:::o;27977:165::-;28117:17;28113:1;28105:6;28101:14;28094:41;27977:165;:::o;28148:366::-;28290:3;28311:67;28375:2;28370:3;28311:67;:::i;:::-;28304:74;;28387:93;28476:3;28387:93;:::i;:::-;28505:2;28500:3;28496:12;28489:19;;28148:366;;;:::o;28520:419::-;28686:4;28724:2;28713:9;28709:18;28701:26;;28773:9;28767:4;28763:20;28759:1;28748:9;28744:17;28737:47;28801:131;28927:4;28801:131;:::i;:::-;28793:139;;28520:419;;;:::o;28945:148::-;29047:11;29084:3;29069:18;;28945:148;;;;:::o;29099:390::-;29205:3;29233:39;29266:5;29233:39;:::i;:::-;29288:89;29370:6;29365:3;29288:89;:::i;:::-;29281:96;;29386:65;29444:6;29439:3;29432:4;29425:5;29421:16;29386:65;:::i;:::-;29476:6;29471:3;29467:16;29460:23;;29209:280;29099:390;;;;:::o;29495:435::-;29675:3;29697:95;29788:3;29779:6;29697:95;:::i;:::-;29690:102;;29809:95;29900:3;29891:6;29809:95;:::i;:::-;29802:102;;29921:3;29914:10;;29495:435;;;;;:::o;29936:159::-;30076:11;30072:1;30064:6;30060:14;30053:35;29936:159;:::o;30101:365::-;30243:3;30264:66;30328:1;30323:3;30264:66;:::i;:::-;30257:73;;30339:93;30428:3;30339:93;:::i;:::-;30457:2;30452:3;30448:12;30441:19;;30101:365;;;:::o;30472:419::-;30638:4;30676:2;30665:9;30661:18;30653:26;;30725:9;30719:4;30715:20;30711:1;30700:9;30696:17;30689:47;30753:131;30879:4;30753:131;:::i;:::-;30745:139;;30472:419;;;:::o;30897:178::-;31037:30;31033:1;31025:6;31021:14;31014:54;30897:178;:::o;31081:366::-;31223:3;31244:67;31308:2;31303:3;31244:67;:::i;:::-;31237:74;;31320:93;31409:3;31320:93;:::i;:::-;31438:2;31433:3;31429:12;31422:19;;31081:366;;;:::o;31453:419::-;31619:4;31657:2;31646:9;31642:18;31634:26;;31706:9;31700:4;31696:20;31692:1;31681:9;31677:17;31670:47;31734:131;31860:4;31734:131;:::i;:::-;31726:139;;31453:419;;;:::o;31878:170::-;32018:22;32014:1;32006:6;32002:14;31995:46;31878:170;:::o;32054:366::-;32196:3;32217:67;32281:2;32276:3;32217:67;:::i;:::-;32210:74;;32293:93;32382:3;32293:93;:::i;:::-;32411:2;32406:3;32402:12;32395:19;;32054:366;;;:::o;32426:419::-;32592:4;32630:2;32619:9;32615:18;32607:26;;32679:9;32673:4;32669:20;32665:1;32654:9;32650:17;32643:47;32707:131;32833:4;32707:131;:::i;:::-;32699:139;;32426:419;;;:::o;32851:170::-;32991:22;32987:1;32979:6;32975:14;32968:46;32851:170;:::o;33027:366::-;33169:3;33190:67;33254:2;33249:3;33190:67;:::i;:::-;33183:74;;33266:93;33355:3;33266:93;:::i;:::-;33384:2;33379:3;33375:12;33368:19;;33027:366;;;:::o;33399:419::-;33565:4;33603:2;33592:9;33588:18;33580:26;;33652:9;33646:4;33642:20;33638:1;33627:9;33623:17;33616:47;33680:131;33806:4;33680:131;:::i;:::-;33672:139;;33399:419;;;:::o;33824:233::-;33863:3;33886:24;33904:5;33886:24;:::i;:::-;33877:33;;33932:66;33925:5;33922:77;33919:103;;34002:18;;:::i;:::-;33919:103;34049:1;34042:5;34038:13;34031:20;;33824:233;;;:::o;34063:176::-;34095:1;34112:20;34130:1;34112:20;:::i;:::-;34107:25;;34146:20;34164:1;34146:20;:::i;:::-;34141:25;;34185:1;34175:35;;34190:18;;:::i;:::-;34175:35;34231:1;34228;34224:9;34219:14;;34063:176;;;;:::o;34245:180::-;34293:77;34290:1;34283:88;34390:4;34387:1;34380:15;34414:4;34411:1;34404:15;34431:98;34482:6;34516:5;34510:12;34500:22;;34431:98;;;:::o;34535:168::-;34618:11;34652:6;34647:3;34640:19;34692:4;34687:3;34683:14;34668:29;;34535:168;;;;:::o;34709:373::-;34795:3;34823:38;34855:5;34823:38;:::i;:::-;34877:70;34940:6;34935:3;34877:70;:::i;:::-;34870:77;;34956:65;35014:6;35009:3;35002:4;34995:5;34991:16;34956:65;:::i;:::-;35046:29;35068:6;35046:29;:::i;:::-;35041:3;35037:39;35030:46;;34799:283;34709:373;;;;:::o;35088:640::-;35283:4;35321:3;35310:9;35306:19;35298:27;;35335:71;35403:1;35392:9;35388:17;35379:6;35335:71;:::i;:::-;35416:72;35484:2;35473:9;35469:18;35460:6;35416:72;:::i;:::-;35498;35566:2;35555:9;35551:18;35542:6;35498:72;:::i;:::-;35617:9;35611:4;35607:20;35602:2;35591:9;35587:18;35580:48;35645:76;35716:4;35707:6;35645:76;:::i;:::-;35637:84;;35088:640;;;;;;;:::o;35734:141::-;35790:5;35821:6;35815:13;35806:22;;35837:32;35863:5;35837:32;:::i;:::-;35734:141;;;;:::o;35881:349::-;35950:6;35999:2;35987:9;35978:7;35974:23;35970:32;35967:119;;;36005:79;;:::i;:::-;35967:119;36125:1;36150:63;36205:7;36196:6;36185:9;36181:22;36150:63;:::i;:::-;36140:73;;36096:127;35881:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"AUCTION_DROP_INTERVAL()":"5cae01d3","AUCTION_DROP_PER_STEP()":"59f369fe","AUCTION_END_PRICE()":"caf8a6d1","AUCTION_START_PRICE()":"7a1c4a56","AUCTION_TIME()":"e592301a","COLLECTION_SIZE()":"d8258d95","approve(address,uint256)":"095ea7b3","auctionMint(uint256)":"4d3554c3","auctionStartTime()":"eb54f9ec","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","getAuctionPrice()":"4bd25c6f","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setAuctionStartTime(uint32)":"0697346f","setBaseURI(string)":"55f804b3","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","withdrawMoney()":"ac446002"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AUCTION_DROP_INTERVAL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_DROP_PER_STEP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_END_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_START_PRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COLLECTION_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"}],\"name\":\"auctionMint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"auctionStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuctionPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"}],\"name\":\"setAuctionStartTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawMoney\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"},\"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\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"},\"totalSupply()\":{\"notice\":\"ERC721Enumerable\\u4e2dtotalSupply\\u51fd\\u6570\\u7684\\u5b9e\\u73b0\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/35_DutchAuction/DutchAuction.sol\":\"DutchAuction\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/35_DutchAuction/DutchAuction.sol\":{\"keccak256\":\"0x8ae43867659c75b5e6c933d1721ad180130f687e17e8b0b05653df5d3f061b85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c8ffa593a94b356e7dc0766d7b9246686321e50d5cd2edad961941dcae5534\",\"dweb:/ipfs/QmcErAo1ZTuHCeGxu4rzF1Xq5Nu7S7yzB3evtFyd7yW3WY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","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":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_DROP_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_DROP_PER_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_END_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_START_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AUCTION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COLLECTION_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"stateMutability":"payable","type":"function","name":"auctionMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"auctionStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAuctionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"uint32","name":"timestamp","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"setAuctionStartTime"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setBaseURI"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdrawMoney"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"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."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"},"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":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"},"totalSupply()":{"notice":"ERC721Enumerable中totalSupply函数的实现"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/35_DutchAuction/DutchAuction.sol":"DutchAuction"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/35_DutchAuction/DutchAuction.sol":{"keccak256":"0x8ae43867659c75b5e6c933d1721ad180130f687e17e8b0b05653df5d3f061b85","urls":["bzz-raw://81c8ffa593a94b356e7dc0766d7b9246686321e50d5cd2edad961941dcae5534","dweb:/ipfs/QmcErAo1ZTuHCeGxu4rzF1Xq5Nu7S7yzB3evtFyd7yW3WY"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file diff --git a/out/EIP712Storage.sol/EIP712Storage.json b/out/EIP712Storage.sol/EIP712Storage.json index 45bf57a8..7ab62009 100644 --- a/out/EIP712Storage.sol/EIP712Storage.json +++ b/out/EIP712Storage.sol/EIP712Storage.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitStore","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"retrieve","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f45495037313253746f7261676500000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016100c1959493929190610190565b604051602081830303815290604052805190602001205f819055503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101e1565b5f819050919050565b61013381610121565b82525050565b5f819050919050565b61014b81610139565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61017a82610151565b9050919050565b61018a81610170565b82525050565b5f60a0820190506101a35f83018861012a565b6101b0602083018761012a565b6101bd604083018661012a565b6101ca6060830185610142565b6101d76080830184610181565b9695505050505050565b610972806101ee5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80632e64cec1146100385780637fb4bf2a14610056575b5f5ffd5b610040610072565b60405161004d9190610498565b60405180910390f35b610070600480360381019061006b9190610628565b61007b565b005b5f600154905090565b60418151146100bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b6906106dc565b60405180910390fd5b5f5f5f602084015192506040840151915060608401515f1a90505f5f547fd0424b76ec7a3227309117de6d952e26508aa80cc81ccac30dc95ed1419924cd338860405160200161011193929190610751565b604051602081830303815290604052805190602001206040516020016101389291906107fa565b6040516020818303038152906040528051906020012090505f61016883868685610209909392919063ffffffff16565b905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f09061087a565b60405180910390fd5b8660018190555050505050505050565b5f5f5f5f61021988888888610237565b925092509250610229828261031e565b829350505050949350505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610273575f600385925092509250610314565b5f6001888888886040515f815260200160405260405161029694939291906108b3565b6020604051602081039080840390855afa1580156102b6573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610307575f60015f5f1b93509350935050610314565b805f5f5f1b935093509350505b9450945094915050565b5f6003811115610331576103306108f6565b5b826003811115610344576103436108f6565b5b031561047c576001600381111561035e5761035d6108f6565b5b826003811115610371576103706108f6565b5b036103a8576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156103bc576103bb6108f6565b5b8260038111156103cf576103ce6108f6565b5b0361041357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161040a9190610498565b60405180910390fd5b600380811115610426576104256108f6565b5b826003811115610439576104386108f6565b5b0361047b57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016104729190610923565b60405180910390fd5b5b5050565b5f819050919050565b61049281610480565b82525050565b5f6020820190506104ab5f830184610489565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b6104cb81610480565b81146104d5575f5ffd5b50565b5f813590506104e6816104c2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61053a826104f4565b810181811067ffffffffffffffff8211171561055957610558610504565b5b80604052505050565b5f61056b6104b1565b90506105778282610531565b919050565b5f67ffffffffffffffff82111561059657610595610504565b5b61059f826104f4565b9050602081019050919050565b828183375f83830152505050565b5f6105cc6105c78461057c565b610562565b9050828152602081018484840111156105e8576105e76104f0565b5b6105f38482856105ac565b509392505050565b5f82601f83011261060f5761060e6104ec565b5b813561061f8482602086016105ba565b91505092915050565b5f5f6040838503121561063e5761063d6104ba565b5b5f61064b858286016104d8565b925050602083013567ffffffffffffffff81111561066c5761066b6104be565b5b610678858286016105fb565b9150509250929050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f6106c6601883610682565b91506106d182610692565b602082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b5f819050919050565b61070c816106fa565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61073b82610712565b9050919050565b61074b81610731565b82525050565b5f6060820190506107645f830186610703565b6107716020830185610742565b61077e6040830184610489565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6107c4600283610786565b91506107cf82610790565b600282019050919050565b5f819050919050565b6107f46107ef826106fa565b6107da565b82525050565b5f610804826107b8565b915061081082856107e3565b60208201915061082082846107e3565b6020820191508190509392505050565b7f45495037313253746f726167653a20496e76616c6964207369676e61747572655f82015250565b5f610864602083610682565b915061086f82610830565b602082019050919050565b5f6020820190508181035f83015261089181610858565b9050919050565b5f60ff82169050919050565b6108ad81610898565b82525050565b5f6080820190506108c65f830187610703565b6108d360208301866108a4565b6108e06040830185610703565b6108ed6060830184610703565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020820190506109365f830184610703565b9291505056fea264697066735822122010fedfa07ac14e8a42598d1b0a3ebb4b27fe9d851e03c368b542798b7faf58c664736f6c63430008220033","sourceMap":"134:2319:113:-:0;;;523:343;;;;;;;;;;242:95;657:22;;;;;;;;;;;;;;;;;647:33;;;;;;712:10;;;;;;;;;;;;;;;;;702:21;;;;;;748:13;795:4;575:255;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;565:266;;;;;;546:16;:285;;;;849:10;841:5;;:18;;;;;;;;;;;;;;;;;;134:2319;;7:77:145;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:77::-;251:7;280:5;269:16;;214:77;;;:::o;297:118::-;384:24;402:5;384:24;:::i;:::-;379:3;372:37;297:118;;:::o;421:126::-;458:7;498:42;491:5;487:54;476:65;;421:126;;;:::o;553:96::-;590:7;619:24;637:5;619:24;:::i;:::-;608:35;;553:96;;;:::o;655:118::-;742:24;760:5;742:24;:::i;:::-;737:3;730:37;655:118;;:::o;779:664::-;984:4;1022:3;1011:9;1007:19;999:27;;1036:71;1104:1;1093:9;1089:17;1080:6;1036:71;:::i;:::-;1117:72;1185:2;1174:9;1170:18;1161:6;1117:72;:::i;:::-;1199;1267:2;1256:9;1252:18;1243:6;1199:72;:::i;:::-;1281;1349:2;1338:9;1334:18;1325:6;1281:72;:::i;:::-;1363:73;1431:3;1420:9;1416:19;1407:6;1363:73;:::i;:::-;779:664;;;;;;;;:::o;134:2319:113:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80632e64cec1146100385780637fb4bf2a14610056575b5f5ffd5b610040610072565b60405161004d9190610498565b60405180910390f35b610070600480360381019061006b9190610628565b61007b565b005b5f600154905090565b60418151146100bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b6906106dc565b60405180910390fd5b5f5f5f602084015192506040840151915060608401515f1a90505f5f547fd0424b76ec7a3227309117de6d952e26508aa80cc81ccac30dc95ed1419924cd338860405160200161011193929190610751565b604051602081830303815290604052805190602001206040516020016101389291906107fa565b6040516020818303038152906040528051906020012090505f61016883868685610209909392919063ffffffff16565b905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f09061087a565b60405180910390fd5b8660018190555050505050505050565b5f5f5f5f61021988888888610237565b925092509250610229828261031e565b829350505050949350505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610273575f600385925092509250610314565b5f6001888888886040515f815260200160405260405161029694939291906108b3565b6020604051602081039080840390855afa1580156102b6573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610307575f60015f5f1b93509350935050610314565b805f5f5f1b935093509350505b9450945094915050565b5f6003811115610331576103306108f6565b5b826003811115610344576103436108f6565b5b031561047c576001600381111561035e5761035d6108f6565b5b826003811115610371576103706108f6565b5b036103a8576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156103bc576103bb6108f6565b5b8260038111156103cf576103ce6108f6565b5b0361041357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161040a9190610498565b60405180910390fd5b600380811115610426576104256108f6565b5b826003811115610439576104386108f6565b5b0361047b57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016104729190610923565b60405180910390fd5b5b5050565b5f819050919050565b61049281610480565b82525050565b5f6020820190506104ab5f830184610489565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b6104cb81610480565b81146104d5575f5ffd5b50565b5f813590506104e6816104c2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61053a826104f4565b810181811067ffffffffffffffff8211171561055957610558610504565b5b80604052505050565b5f61056b6104b1565b90506105778282610531565b919050565b5f67ffffffffffffffff82111561059657610595610504565b5b61059f826104f4565b9050602081019050919050565b828183375f83830152505050565b5f6105cc6105c78461057c565b610562565b9050828152602081018484840111156105e8576105e76104f0565b5b6105f38482856105ac565b509392505050565b5f82601f83011261060f5761060e6104ec565b5b813561061f8482602086016105ba565b91505092915050565b5f5f6040838503121561063e5761063d6104ba565b5b5f61064b858286016104d8565b925050602083013567ffffffffffffffff81111561066c5761066b6104be565b5b610678858286016105fb565b9150509250929050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f6106c6601883610682565b91506106d182610692565b602082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b5f819050919050565b61070c816106fa565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61073b82610712565b9050919050565b61074b81610731565b82525050565b5f6060820190506107645f830186610703565b6107716020830185610742565b61077e6040830184610489565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6107c4600283610786565b91506107cf82610790565b600282019050919050565b5f819050919050565b6107f46107ef826106fa565b6107da565b82525050565b5f610804826107b8565b915061081082856107e3565b60208201915061082082846107e3565b6020820191508190509392505050565b7f45495037313253746f726167653a20496e76616c6964207369676e61747572655f82015250565b5f610864602083610682565b915061086f82610830565b602082019050919050565b5f6020820190508181035f83015261089181610858565b9050919050565b5f60ff82169050919050565b6108ad81610898565b82525050565b5f6080820190506108c65f830187610703565b6108d360208301866108a4565b6108e06040830185610703565b6108ed6060830184610703565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020820190506109365f830184610703565b9291505056fea264697066735822122010fedfa07ac14e8a42598d1b0a3ebb4b27fe9d851e03c368b542798b7faf58c664736f6c63430008220033","sourceMap":"134:2319:113:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2368:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;924:1363;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2368:79;2409:7;2434:6;;2427:13;;2368:79;:::o;924:1363::-;1094:2;1073:10;:17;:23;1065:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;1135:9;1154;1173:7;1644:4;1632:10;1628:21;1622:28;1617:33;;1729:4;1717:10;1713:21;1707:28;1702:33;;1821:4;1809:10;1805:21;1799:28;1796:1;1791:37;1786:42;;1882:14;1963:16;;387:52;2032:10;2044:4;2003:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1993:57;;;;;;1909:151;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1899:162;;;;;;1882:179;;2081:14;2098:23;2113:1;2116;2119;2098:6;:14;;:23;;;;;;:::i;:::-;2081:40;;2168:5;;;;;;;;;;;2158:15;;:6;:15;;;2150:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2276:4;2267:6;:13;;;;991:1296;;;;;924:1363;;:::o;8813:260:36:-;8898:7;8918:17;8937:18;8957:16;8977:25;8988:4;8994:1;8997;9000;8977:10;:25::i;:::-;8917:85;;;;;;9012:28;9024:5;9031:8;9012:11;:28::i;:::-;9057:9;9050:16;;;;;8813:260;;;;;;:::o;7129:1551::-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:117::-;1151:1;1148;1141:12;1165:117;1274:1;1271;1264:12;1288:102;1329:6;1380:2;1376:7;1371:2;1364:5;1360:14;1356:28;1346:38;;1288:102;;;:::o;1396:180::-;1444:77;1441:1;1434:88;1541:4;1538:1;1531:15;1565:4;1562:1;1555:15;1582:281;1665:27;1687:4;1665:27;:::i;:::-;1657:6;1653:40;1795:6;1783:10;1780:22;1759:18;1747:10;1744:34;1741:62;1738:88;;;1806:18;;:::i;:::-;1738:88;1846:10;1842:2;1835:22;1625:238;1582:281;;:::o;1869:129::-;1903:6;1930:20;;:::i;:::-;1920:30;;1959:33;1987:4;1979:6;1959:33;:::i;:::-;1869:129;;;:::o;2004:307::-;2065:4;2155:18;2147:6;2144:30;2141:56;;;2177:18;;:::i;:::-;2141:56;2215:29;2237:6;2215:29;:::i;:::-;2207:37;;2299:4;2293;2289:15;2281:23;;2004:307;;;:::o;2317:148::-;2415:6;2410:3;2405;2392:30;2456:1;2447:6;2442:3;2438:16;2431:27;2317:148;;;:::o;2471:423::-;2548:5;2573:65;2589:48;2630:6;2589:48;:::i;:::-;2573:65;:::i;:::-;2564:74;;2661:6;2654:5;2647:21;2699:4;2692:5;2688:16;2737:3;2728:6;2723:3;2719:16;2716:25;2713:112;;;2744:79;;:::i;:::-;2713:112;2834:54;2881:6;2876:3;2871;2834:54;:::i;:::-;2554:340;2471:423;;;;;:::o;2913:338::-;2968:5;3017:3;3010:4;3002:6;2998:17;2994:27;2984:122;;3025:79;;:::i;:::-;2984:122;3142:6;3129:20;3167:78;3241:3;3233:6;3226:4;3218:6;3214:17;3167:78;:::i;:::-;3158:87;;2974:277;2913:338;;;;:::o;3257:652::-;3334:6;3342;3391:2;3379:9;3370:7;3366:23;3362:32;3359:119;;;3397:79;;:::i;:::-;3359:119;3517:1;3542:53;3587:7;3578:6;3567:9;3563:22;3542:53;:::i;:::-;3532:63;;3488:117;3672:2;3661:9;3657:18;3644:32;3703:18;3695:6;3692:30;3689:117;;;3725:79;;:::i;:::-;3689:117;3830:62;3884:7;3875:6;3864:9;3860:22;3830:62;:::i;:::-;3820:72;;3615:287;3257:652;;;;;:::o;3915:169::-;3999:11;4033:6;4028:3;4021:19;4073:4;4068:3;4064:14;4049:29;;3915:169;;;;:::o;4090:174::-;4230:26;4226:1;4218:6;4214:14;4207:50;4090:174;:::o;4270:366::-;4412:3;4433:67;4497:2;4492:3;4433:67;:::i;:::-;4426:74;;4509:93;4598:3;4509:93;:::i;:::-;4627:2;4622:3;4618:12;4611:19;;4270:366;;;:::o;4642:419::-;4808:4;4846:2;4835:9;4831:18;4823:26;;4895:9;4889:4;4885:20;4881:1;4870:9;4866:17;4859:47;4923:131;5049:4;4923:131;:::i;:::-;4915:139;;4642:419;;;:::o;5067:77::-;5104:7;5133:5;5122:16;;5067:77;;;:::o;5150:118::-;5237:24;5255:5;5237:24;:::i;:::-;5232:3;5225:37;5150:118;;:::o;5274:126::-;5311:7;5351:42;5344:5;5340:54;5329:65;;5274:126;;;:::o;5406:96::-;5443:7;5472:24;5490:5;5472:24;:::i;:::-;5461:35;;5406:96;;;:::o;5508:118::-;5595:24;5613:5;5595:24;:::i;:::-;5590:3;5583:37;5508:118;;:::o;5632:442::-;5781:4;5819:2;5808:9;5804:18;5796:26;;5832:71;5900:1;5889:9;5885:17;5876:6;5832:71;:::i;:::-;5913:72;5981:2;5970:9;5966:18;5957:6;5913:72;:::i;:::-;5995;6063:2;6052:9;6048:18;6039:6;5995:72;:::i;:::-;5632:442;;;;;;:::o;6080:148::-;6182:11;6219:3;6204:18;;6080:148;;;;:::o;6234:214::-;6374:66;6370:1;6362:6;6358:14;6351:90;6234:214;:::o;6454:400::-;6614:3;6635:84;6717:1;6712:3;6635:84;:::i;:::-;6628:91;;6728:93;6817:3;6728:93;:::i;:::-;6846:1;6841:3;6837:11;6830:18;;6454:400;;;:::o;6860:79::-;6899:7;6928:5;6917:16;;6860:79;;;:::o;6945:157::-;7050:45;7070:24;7088:5;7070:24;:::i;:::-;7050:45;:::i;:::-;7045:3;7038:58;6945:157;;:::o;7108:663::-;7349:3;7371:148;7515:3;7371:148;:::i;:::-;7364:155;;7529:75;7600:3;7591:6;7529:75;:::i;:::-;7629:2;7624:3;7620:12;7613:19;;7642:75;7713:3;7704:6;7642:75;:::i;:::-;7742:2;7737:3;7733:12;7726:19;;7762:3;7755:10;;7108:663;;;;;:::o;7777:182::-;7917:34;7913:1;7905:6;7901:14;7894:58;7777:182;:::o;7965:366::-;8107:3;8128:67;8192:2;8187:3;8128:67;:::i;:::-;8121:74;;8204:93;8293:3;8204:93;:::i;:::-;8322:2;8317:3;8313:12;8306:19;;7965:366;;;:::o;8337:419::-;8503:4;8541:2;8530:9;8526:18;8518:26;;8590:9;8584:4;8580:20;8576:1;8565:9;8561:17;8554:47;8618:131;8744:4;8618:131;:::i;:::-;8610:139;;8337:419;;;:::o;8762:86::-;8797:7;8837:4;8830:5;8826:16;8815:27;;8762:86;;;:::o;8854:112::-;8937:22;8953:5;8937:22;:::i;:::-;8932:3;8925:35;8854:112;;:::o;8972:545::-;9145:4;9183:3;9172:9;9168:19;9160:27;;9197:71;9265:1;9254:9;9250:17;9241:6;9197:71;:::i;:::-;9278:68;9342:2;9331:9;9327:18;9318:6;9278:68;:::i;:::-;9356:72;9424:2;9413:9;9409:18;9400:6;9356:72;:::i;:::-;9438;9506:2;9495:9;9491:18;9482:6;9438:72;:::i;:::-;8972:545;;;;;;;:::o;9523:180::-;9571:77;9568:1;9561:88;9668:4;9665:1;9658:15;9692:4;9689:1;9682:15;9709:222;9802:4;9840:2;9829:9;9825:18;9817:26;;9853:71;9921:1;9910:9;9906:17;9897:6;9853:71;:::i;:::-;9709:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"permitStore(uint256,bytes)":"7fb4bf2a","retrieve()":"2e64cec1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"permitStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retrieve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{\"permitStore(uint256,bytes)\":{\"details\":\"Store value in variable\"},\"retrieve()\":{\"details\":\"Return value \",\"returns\":{\"_0\":\"value of 'number'\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/52_EIP712/EIP712Storage.sol\":\"EIP712Storage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"src/52_EIP712/EIP712Storage.sol\":{\"keccak256\":\"0x3b1c6f8f949201fb3bc6644dc2261e29f5e2791cfc11b524dfce98dc9484b565\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bd7e5fcb561ba7e05734ddf82f0259a2f2d7eae1e8b81890acdd41b06c6abf8\",\"dweb:/ipfs/QmQwsAUVgCpe4pMaryoZ59bGXoUrtPbjnQSkkvZnJPw2bD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"permitStore"},{"inputs":[],"stateMutability":"view","type":"function","name":"retrieve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"permitStore(uint256,bytes)":{"details":"Store value in variable"},"retrieve()":{"details":"Return value ","returns":{"_0":"value of 'number'"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/52_EIP712/EIP712Storage.sol":"EIP712Storage"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"src/52_EIP712/EIP712Storage.sol":{"keccak256":"0x3b1c6f8f949201fb3bc6644dc2261e29f5e2791cfc11b524dfce98dc9484b565","urls":["bzz-raw://3bd7e5fcb561ba7e05734ddf82f0259a2f2d7eae1e8b81890acdd41b06c6abf8","dweb:/ipfs/QmQwsAUVgCpe4pMaryoZ59bGXoUrtPbjnQSkkvZnJPw2bD"],"license":"MIT"}},"version":1},"id":113} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"permitStore","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"retrieve","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f45495037313253746f7261676500000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016100c1959493929190610190565b604051602081830303815290604052805190602001205f819055503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101e1565b5f819050919050565b61013381610121565b82525050565b5f819050919050565b61014b81610139565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61017a82610151565b9050919050565b61018a81610170565b82525050565b5f60a0820190506101a35f83018861012a565b6101b0602083018761012a565b6101bd604083018661012a565b6101ca6060830185610142565b6101d76080830184610181565b9695505050505050565b610972806101ee5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80632e64cec1146100385780637fb4bf2a14610056575b5f5ffd5b610040610072565b60405161004d9190610498565b60405180910390f35b610070600480360381019061006b9190610628565b61007b565b005b5f600154905090565b60418151146100bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b6906106dc565b60405180910390fd5b5f5f5f602084015192506040840151915060608401515f1a90505f5f547fd0424b76ec7a3227309117de6d952e26508aa80cc81ccac30dc95ed1419924cd338860405160200161011193929190610751565b604051602081830303815290604052805190602001206040516020016101389291906107fa565b6040516020818303038152906040528051906020012090505f61016883868685610209909392919063ffffffff16565b905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f09061087a565b60405180910390fd5b8660018190555050505050505050565b5f5f5f5f61021988888888610237565b925092509250610229828261031e565b829350505050949350505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610273575f600385925092509250610314565b5f6001888888886040515f815260200160405260405161029694939291906108b3565b6020604051602081039080840390855afa1580156102b6573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610307575f60015f5f1b93509350935050610314565b805f5f5f1b935093509350505b9450945094915050565b5f6003811115610331576103306108f6565b5b826003811115610344576103436108f6565b5b031561047c576001600381111561035e5761035d6108f6565b5b826003811115610371576103706108f6565b5b036103a8576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156103bc576103bb6108f6565b5b8260038111156103cf576103ce6108f6565b5b0361041357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161040a9190610498565b60405180910390fd5b600380811115610426576104256108f6565b5b826003811115610439576104386108f6565b5b0361047b57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016104729190610923565b60405180910390fd5b5b5050565b5f819050919050565b61049281610480565b82525050565b5f6020820190506104ab5f830184610489565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b6104cb81610480565b81146104d5575f5ffd5b50565b5f813590506104e6816104c2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61053a826104f4565b810181811067ffffffffffffffff8211171561055957610558610504565b5b80604052505050565b5f61056b6104b1565b90506105778282610531565b919050565b5f67ffffffffffffffff82111561059657610595610504565b5b61059f826104f4565b9050602081019050919050565b828183375f83830152505050565b5f6105cc6105c78461057c565b610562565b9050828152602081018484840111156105e8576105e76104f0565b5b6105f38482856105ac565b509392505050565b5f82601f83011261060f5761060e6104ec565b5b813561061f8482602086016105ba565b91505092915050565b5f5f6040838503121561063e5761063d6104ba565b5b5f61064b858286016104d8565b925050602083013567ffffffffffffffff81111561066c5761066b6104be565b5b610678858286016105fb565b9150509250929050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f6106c6601883610682565b91506106d182610692565b602082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b5f819050919050565b61070c816106fa565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61073b82610712565b9050919050565b61074b81610731565b82525050565b5f6060820190506107645f830186610703565b6107716020830185610742565b61077e6040830184610489565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6107c4600283610786565b91506107cf82610790565b600282019050919050565b5f819050919050565b6107f46107ef826106fa565b6107da565b82525050565b5f610804826107b8565b915061081082856107e3565b60208201915061082082846107e3565b6020820191508190509392505050565b7f45495037313253746f726167653a20496e76616c6964207369676e61747572655f82015250565b5f610864602083610682565b915061086f82610830565b602082019050919050565b5f6020820190508181035f83015261089181610858565b9050919050565b5f60ff82169050919050565b6108ad81610898565b82525050565b5f6080820190506108c65f830187610703565b6108d360208301866108a4565b6108e06040830185610703565b6108ed6060830184610703565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020820190506109365f830184610703565b9291505056fea264697066735822122010fedfa07ac14e8a42598d1b0a3ebb4b27fe9d851e03c368b542798b7faf58c664736f6c63430008220033","sourceMap":"134:2319:107:-:0;;;523:343;;;;;;;;;;242:95;657:22;;;;;;;;;;;;;;;;;647:33;;;;;;712:10;;;;;;;;;;;;;;;;;702:21;;;;;;748:13;795:4;575:255;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;565:266;;;;;;546:16;:285;;;;849:10;841:5;;:18;;;;;;;;;;;;;;;;;;134:2319;;7:77:139;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:77::-;251:7;280:5;269:16;;214:77;;;:::o;297:118::-;384:24;402:5;384:24;:::i;:::-;379:3;372:37;297:118;;:::o;421:126::-;458:7;498:42;491:5;487:54;476:65;;421:126;;;:::o;553:96::-;590:7;619:24;637:5;619:24;:::i;:::-;608:35;;553:96;;;:::o;655:118::-;742:24;760:5;742:24;:::i;:::-;737:3;730:37;655:118;;:::o;779:664::-;984:4;1022:3;1011:9;1007:19;999:27;;1036:71;1104:1;1093:9;1089:17;1080:6;1036:71;:::i;:::-;1117:72;1185:2;1174:9;1170:18;1161:6;1117:72;:::i;:::-;1199;1267:2;1256:9;1252:18;1243:6;1199:72;:::i;:::-;1281;1349:2;1338:9;1334:18;1325:6;1281:72;:::i;:::-;1363:73;1431:3;1420:9;1416:19;1407:6;1363:73;:::i;:::-;779:664;;;;;;;;:::o;134:2319:107:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80632e64cec1146100385780637fb4bf2a14610056575b5f5ffd5b610040610072565b60405161004d9190610498565b60405180910390f35b610070600480360381019061006b9190610628565b61007b565b005b5f600154905090565b60418151146100bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b6906106dc565b60405180910390fd5b5f5f5f602084015192506040840151915060608401515f1a90505f5f547fd0424b76ec7a3227309117de6d952e26508aa80cc81ccac30dc95ed1419924cd338860405160200161011193929190610751565b604051602081830303815290604052805190602001206040516020016101389291906107fa565b6040516020818303038152906040528051906020012090505f61016883868685610209909392919063ffffffff16565b905060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f09061087a565b60405180910390fd5b8660018190555050505050505050565b5f5f5f5f61021988888888610237565b925092509250610229828261031e565b829350505050949350505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610273575f600385925092509250610314565b5f6001888888886040515f815260200160405260405161029694939291906108b3565b6020604051602081039080840390855afa1580156102b6573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610307575f60015f5f1b93509350935050610314565b805f5f5f1b935093509350505b9450945094915050565b5f6003811115610331576103306108f6565b5b826003811115610344576103436108f6565b5b031561047c576001600381111561035e5761035d6108f6565b5b826003811115610371576103706108f6565b5b036103a8576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156103bc576103bb6108f6565b5b8260038111156103cf576103ce6108f6565b5b0361041357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161040a9190610498565b60405180910390fd5b600380811115610426576104256108f6565b5b826003811115610439576104386108f6565b5b0361047b57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016104729190610923565b60405180910390fd5b5b5050565b5f819050919050565b61049281610480565b82525050565b5f6020820190506104ab5f830184610489565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b6104cb81610480565b81146104d5575f5ffd5b50565b5f813590506104e6816104c2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61053a826104f4565b810181811067ffffffffffffffff8211171561055957610558610504565b5b80604052505050565b5f61056b6104b1565b90506105778282610531565b919050565b5f67ffffffffffffffff82111561059657610595610504565b5b61059f826104f4565b9050602081019050919050565b828183375f83830152505050565b5f6105cc6105c78461057c565b610562565b9050828152602081018484840111156105e8576105e76104f0565b5b6105f38482856105ac565b509392505050565b5f82601f83011261060f5761060e6104ec565b5b813561061f8482602086016105ba565b91505092915050565b5f5f6040838503121561063e5761063d6104ba565b5b5f61064b858286016104d8565b925050602083013567ffffffffffffffff81111561066c5761066b6104be565b5b610678858286016105fb565b9150509250929050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f6106c6601883610682565b91506106d182610692565b602082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b5f819050919050565b61070c816106fa565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61073b82610712565b9050919050565b61074b81610731565b82525050565b5f6060820190506107645f830186610703565b6107716020830185610742565b61077e6040830184610489565b949350505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6107c4600283610786565b91506107cf82610790565b600282019050919050565b5f819050919050565b6107f46107ef826106fa565b6107da565b82525050565b5f610804826107b8565b915061081082856107e3565b60208201915061082082846107e3565b6020820191508190509392505050565b7f45495037313253746f726167653a20496e76616c6964207369676e61747572655f82015250565b5f610864602083610682565b915061086f82610830565b602082019050919050565b5f6020820190508181035f83015261089181610858565b9050919050565b5f60ff82169050919050565b6108ad81610898565b82525050565b5f6080820190506108c65f830187610703565b6108d360208301866108a4565b6108e06040830185610703565b6108ed6060830184610703565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f6020820190506109365f830184610703565b9291505056fea264697066735822122010fedfa07ac14e8a42598d1b0a3ebb4b27fe9d851e03c368b542798b7faf58c664736f6c63430008220033","sourceMap":"134:2319:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2368:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;924:1363;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2368:79;2409:7;2434:6;;2427:13;;2368:79;:::o;924:1363::-;1094:2;1073:10;:17;:23;1065:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;1135:9;1154;1173:7;1644:4;1632:10;1628:21;1622:28;1617:33;;1729:4;1717:10;1713:21;1707:28;1702:33;;1821:4;1809:10;1805:21;1799:28;1796:1;1791:37;1786:42;;1882:14;1963:16;;387:52;2032:10;2044:4;2003:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1993:57;;;;;;1909:151;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1899:162;;;;;;1882:179;;2081:14;2098:23;2113:1;2116;2119;2098:6;:14;;:23;;;;;;:::i;:::-;2081:40;;2168:5;;;;;;;;;;;2158:15;;:6;:15;;;2150:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2276:4;2267:6;:13;;;;991:1296;;;;;924:1363;;:::o;8813:260:36:-;8898:7;8918:17;8937:18;8957:16;8977:25;8988:4;8994:1;8997;9000;8977:10;:25::i;:::-;8917:85;;;;;;9012:28;9024:5;9031:8;9012:11;:28::i;:::-;9057:9;9050:16;;;;;8813:260;;;;;;:::o;7129:1551::-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:117::-;1151:1;1148;1141:12;1165:117;1274:1;1271;1264:12;1288:102;1329:6;1380:2;1376:7;1371:2;1364:5;1360:14;1356:28;1346:38;;1288:102;;;:::o;1396:180::-;1444:77;1441:1;1434:88;1541:4;1538:1;1531:15;1565:4;1562:1;1555:15;1582:281;1665:27;1687:4;1665:27;:::i;:::-;1657:6;1653:40;1795:6;1783:10;1780:22;1759:18;1747:10;1744:34;1741:62;1738:88;;;1806:18;;:::i;:::-;1738:88;1846:10;1842:2;1835:22;1625:238;1582:281;;:::o;1869:129::-;1903:6;1930:20;;:::i;:::-;1920:30;;1959:33;1987:4;1979:6;1959:33;:::i;:::-;1869:129;;;:::o;2004:307::-;2065:4;2155:18;2147:6;2144:30;2141:56;;;2177:18;;:::i;:::-;2141:56;2215:29;2237:6;2215:29;:::i;:::-;2207:37;;2299:4;2293;2289:15;2281:23;;2004:307;;;:::o;2317:148::-;2415:6;2410:3;2405;2392:30;2456:1;2447:6;2442:3;2438:16;2431:27;2317:148;;;:::o;2471:423::-;2548:5;2573:65;2589:48;2630:6;2589:48;:::i;:::-;2573:65;:::i;:::-;2564:74;;2661:6;2654:5;2647:21;2699:4;2692:5;2688:16;2737:3;2728:6;2723:3;2719:16;2716:25;2713:112;;;2744:79;;:::i;:::-;2713:112;2834:54;2881:6;2876:3;2871;2834:54;:::i;:::-;2554:340;2471:423;;;;;:::o;2913:338::-;2968:5;3017:3;3010:4;3002:6;2998:17;2994:27;2984:122;;3025:79;;:::i;:::-;2984:122;3142:6;3129:20;3167:78;3241:3;3233:6;3226:4;3218:6;3214:17;3167:78;:::i;:::-;3158:87;;2974:277;2913:338;;;;:::o;3257:652::-;3334:6;3342;3391:2;3379:9;3370:7;3366:23;3362:32;3359:119;;;3397:79;;:::i;:::-;3359:119;3517:1;3542:53;3587:7;3578:6;3567:9;3563:22;3542:53;:::i;:::-;3532:63;;3488:117;3672:2;3661:9;3657:18;3644:32;3703:18;3695:6;3692:30;3689:117;;;3725:79;;:::i;:::-;3689:117;3830:62;3884:7;3875:6;3864:9;3860:22;3830:62;:::i;:::-;3820:72;;3615:287;3257:652;;;;;:::o;3915:169::-;3999:11;4033:6;4028:3;4021:19;4073:4;4068:3;4064:14;4049:29;;3915:169;;;;:::o;4090:174::-;4230:26;4226:1;4218:6;4214:14;4207:50;4090:174;:::o;4270:366::-;4412:3;4433:67;4497:2;4492:3;4433:67;:::i;:::-;4426:74;;4509:93;4598:3;4509:93;:::i;:::-;4627:2;4622:3;4618:12;4611:19;;4270:366;;;:::o;4642:419::-;4808:4;4846:2;4835:9;4831:18;4823:26;;4895:9;4889:4;4885:20;4881:1;4870:9;4866:17;4859:47;4923:131;5049:4;4923:131;:::i;:::-;4915:139;;4642:419;;;:::o;5067:77::-;5104:7;5133:5;5122:16;;5067:77;;;:::o;5150:118::-;5237:24;5255:5;5237:24;:::i;:::-;5232:3;5225:37;5150:118;;:::o;5274:126::-;5311:7;5351:42;5344:5;5340:54;5329:65;;5274:126;;;:::o;5406:96::-;5443:7;5472:24;5490:5;5472:24;:::i;:::-;5461:35;;5406:96;;;:::o;5508:118::-;5595:24;5613:5;5595:24;:::i;:::-;5590:3;5583:37;5508:118;;:::o;5632:442::-;5781:4;5819:2;5808:9;5804:18;5796:26;;5832:71;5900:1;5889:9;5885:17;5876:6;5832:71;:::i;:::-;5913:72;5981:2;5970:9;5966:18;5957:6;5913:72;:::i;:::-;5995;6063:2;6052:9;6048:18;6039:6;5995:72;:::i;:::-;5632:442;;;;;;:::o;6080:148::-;6182:11;6219:3;6204:18;;6080:148;;;;:::o;6234:214::-;6374:66;6370:1;6362:6;6358:14;6351:90;6234:214;:::o;6454:400::-;6614:3;6635:84;6717:1;6712:3;6635:84;:::i;:::-;6628:91;;6728:93;6817:3;6728:93;:::i;:::-;6846:1;6841:3;6837:11;6830:18;;6454:400;;;:::o;6860:79::-;6899:7;6928:5;6917:16;;6860:79;;;:::o;6945:157::-;7050:45;7070:24;7088:5;7070:24;:::i;:::-;7050:45;:::i;:::-;7045:3;7038:58;6945:157;;:::o;7108:663::-;7349:3;7371:148;7515:3;7371:148;:::i;:::-;7364:155;;7529:75;7600:3;7591:6;7529:75;:::i;:::-;7629:2;7624:3;7620:12;7613:19;;7642:75;7713:3;7704:6;7642:75;:::i;:::-;7742:2;7737:3;7733:12;7726:19;;7762:3;7755:10;;7108:663;;;;;:::o;7777:182::-;7917:34;7913:1;7905:6;7901:14;7894:58;7777:182;:::o;7965:366::-;8107:3;8128:67;8192:2;8187:3;8128:67;:::i;:::-;8121:74;;8204:93;8293:3;8204:93;:::i;:::-;8322:2;8317:3;8313:12;8306:19;;7965:366;;;:::o;8337:419::-;8503:4;8541:2;8530:9;8526:18;8518:26;;8590:9;8584:4;8580:20;8576:1;8565:9;8561:17;8554:47;8618:131;8744:4;8618:131;:::i;:::-;8610:139;;8337:419;;;:::o;8762:86::-;8797:7;8837:4;8830:5;8826:16;8815:27;;8762:86;;;:::o;8854:112::-;8937:22;8953:5;8937:22;:::i;:::-;8932:3;8925:35;8854:112;;:::o;8972:545::-;9145:4;9183:3;9172:9;9168:19;9160:27;;9197:71;9265:1;9254:9;9250:17;9241:6;9197:71;:::i;:::-;9278:68;9342:2;9331:9;9327:18;9318:6;9278:68;:::i;:::-;9356:72;9424:2;9413:9;9409:18;9400:6;9356:72;:::i;:::-;9438;9506:2;9495:9;9491:18;9482:6;9438:72;:::i;:::-;8972:545;;;;;;;:::o;9523:180::-;9571:77;9568:1;9561:88;9668:4;9665:1;9658:15;9692:4;9689:1;9682:15;9709:222;9802:4;9840:2;9829:9;9825:18;9817:26;;9853:71;9921:1;9910:9;9906:17;9897:6;9853:71;:::i;:::-;9709:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"permitStore(uint256,bytes)":"7fb4bf2a","retrieve()":"2e64cec1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"permitStore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retrieve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{\"permitStore(uint256,bytes)\":{\"details\":\"Store value in variable\"},\"retrieve()\":{\"details\":\"Return value \",\"returns\":{\"_0\":\"value of 'number'\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/52_EIP712/EIP712Storage.sol\":\"EIP712Storage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"src/52_EIP712/EIP712Storage.sol\":{\"keccak256\":\"0x3b1c6f8f949201fb3bc6644dc2261e29f5e2791cfc11b524dfce98dc9484b565\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bd7e5fcb561ba7e05734ddf82f0259a2f2d7eae1e8b81890acdd41b06c6abf8\",\"dweb:/ipfs/QmQwsAUVgCpe4pMaryoZ59bGXoUrtPbjnQSkkvZnJPw2bD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"permitStore"},{"inputs":[],"stateMutability":"view","type":"function","name":"retrieve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"permitStore(uint256,bytes)":{"details":"Store value in variable"},"retrieve()":{"details":"Return value ","returns":{"_0":"value of 'number'"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/52_EIP712/EIP712Storage.sol":"EIP712Storage"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"src/52_EIP712/EIP712Storage.sol":{"keccak256":"0x3b1c6f8f949201fb3bc6644dc2261e29f5e2791cfc11b524dfce98dc9484b565","urls":["bzz-raw://3bd7e5fcb561ba7e05734ddf82f0259a2f2d7eae1e8b81890acdd41b06c6abf8","dweb:/ipfs/QmQwsAUVgCpe4pMaryoZ59bGXoUrtPbjnQSkkvZnJPw2bD"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file diff --git a/out/ERC1155.sol/ERC1155.json b/out/ERC1155.sol/ERC1155.json index 7bf81c22..80045942 100644 --- a/out/ERC1155.sol/ERC1155.json +++ b/out/ERC1155.sol/ERC1155.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161295f38038061295f833981810160405281019061003191906101a4565b815f908161003f919061043b565b50806001908161004f919061043b565b50505061050a565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100b682610070565b810181811067ffffffffffffffff821117156100d5576100d4610080565b5b80604052505050565b5f6100e7610057565b90506100f382826100ad565b919050565b5f67ffffffffffffffff82111561011257610111610080565b5b61011b82610070565b9050602081019050919050565b8281835e5f83830152505050565b5f610148610143846100f8565b6100de565b9050828152602081018484840111156101645761016361006c565b5b61016f848285610128565b509392505050565b5f82601f83011261018b5761018a610068565b5b815161019b848260208601610136565b91505092915050565b5f5f604083850312156101ba576101b9610060565b5b5f83015167ffffffffffffffff8111156101d7576101d6610064565b5b6101e385828601610177565b925050602083015167ffffffffffffffff81111561020457610203610064565b5b61021085828601610177565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026857607f821691505b60208210810361027b5761027a610224565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a2565b6102e786836102a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032b610326610321846102ff565b610308565b6102ff565b9050919050565b5f819050919050565b61034483610311565b61035861035082610332565b8484546102ae565b825550505050565b5f5f905090565b61036f610360565b61037a81848461033b565b505050565b5f5b828110156103a0576103955f828401610367565b600181019050610381565b505050565b601f8211156103f357828211156103f2576103bf81610281565b6103c883610293565b6103d185610293565b60208610156103de575f90505b8083016103ed8284038261037f565b505050505b5b505050565b5f82821c905092915050565b5f6104135f19846008026103f8565b1980831691505092915050565b5f61042b8383610404565b9150826002028217905092915050565b6104448261021a565b67ffffffffffffffff81111561045d5761045c610080565b5b6104678254610251565b6104728282856103a5565b5f60209050601f8311600181146104a3575f8415610491578287015190505b61049b8582610420565b865550610502565b601f1984166104b186610281565b5f5b828110156104d8578489015182556001820191506020850194506020810190506104b3565b868310156104f557848901516104f1601f891682610404565b8355505b6001600288020188555050505b505050505050565b612448806105175f395ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f41461016957806395d89b4114610199578063a22cb465146101b7578063e985e9c5146101d3578063f242432a146102035761009b565b8062fdd58e1461009f57806301ffc9a7146100cf57806306fdde03146100ff5780630e89341c1461011d5780632eb2c2d61461014d575b5f5ffd5b6100b960048036038101906100b4919061143a565b61021f565b6040516100c69190611487565b60405180910390f35b6100e960048036038101906100e491906114f5565b6102e3565b6040516100f6919061153a565b60405180910390f35b61010761041c565b60405161011491906115c3565b60405180910390f35b610137600480360381019061013291906115e3565b6104a7565b60405161014491906115c3565b60405180910390f35b610167600480360381019061016291906117fe565b610503565b005b610183600480360381019061017e9190611989565b61086d565b6040516101909190611ab6565b60405180910390f35b6101a1610981565b6040516101ae91906115c3565b60405180910390f35b6101d160048036038101906101cc9190611b00565b610a0d565b005b6101ed60048036038101906101e89190611b3e565b610b73565b6040516101fa919061153a565b60405180910390f35b61021d60048036038101906102189190611b7c565b610c01565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361028e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028590611c7f565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ad57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041557507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461042890611cca565b80601f016020809104026020016040519081016040528092919081815260200182805461045490611cca565b801561049f5780601f106104765761010080835404028352916020019161049f565b820191905f5260205f20905b81548152906001019060200180831161048257829003601f168201915b505050505081565b60605f6104b2610ecf565b90505f8151116104d05760405180602001604052805f8152506104fb565b806104da84610ee5565b6040516020016104eb929190611d34565b6040516020818303038152906040525b915050919050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061054757506105468682610b73565b5b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611dc7565b60405180910390fd5b82518451146105ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c190611e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90611ee3565b60405180910390fd5b5f5f90505b84518110156107d8575f85828151811061065a57610659611f01565b5b602002602001015190505f85838151811061067857610677611f01565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c90611f9e565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107c39190611fe9565b9250508190555050505080600101905061063d565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161084f92919061201c565b60405180910390a461086581878787878761103e565b505050505050565b606081518351146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906120c1565b60405180910390fd5b5f835167ffffffffffffffff8111156108cf576108ce611612565b5b6040519080825280602002602001820160405280156108fd5781602001602082028036833780820191505090505b5090505f5f90505b84518110156109765761094c85828151811061092457610923611f01565b5b602002602001015185838151811061093f5761093e611f01565b5b602002602001015161021f565b82828151811061095f5761095e611f01565b5b602002602001018181525050806001019050610905565b508091505092915050565b6001805461098e90611cca565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba90611cca565b8015610a055780601f106109dc57610100808354040283529160200191610a05565b820191905f5260205f20905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a729061214f565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b67919061153a565b60405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610c455750610c448682610b73565b5b610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611dc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611ee3565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611f9e565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e339190611fe9565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610eb092919061216d565b60405180910390a4610ec68288888888886111ed565b50505050505050565b606060405180602001604052805f815250905090565b60605f8203610f2b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611039565b5f8290505f5b5f8214610f5a578080610f4390612194565b915050600a82610f539190612208565b9150610f31565b5f8167ffffffffffffffff811115610f7557610f74611612565b5b6040519080825280601f01601f191660200182016040528015610fa75781602001600182028036833780820191505090505b5090505b5f851461103257600182610fbf9190612238565b9150600a85610fce919061226b565b6030610fda9190611fe9565b60f81b818381518110610ff057610fef611f01565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561102b9190612208565b9450610fab565b8093505050505b919050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156111e5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161109e9594939291906122fc565b6020604051808303815f875af19250505080156110d957506040513d601f19601f820116820180604052508101906110d69190612376565b60015b61115a573d805f8114611107576040519150601f19603f3d011682016040523d82523d5f602084013e61110c565b606091505b505f81510361115257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161114991906123a1565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146111e357846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111da91906123a1565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611394578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161124d9594939291906123ba565b6020604051808303815f875af192505050801561128857506040513d601f19601f820116820180604052508101906112859190612376565b60015b611309573d805f81146112b6576040519150601f19603f3d011682016040523d82523d5f602084013e6112bb565b606091505b505f81510361130157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112f891906123a1565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461139257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161138991906123a1565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113d6826113ad565b9050919050565b6113e6816113cc565b81146113f0575f5ffd5b50565b5f81359050611401816113dd565b92915050565b5f819050919050565b61141981611407565b8114611423575f5ffd5b50565b5f8135905061143481611410565b92915050565b5f5f604083850312156114505761144f6113a5565b5b5f61145d858286016113f3565b925050602061146e85828601611426565b9150509250929050565b61148181611407565b82525050565b5f60208201905061149a5f830184611478565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d4816114a0565b81146114de575f5ffd5b50565b5f813590506114ef816114cb565b92915050565b5f6020828403121561150a576115096113a5565b5b5f611517848285016114e1565b91505092915050565b5f8115159050919050565b61153481611520565b82525050565b5f60208201905061154d5f83018461152b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61159582611553565b61159f818561155d565b93506115af81856020860161156d565b6115b88161157b565b840191505092915050565b5f6020820190508181035f8301526115db818461158b565b905092915050565b5f602082840312156115f8576115f76113a5565b5b5f61160584828501611426565b91505092915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116488261157b565b810181811067ffffffffffffffff8211171561166757611666611612565b5b80604052505050565b5f61167961139c565b9050611685828261163f565b919050565b5f67ffffffffffffffff8211156116a4576116a3611612565b5b602082029050602081019050919050565b5f5ffd5b5f6116cb6116c68461168a565b611670565b905080838252602082019050602084028301858111156116ee576116ed6116b5565b5b835b8181101561171757806117038882611426565b8452602084019350506020810190506116f0565b5050509392505050565b5f82601f8301126117355761173461160e565b5b81356117458482602086016116b9565b91505092915050565b5f5ffd5b5f67ffffffffffffffff82111561176c5761176b611612565b5b6117758261157b565b9050602081019050919050565b828183375f83830152505050565b5f6117a261179d84611752565b611670565b9050828152602081018484840111156117be576117bd61174e565b5b6117c9848285611782565b509392505050565b5f82601f8301126117e5576117e461160e565b5b81356117f5848260208601611790565b91505092915050565b5f5f5f5f5f60a08688031215611817576118166113a5565b5b5f611824888289016113f3565b9550506020611835888289016113f3565b945050604086013567ffffffffffffffff811115611856576118556113a9565b5b61186288828901611721565b935050606086013567ffffffffffffffff811115611883576118826113a9565b5b61188f88828901611721565b925050608086013567ffffffffffffffff8111156118b0576118af6113a9565b5b6118bc888289016117d1565b9150509295509295909350565b5f67ffffffffffffffff8211156118e3576118e2611612565b5b602082029050602081019050919050565b5f611906611901846118c9565b611670565b90508083825260208201905060208402830185811115611929576119286116b5565b5b835b81811015611952578061193e88826113f3565b84526020840193505060208101905061192b565b5050509392505050565b5f82601f8301126119705761196f61160e565b5b81356119808482602086016118f4565b91505092915050565b5f5f6040838503121561199f5761199e6113a5565b5b5f83013567ffffffffffffffff8111156119bc576119bb6113a9565b5b6119c88582860161195c565b925050602083013567ffffffffffffffff8111156119e9576119e86113a9565b5b6119f585828601611721565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a3181611407565b82525050565b5f611a428383611a28565b60208301905092915050565b5f602082019050919050565b5f611a64826119ff565b611a6e8185611a09565b9350611a7983611a19565b805f5b83811015611aa9578151611a908882611a37565b9750611a9b83611a4e565b925050600181019050611a7c565b5085935050505092915050565b5f6020820190508181035f830152611ace8184611a5a565b905092915050565b611adf81611520565b8114611ae9575f5ffd5b50565b5f81359050611afa81611ad6565b92915050565b5f5f60408385031215611b1657611b156113a5565b5b5f611b23858286016113f3565b9250506020611b3485828601611aec565b9150509250929050565b5f5f60408385031215611b5457611b536113a5565b5b5f611b61858286016113f3565b9250506020611b72858286016113f3565b9150509250929050565b5f5f5f5f5f60a08688031215611b9557611b946113a5565b5b5f611ba2888289016113f3565b9550506020611bb3888289016113f3565b9450506040611bc488828901611426565b9350506060611bd588828901611426565b925050608086013567ffffffffffffffff811115611bf657611bf56113a9565b5b611c02888289016117d1565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f611c69602a8361155d565b9150611c7482611c0f565b604082019050919050565b5f6020820190508181035f830152611c9681611c5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce157607f821691505b602082108103611cf457611cf3611c9d565b5b50919050565b5f81905092915050565b5f611d0e82611553565b611d188185611cfa565b9350611d2881856020860161156d565b80840191505092915050565b5f611d3f8285611d04565b9150611d4b8284611d04565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f611db1602f8361155d565b9150611dbc82611d57565b604082019050919050565b5f6020820190508181035f830152611dde81611da5565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f611e3f60288361155d565b9150611e4a82611de5565b604082019050919050565b5f6020820190508181035f830152611e6c81611e33565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ecd60258361155d565b9150611ed882611e73565b604082019050919050565b5f6020820190508181035f830152611efa81611ec1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f611f88602a8361155d565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ff382611407565b9150611ffe83611407565b925082820190508082111561201657612015611fbc565b5b92915050565b5f6040820190508181035f8301526120348185611a5a565b905081810360208301526120488184611a5a565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6120ab60298361155d565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61213960298361155d565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b5f6040820190506121805f830185611478565b61218d6020830184611478565b9392505050565b5f61219e82611407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d0576121cf611fbc565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61221282611407565b915061221d83611407565b92508261222d5761222c6121db565b5b828204905092915050565b5f61224282611407565b915061224d83611407565b925082820390508181111561226557612264611fbc565b5b92915050565b5f61227582611407565b915061228083611407565b9250826122905761228f6121db565b5b828206905092915050565b6122a4816113cc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6122ce826122aa565b6122d881856122b4565b93506122e881856020860161156d565b6122f18161157b565b840191505092915050565b5f60a08201905061230f5f83018861229b565b61231c602083018761229b565b818103604083015261232e8186611a5a565b905081810360608301526123428185611a5a565b9050818103608083015261235681846122c4565b90509695505050505050565b5f81519050612370816114cb565b92915050565b5f6020828403121561238b5761238a6113a5565b5b5f61239884828501612362565b91505092915050565b5f6020820190506123b45f83018461229b565b92915050565b5f60a0820190506123cd5f83018861229b565b6123da602083018761229b565b6123e76040830186611478565b6123f46060830185611478565b818103608083015261240681846122c4565b9050969550505050505056fea2646970667358221220aa1eb468b1a21bdd1dcbe8a8e06e2f822c829b2d18e4e68a56b0f9906b94777164736f6c63430008220033","sourceMap":"308:10919:96:-:0;;;900:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;973:5;966:4;:12;;;;;;:::i;:::-;;997:7;988:6;:16;;;;;;:::i;:::-;;900:111;;308:10919;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;308:10919:96:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f41461016957806395d89b4114610199578063a22cb465146101b7578063e985e9c5146101d3578063f242432a146102035761009b565b8062fdd58e1461009f57806301ffc9a7146100cf57806306fdde03146100ff5780630e89341c1461011d5780632eb2c2d61461014d575b5f5ffd5b6100b960048036038101906100b4919061143a565b61021f565b6040516100c69190611487565b60405180910390f35b6100e960048036038101906100e491906114f5565b6102e3565b6040516100f6919061153a565b60405180910390f35b61010761041c565b60405161011491906115c3565b60405180910390f35b610137600480360381019061013291906115e3565b6104a7565b60405161014491906115c3565b60405180910390f35b610167600480360381019061016291906117fe565b610503565b005b610183600480360381019061017e9190611989565b61086d565b6040516101909190611ab6565b60405180910390f35b6101a1610981565b6040516101ae91906115c3565b60405180910390f35b6101d160048036038101906101cc9190611b00565b610a0d565b005b6101ed60048036038101906101e89190611b3e565b610b73565b6040516101fa919061153a565b60405180910390f35b61021d60048036038101906102189190611b7c565b610c01565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361028e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028590611c7f565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ad57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041557507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461042890611cca565b80601f016020809104026020016040519081016040528092919081815260200182805461045490611cca565b801561049f5780601f106104765761010080835404028352916020019161049f565b820191905f5260205f20905b81548152906001019060200180831161048257829003601f168201915b505050505081565b60605f6104b2610ecf565b90505f8151116104d05760405180602001604052805f8152506104fb565b806104da84610ee5565b6040516020016104eb929190611d34565b6040516020818303038152906040525b915050919050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061054757506105468682610b73565b5b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611dc7565b60405180910390fd5b82518451146105ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c190611e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90611ee3565b60405180910390fd5b5f5f90505b84518110156107d8575f85828151811061065a57610659611f01565b5b602002602001015190505f85838151811061067857610677611f01565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c90611f9e565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107c39190611fe9565b9250508190555050505080600101905061063d565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161084f92919061201c565b60405180910390a461086581878787878761103e565b505050505050565b606081518351146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906120c1565b60405180910390fd5b5f835167ffffffffffffffff8111156108cf576108ce611612565b5b6040519080825280602002602001820160405280156108fd5781602001602082028036833780820191505090505b5090505f5f90505b84518110156109765761094c85828151811061092457610923611f01565b5b602002602001015185838151811061093f5761093e611f01565b5b602002602001015161021f565b82828151811061095f5761095e611f01565b5b602002602001018181525050806001019050610905565b508091505092915050565b6001805461098e90611cca565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba90611cca565b8015610a055780601f106109dc57610100808354040283529160200191610a05565b820191905f5260205f20905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a729061214f565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b67919061153a565b60405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610c455750610c448682610b73565b5b610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611dc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611ee3565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611f9e565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e339190611fe9565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610eb092919061216d565b60405180910390a4610ec68288888888886111ed565b50505050505050565b606060405180602001604052805f815250905090565b60605f8203610f2b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611039565b5f8290505f5b5f8214610f5a578080610f4390612194565b915050600a82610f539190612208565b9150610f31565b5f8167ffffffffffffffff811115610f7557610f74611612565b5b6040519080825280601f01601f191660200182016040528015610fa75781602001600182028036833780820191505090505b5090505b5f851461103257600182610fbf9190612238565b9150600a85610fce919061226b565b6030610fda9190611fe9565b60f81b818381518110610ff057610fef611f01565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561102b9190612208565b9450610fab565b8093505050505b919050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156111e5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161109e9594939291906122fc565b6020604051808303815f875af19250505080156110d957506040513d601f19601f820116820180604052508101906110d69190612376565b60015b61115a573d805f8114611107576040519150601f19603f3d011682016040523d82523d5f602084013e61110c565b606091505b505f81510361115257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161114991906123a1565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146111e357846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111da91906123a1565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611394578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161124d9594939291906123ba565b6020604051808303815f875af192505050801561128857506040513d601f19601f820116820180604052508101906112859190612376565b60015b611309573d805f81146112b6576040519150601f19603f3d011682016040523d82523d5f602084013e6112bb565b606091505b505f81510361130157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112f891906123a1565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461139257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161138991906123a1565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113d6826113ad565b9050919050565b6113e6816113cc565b81146113f0575f5ffd5b50565b5f81359050611401816113dd565b92915050565b5f819050919050565b61141981611407565b8114611423575f5ffd5b50565b5f8135905061143481611410565b92915050565b5f5f604083850312156114505761144f6113a5565b5b5f61145d858286016113f3565b925050602061146e85828601611426565b9150509250929050565b61148181611407565b82525050565b5f60208201905061149a5f830184611478565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d4816114a0565b81146114de575f5ffd5b50565b5f813590506114ef816114cb565b92915050565b5f6020828403121561150a576115096113a5565b5b5f611517848285016114e1565b91505092915050565b5f8115159050919050565b61153481611520565b82525050565b5f60208201905061154d5f83018461152b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61159582611553565b61159f818561155d565b93506115af81856020860161156d565b6115b88161157b565b840191505092915050565b5f6020820190508181035f8301526115db818461158b565b905092915050565b5f602082840312156115f8576115f76113a5565b5b5f61160584828501611426565b91505092915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116488261157b565b810181811067ffffffffffffffff8211171561166757611666611612565b5b80604052505050565b5f61167961139c565b9050611685828261163f565b919050565b5f67ffffffffffffffff8211156116a4576116a3611612565b5b602082029050602081019050919050565b5f5ffd5b5f6116cb6116c68461168a565b611670565b905080838252602082019050602084028301858111156116ee576116ed6116b5565b5b835b8181101561171757806117038882611426565b8452602084019350506020810190506116f0565b5050509392505050565b5f82601f8301126117355761173461160e565b5b81356117458482602086016116b9565b91505092915050565b5f5ffd5b5f67ffffffffffffffff82111561176c5761176b611612565b5b6117758261157b565b9050602081019050919050565b828183375f83830152505050565b5f6117a261179d84611752565b611670565b9050828152602081018484840111156117be576117bd61174e565b5b6117c9848285611782565b509392505050565b5f82601f8301126117e5576117e461160e565b5b81356117f5848260208601611790565b91505092915050565b5f5f5f5f5f60a08688031215611817576118166113a5565b5b5f611824888289016113f3565b9550506020611835888289016113f3565b945050604086013567ffffffffffffffff811115611856576118556113a9565b5b61186288828901611721565b935050606086013567ffffffffffffffff811115611883576118826113a9565b5b61188f88828901611721565b925050608086013567ffffffffffffffff8111156118b0576118af6113a9565b5b6118bc888289016117d1565b9150509295509295909350565b5f67ffffffffffffffff8211156118e3576118e2611612565b5b602082029050602081019050919050565b5f611906611901846118c9565b611670565b90508083825260208201905060208402830185811115611929576119286116b5565b5b835b81811015611952578061193e88826113f3565b84526020840193505060208101905061192b565b5050509392505050565b5f82601f8301126119705761196f61160e565b5b81356119808482602086016118f4565b91505092915050565b5f5f6040838503121561199f5761199e6113a5565b5b5f83013567ffffffffffffffff8111156119bc576119bb6113a9565b5b6119c88582860161195c565b925050602083013567ffffffffffffffff8111156119e9576119e86113a9565b5b6119f585828601611721565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a3181611407565b82525050565b5f611a428383611a28565b60208301905092915050565b5f602082019050919050565b5f611a64826119ff565b611a6e8185611a09565b9350611a7983611a19565b805f5b83811015611aa9578151611a908882611a37565b9750611a9b83611a4e565b925050600181019050611a7c565b5085935050505092915050565b5f6020820190508181035f830152611ace8184611a5a565b905092915050565b611adf81611520565b8114611ae9575f5ffd5b50565b5f81359050611afa81611ad6565b92915050565b5f5f60408385031215611b1657611b156113a5565b5b5f611b23858286016113f3565b9250506020611b3485828601611aec565b9150509250929050565b5f5f60408385031215611b5457611b536113a5565b5b5f611b61858286016113f3565b9250506020611b72858286016113f3565b9150509250929050565b5f5f5f5f5f60a08688031215611b9557611b946113a5565b5b5f611ba2888289016113f3565b9550506020611bb3888289016113f3565b9450506040611bc488828901611426565b9350506060611bd588828901611426565b925050608086013567ffffffffffffffff811115611bf657611bf56113a9565b5b611c02888289016117d1565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f611c69602a8361155d565b9150611c7482611c0f565b604082019050919050565b5f6020820190508181035f830152611c9681611c5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce157607f821691505b602082108103611cf457611cf3611c9d565b5b50919050565b5f81905092915050565b5f611d0e82611553565b611d188185611cfa565b9350611d2881856020860161156d565b80840191505092915050565b5f611d3f8285611d04565b9150611d4b8284611d04565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f611db1602f8361155d565b9150611dbc82611d57565b604082019050919050565b5f6020820190508181035f830152611dde81611da5565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f611e3f60288361155d565b9150611e4a82611de5565b604082019050919050565b5f6020820190508181035f830152611e6c81611e33565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ecd60258361155d565b9150611ed882611e73565b604082019050919050565b5f6020820190508181035f830152611efa81611ec1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f611f88602a8361155d565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ff382611407565b9150611ffe83611407565b925082820190508082111561201657612015611fbc565b5b92915050565b5f6040820190508181035f8301526120348185611a5a565b905081810360208301526120488184611a5a565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6120ab60298361155d565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61213960298361155d565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b5f6040820190506121805f830185611478565b61218d6020830184611478565b9392505050565b5f61219e82611407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d0576121cf611fbc565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61221282611407565b915061221d83611407565b92508261222d5761222c6121db565b5b828204905092915050565b5f61224282611407565b915061224d83611407565b925082820390508181111561226557612264611fbc565b5b92915050565b5f61227582611407565b915061228083611407565b9250826122905761228f6121db565b5b828206905092915050565b6122a4816113cc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6122ce826122aa565b6122d881856122b4565b93506122e881856020860161156d565b6122f18161157b565b840191505092915050565b5f60a08201905061230f5f83018861229b565b61231c602083018761229b565b818103604083015261232e8186611a5a565b905081810360608301526123428185611a5a565b9050818103608083015261235681846122c4565b90509695505050505050565b5f81519050612370816114cb565b92915050565b5f6020828403121561238b5761238a6113a5565b5b5f61239884828501612362565b91505092915050565b5f6020820190506123b45f83018461229b565b92915050565b5f60a0820190506123cd5f83018861229b565b6123da602083018761229b565b6123e76040830186611478565b6123f46060830185611478565b818103608083015261240681846122c4565b9050969550505050505056fea2646970667358221220aa1eb468b1a21bdd1dcbe8a8e06e2f822c829b2d18e4e68a56b0f9906b94777164736f6c63430008220033","sourceMap":"308:10919:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10786:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4775:1249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1840:481;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;486:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2490:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2843:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3354:1010;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1495:227;1581:7;1627:1;1608:21;;:7;:21;;;1600:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1693:9;:13;1703:2;1693:13;;;;;;;;;;;:22;1707:7;1693:22;;;;;;;;;;;;;;;;1686:29;;1495:227;;;;:::o;1078:292::-;1163:4;1213:26;1198:41;;;:11;:41;;;;:109;;;;1270:37;1255:52;;;:11;:52;;;;1198:109;:165;;;;1338:25;1323:40;;;:11;:40;;;;1198:165;1179:184;;1078:292;;;:::o;443:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10786:227::-;10849:13;10874:21;10898:10;:8;:10::i;:::-;10874:34;;10949:1;10931:7;10925:21;:25;:81;;;;;;;;;;;;;;;;;10977:7;10986:13;:2;:11;:13::i;:::-;10960:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10925:81;10918:88;;;10786:227;;;:::o;4775:1249::-;4979:16;4998:10;4979:29;;5095:8;5087:16;;:4;:16;;;:52;;;;5107:32;5124:4;5130:8;5107:16;:32::i;:::-;5087:52;5066:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;5244:7;:14;5230:3;:10;:28;5222:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:1;5321:16;;:2;:16;;;5313:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5436:9;5448:1;5436:13;;5431:411;5455:3;:10;5451:1;:14;5431:411;;;5486:10;5499:3;5503:1;5499:6;;;;;;;;:::i;:::-;;;;;;;;5486:19;;5519:14;5536:7;5544:1;5536:10;;;;;;;;:::i;:::-;;;;;;;;5519:27;;5561:19;5583:9;:13;5593:2;5583:13;;;;;;;;;;;:19;5597:4;5583:19;;;;;;;;;;;;;;;;5561:41;;5639:6;5624:11;:21;;5616:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5770:6;5756:11;:20;5734:9;:13;5744:2;5734:13;;;;;;;;;;;:19;5748:4;5734:19;;;;;;;;;;;;;;;:42;;;;5825:6;5804:9;:13;5814:2;5804:13;;;;;;;;;;;:17;5818:2;5804:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5472:370;;;5467:3;;;;;5431:411;;;;5887:2;5857:47;;5881:4;5857:47;;5871:8;5857:47;;;5891:3;5896:7;5857:47;;;;;;;:::i;:::-;;;;;;;;5938:75;5974:8;5984:4;5990:2;5994:3;5999:7;6008:4;5938:35;:75::i;:::-;4969:1055;4775:1249;;;;;:::o;1840:481::-;1967:16;2026:3;:10;2007:8;:15;:29;1999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;2092:30;2139:8;:15;2125:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:63;;2170:9;2182:1;2170:13;;2165:120;2189:8;:15;2185:1;:19;2165:120;;;2244:30;2254:8;2263:1;2254:11;;;;;;;;:::i;:::-;;;;;;;;2267:3;2271:1;2267:6;;;;;;;;:::i;:::-;;;;;;;;2244:9;:30::i;:::-;2225:13;2239:1;2225:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;2206:3;;;;;2165:120;;;;2301:13;2294:20;;;1840:481;;;;:::o;486:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2490:299::-;2606:8;2592:22;;:10;:22;;;2584:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2713:8;2670:18;:30;2689:10;2670:30;;;;;;;;;;;;;;;:40;2701:8;2670:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2763:8;2736:46;;2751:10;2736:46;;;2773:8;2736:46;;;;;;:::i;:::-;;;;;;;;2490:299;;:::o;2843:166::-;2942:4;2965:18;:27;2984:7;2965:27;;;;;;;;;;;;;;;:37;2993:8;2965:37;;;;;;;;;;;;;;;;;;;;;;;;;2958:44;;2843:166;;;;:::o;3354:1010::-;3533:16;3552:10;3533:29;;3649:8;3641:16;;:4;:16;;;:52;;;;3661:32;3678:4;3684:8;3661:16;:32::i;:::-;3641:52;3620:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;3798:1;3784:16;;:2;:16;;;3776:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3889:19;3911:9;:13;3921:2;3911:13;;;;;;;;;;;:19;3925:4;3911:19;;;;;;;;;;;;;;;;3889:41;;3963:6;3948:11;:21;;3940:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4113:6;4099:11;:20;4077:9;:13;4087:2;4077:13;;;;;;;;;;;:19;4091:4;4077:19;;;;;;;;;;;;;;;:42;;;;4160:6;4139:9;:13;4149:2;4139:13;;;;;;;;;;;:17;4153:2;4139:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4236:2;4205:46;;4230:4;4205:46;;4220:8;4205:46;;;4240:2;4244:6;4205:46;;;;;;;:::i;:::-;;;;;;;;4285:68;4316:8;4326:4;4332:2;4336;4340:6;4348:4;4285:30;:68::i;:::-;3523:841;;3354:1010;;;;;:::o;11133:92::-;11184:13;11209:9;;;;;;;;;;;;;;11133:92;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;9722:949:96:-;9971:1;9954:2;:14;;;:18;9950:715;;;10009:2;9992:43;;;10036:8;10046:4;10052:3;10057:7;10066:4;9992:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9988:667;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:1;10351:6;:13;:18;10347:294;;10423:2;10400:26;;;;;;;;;;;:::i;:::-;;;;;;;;10347:294;10593:6;10587:13;10578:6;10574:2;10570:15;10563:38;9988:667;10162:48;;;10150:60;;;:8;:60;;;;10146:140;;10264:2;10241:26;;;;;;;;;;;:::i;:::-;;;;;;;;10146:140;10072:228;9950:715;9722:949;;;;;;:::o;8787:882::-;9011:1;8994:2;:14;;;:18;8990:673;;;9049:2;9032:38;;;9071:8;9081:4;9087:2;9091:6;9099:4;9032:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9028:625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:1;9349:6;:13;:18;9345:294;;9421:2;9398:26;;;;;;;;;;;:::i;:::-;;;;;;;;9345:294;9591:6;9585:13;9576:6;9572:2;9568:15;9561:38;9028:625;9165:43;;;9153:55;;;:8;:55;;;;9149:135;;9262:2;9239:26;;;;;;;;;;;:::i;:::-;;;;;;;;9149:135;9105:193;8990:673;8787:882;;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:99::-;3265:6;3299:5;3293:12;3283:22;;3213:99;;;:::o;3318:169::-;3402:11;3436:6;3431:3;3424:19;3476:4;3471:3;3467:14;3452:29;;3318:169;;;;:::o;3493:139::-;3582:6;3577:3;3572;3566:23;3623:1;3614:6;3609:3;3605:16;3598:27;3493:139;;;:::o;3638:102::-;3679:6;3730:2;3726:7;3721:2;3714:5;3710:14;3706:28;3696:38;;3638:102;;;:::o;3746:377::-;3834:3;3862:39;3895:5;3862:39;:::i;:::-;3917:71;3981:6;3976:3;3917:71;:::i;:::-;3910:78;;3997:65;4055:6;4050:3;4043:4;4036:5;4032:16;3997:65;:::i;:::-;4087:29;4109:6;4087:29;:::i;:::-;4082:3;4078:39;4071:46;;3838:285;3746:377;;;;:::o;4129:313::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4329:9;4323:4;4319:20;4315:1;4304:9;4300:17;4293:47;4357:78;4430:4;4421:6;4357:78;:::i;:::-;4349:86;;4129:313;;;;:::o;4448:329::-;4507:6;4556:2;4544:9;4535:7;4531:23;4527:32;4524:119;;;4562:79;;:::i;:::-;4524:119;4682:1;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4653:117;4448:329;;;;:::o;4783:117::-;4892:1;4889;4882:12;4906:180;4954:77;4951:1;4944:88;5051:4;5048:1;5041:15;5075:4;5072:1;5065:15;5092:281;5175:27;5197:4;5175:27;:::i;:::-;5167:6;5163:40;5305:6;5293:10;5290:22;5269:18;5257:10;5254:34;5251:62;5248:88;;;5316:18;;:::i;:::-;5248:88;5356:10;5352:2;5345:22;5135:238;5092:281;;:::o;5379:129::-;5413:6;5440:20;;:::i;:::-;5430:30;;5469:33;5497:4;5489:6;5469:33;:::i;:::-;5379:129;;;:::o;5514:311::-;5591:4;5681:18;5673:6;5670:30;5667:56;;;5703:18;;:::i;:::-;5667:56;5753:4;5745:6;5741:17;5733:25;;5813:4;5807;5803:15;5795:23;;5514:311;;;:::o;5831:117::-;5940:1;5937;5930:12;5971:710;6067:5;6092:81;6108:64;6165:6;6108:64;:::i;:::-;6092:81;:::i;:::-;6083:90;;6193:5;6222:6;6215:5;6208:21;6256:4;6249:5;6245:16;6238:23;;6309:4;6301:6;6297:17;6289:6;6285:30;6338:3;6330:6;6327:15;6324:122;;;6357:79;;:::i;:::-;6324:122;6472:6;6455:220;6489:6;6484:3;6481:15;6455:220;;;6564:3;6593:37;6626:3;6614:10;6593:37;:::i;:::-;6588:3;6581:50;6660:4;6655:3;6651:14;6644:21;;6531:144;6515:4;6510:3;6506:14;6499:21;;6455:220;;;6459:21;6073:608;;5971:710;;;;;:::o;6704:370::-;6775:5;6824:3;6817:4;6809:6;6805:17;6801:27;6791:122;;6832:79;;:::i;:::-;6791:122;6949:6;6936:20;6974:94;7064:3;7056:6;7049:4;7041:6;7037:17;6974:94;:::i;:::-;6965:103;;6781:293;6704:370;;;;:::o;7080:117::-;7189:1;7186;7179:12;7203:307;7264:4;7354:18;7346:6;7343:30;7340:56;;;7376:18;;:::i;:::-;7340:56;7414:29;7436:6;7414:29;:::i;:::-;7406:37;;7498:4;7492;7488:15;7480:23;;7203:307;;;:::o;7516:148::-;7614:6;7609:3;7604;7591:30;7655:1;7646:6;7641:3;7637:16;7630:27;7516:148;;;:::o;7670:423::-;7747:5;7772:65;7788:48;7829:6;7788:48;:::i;:::-;7772:65;:::i;:::-;7763:74;;7860:6;7853:5;7846:21;7898:4;7891:5;7887:16;7936:3;7927:6;7922:3;7918:16;7915:25;7912:112;;;7943:79;;:::i;:::-;7912:112;8033:54;8080:6;8075:3;8070;8033:54;:::i;:::-;7753:340;7670:423;;;;;:::o;8112:338::-;8167:5;8216:3;8209:4;8201:6;8197:17;8193:27;8183:122;;8224:79;;:::i;:::-;8183:122;8341:6;8328:20;8366:78;8440:3;8432:6;8425:4;8417:6;8413:17;8366:78;:::i;:::-;8357:87;;8173:277;8112:338;;;;:::o;8456:1509::-;8610:6;8618;8626;8634;8642;8691:3;8679:9;8670:7;8666:23;8662:33;8659:120;;;8698:79;;:::i;:::-;8659:120;8818:1;8843:53;8888:7;8879:6;8868:9;8864:22;8843:53;:::i;:::-;8833:63;;8789:117;8945:2;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8916:118;9101:2;9090:9;9086:18;9073:32;9132:18;9124:6;9121:30;9118:117;;;9154:79;;:::i;:::-;9118:117;9259:78;9329:7;9320:6;9309:9;9305:22;9259:78;:::i;:::-;9249:88;;9044:303;9414:2;9403:9;9399:18;9386:32;9445:18;9437:6;9434:30;9431:117;;;9467:79;;:::i;:::-;9431:117;9572:78;9642:7;9633:6;9622:9;9618:22;9572:78;:::i;:::-;9562:88;;9357:303;9727:3;9716:9;9712:19;9699:33;9759:18;9751:6;9748:30;9745:117;;;9781:79;;:::i;:::-;9745:117;9886:62;9940:7;9931:6;9920:9;9916:22;9886:62;:::i;:::-;9876:72;;9670:288;8456:1509;;;;;;;;:::o;9971:311::-;10048:4;10138:18;10130:6;10127:30;10124:56;;;10160:18;;:::i;:::-;10124:56;10210:4;10202:6;10198:17;10190:25;;10270:4;10264;10260:15;10252:23;;9971:311;;;:::o;10305:710::-;10401:5;10426:81;10442:64;10499:6;10442:64;:::i;:::-;10426:81;:::i;:::-;10417:90;;10527:5;10556:6;10549:5;10542:21;10590:4;10583:5;10579:16;10572:23;;10643:4;10635:6;10631:17;10623:6;10619:30;10672:3;10664:6;10661:15;10658:122;;;10691:79;;:::i;:::-;10658:122;10806:6;10789:220;10823:6;10818:3;10815:15;10789:220;;;10898:3;10927:37;10960:3;10948:10;10927:37;:::i;:::-;10922:3;10915:50;10994:4;10989:3;10985:14;10978:21;;10865:144;10849:4;10844:3;10840:14;10833:21;;10789:220;;;10793:21;10407:608;;10305:710;;;;;:::o;11038:370::-;11109:5;11158:3;11151:4;11143:6;11139:17;11135:27;11125:122;;11166:79;;:::i;:::-;11125:122;11283:6;11270:20;11308:94;11398:3;11390:6;11383:4;11375:6;11371:17;11308:94;:::i;:::-;11299:103;;11115:293;11038:370;;;;:::o;11414:894::-;11532:6;11540;11589:2;11577:9;11568:7;11564:23;11560:32;11557:119;;;11595:79;;:::i;:::-;11557:119;11743:1;11732:9;11728:17;11715:31;11773:18;11765:6;11762:30;11759:117;;;11795:79;;:::i;:::-;11759:117;11900:78;11970:7;11961:6;11950:9;11946:22;11900:78;:::i;:::-;11890:88;;11686:302;12055:2;12044:9;12040:18;12027:32;12086:18;12078:6;12075:30;12072:117;;;12108:79;;:::i;:::-;12072:117;12213:78;12283:7;12274:6;12263:9;12259:22;12213:78;:::i;:::-;12203:88;;11998:303;11414:894;;;;;:::o;12314:114::-;12381:6;12415:5;12409:12;12399:22;;12314:114;;;:::o;12434:184::-;12533:11;12567:6;12562:3;12555:19;12607:4;12602:3;12598:14;12583:29;;12434:184;;;;:::o;12624:132::-;12691:4;12714:3;12706:11;;12744:4;12739:3;12735:14;12727:22;;12624:132;;;:::o;12762:108::-;12839:24;12857:5;12839:24;:::i;:::-;12834:3;12827:37;12762:108;;:::o;12876:179::-;12945:10;12966:46;13008:3;13000:6;12966:46;:::i;:::-;13044:4;13039:3;13035:14;13021:28;;12876:179;;;;:::o;13061:113::-;13131:4;13163;13158:3;13154:14;13146:22;;13061:113;;;:::o;13210:732::-;13329:3;13358:54;13406:5;13358:54;:::i;:::-;13428:86;13507:6;13502:3;13428:86;:::i;:::-;13421:93;;13538:56;13588:5;13538:56;:::i;:::-;13617:7;13648:1;13633:284;13658:6;13655:1;13652:13;13633:284;;;13734:6;13728:13;13761:63;13820:3;13805:13;13761:63;:::i;:::-;13754:70;;13847:60;13900:6;13847:60;:::i;:::-;13837:70;;13693:224;13680:1;13677;13673:9;13668:14;;13633:284;;;13637:14;13933:3;13926:10;;13334:608;;;13210:732;;;;:::o;13948:373::-;14091:4;14129:2;14118:9;14114:18;14106:26;;14178:9;14172:4;14168:20;14164:1;14153:9;14149:17;14142:47;14206:108;14309:4;14300:6;14206:108;:::i;:::-;14198:116;;13948:373;;;;:::o;14327:116::-;14397:21;14412:5;14397:21;:::i;:::-;14390:5;14387:32;14377:60;;14433:1;14430;14423:12;14377:60;14327:116;:::o;14449:133::-;14492:5;14530:6;14517:20;14508:29;;14546:30;14570:5;14546:30;:::i;:::-;14449:133;;;;:::o;14588:468::-;14653:6;14661;14710:2;14698:9;14689:7;14685:23;14681:32;14678:119;;;14716:79;;:::i;:::-;14678:119;14836:1;14861:53;14906:7;14897:6;14886:9;14882:22;14861:53;:::i;:::-;14851:63;;14807:117;14963:2;14989:50;15031:7;15022:6;15011:9;15007:22;14989:50;:::i;:::-;14979:60;;14934:115;14588:468;;;;;:::o;15062:474::-;15130:6;15138;15187:2;15175:9;15166:7;15162:23;15158:32;15155:119;;;15193:79;;:::i;:::-;15155:119;15313:1;15338:53;15383:7;15374:6;15363:9;15359:22;15338:53;:::i;:::-;15328:63;;15284:117;15440:2;15466:53;15511:7;15502:6;15491:9;15487:22;15466:53;:::i;:::-;15456:63;;15411:118;15062:474;;;;;:::o;15542:1089::-;15646:6;15654;15662;15670;15678;15727:3;15715:9;15706:7;15702:23;15698:33;15695:120;;;15734:79;;:::i;:::-;15695:120;15854:1;15879:53;15924:7;15915:6;15904:9;15900:22;15879:53;:::i;:::-;15869:63;;15825:117;15981:2;16007:53;16052:7;16043:6;16032:9;16028:22;16007:53;:::i;:::-;15997:63;;15952:118;16109:2;16135:53;16180:7;16171:6;16160:9;16156:22;16135:53;:::i;:::-;16125:63;;16080:118;16237:2;16263:53;16308:7;16299:6;16288:9;16284:22;16263:53;:::i;:::-;16253:63;;16208:118;16393:3;16382:9;16378:19;16365:33;16425:18;16417:6;16414:30;16411:117;;;16447:79;;:::i;:::-;16411:117;16552:62;16606:7;16597:6;16586:9;16582:22;16552:62;:::i;:::-;16542:72;;16336:288;15542:1089;;;;;;;;:::o;16637:229::-;16777:34;16773:1;16765:6;16761:14;16754:58;16846:12;16841:2;16833:6;16829:15;16822:37;16637:229;:::o;16872:366::-;17014:3;17035:67;17099:2;17094:3;17035:67;:::i;:::-;17028:74;;17111:93;17200:3;17111:93;:::i;:::-;17229:2;17224:3;17220:12;17213:19;;16872:366;;;:::o;17244:419::-;17410:4;17448:2;17437:9;17433:18;17425:26;;17497:9;17491:4;17487:20;17483:1;17472:9;17468:17;17461:47;17525:131;17651:4;17525:131;:::i;:::-;17517:139;;17244:419;;;:::o;17669:180::-;17717:77;17714:1;17707:88;17814:4;17811:1;17804:15;17838:4;17835:1;17828:15;17855:320;17899:6;17936:1;17930:4;17926:12;17916:22;;17983:1;17977:4;17973:12;18004:18;17994:81;;18060:4;18052:6;18048:17;18038:27;;17994:81;18122:2;18114:6;18111:14;18091:18;18088:38;18085:84;;18141:18;;:::i;:::-;18085:84;17906:269;17855:320;;;:::o;18181:148::-;18283:11;18320:3;18305:18;;18181:148;;;;:::o;18335:390::-;18441:3;18469:39;18502:5;18469:39;:::i;:::-;18524:89;18606:6;18601:3;18524:89;:::i;:::-;18517:96;;18622:65;18680:6;18675:3;18668:4;18661:5;18657:16;18622:65;:::i;:::-;18712:6;18707:3;18703:16;18696:23;;18445:280;18335:390;;;;:::o;18731:435::-;18911:3;18933:95;19024:3;19015:6;18933:95;:::i;:::-;18926:102;;19045:95;19136:3;19127:6;19045:95;:::i;:::-;19038:102;;19157:3;19150:10;;18731:435;;;;;:::o;19172:234::-;19312:34;19308:1;19300:6;19296:14;19289:58;19381:17;19376:2;19368:6;19364:15;19357:42;19172:234;:::o;19412:366::-;19554:3;19575:67;19639:2;19634:3;19575:67;:::i;:::-;19568:74;;19651:93;19740:3;19651:93;:::i;:::-;19769:2;19764:3;19760:12;19753:19;;19412:366;;;:::o;19784:419::-;19950:4;19988:2;19977:9;19973:18;19965:26;;20037:9;20031:4;20027:20;20023:1;20012:9;20008:17;20001:47;20065:131;20191:4;20065:131;:::i;:::-;20057:139;;19784:419;;;:::o;20209:227::-;20349:34;20345:1;20337:6;20333:14;20326:58;20418:10;20413:2;20405:6;20401:15;20394:35;20209:227;:::o;20442:366::-;20584:3;20605:67;20669:2;20664:3;20605:67;:::i;:::-;20598:74;;20681:93;20770:3;20681:93;:::i;:::-;20799:2;20794:3;20790:12;20783:19;;20442:366;;;:::o;20814:419::-;20980:4;21018:2;21007:9;21003:18;20995:26;;21067:9;21061:4;21057:20;21053:1;21042:9;21038:17;21031:47;21095:131;21221:4;21095:131;:::i;:::-;21087:139;;20814:419;;;:::o;21239:224::-;21379:34;21375:1;21367:6;21363:14;21356:58;21448:7;21443:2;21435:6;21431:15;21424:32;21239:224;:::o;21469:366::-;21611:3;21632:67;21696:2;21691:3;21632:67;:::i;:::-;21625:74;;21708:93;21797:3;21708:93;:::i;:::-;21826:2;21821:3;21817:12;21810:19;;21469:366;;;:::o;21841:419::-;22007:4;22045:2;22034:9;22030:18;22022:26;;22094:9;22088:4;22084:20;22080:1;22069:9;22065:17;22058:47;22122:131;22248:4;22122:131;:::i;:::-;22114:139;;21841:419;;;:::o;22266:180::-;22314:77;22311:1;22304:88;22411:4;22408:1;22401:15;22435:4;22432:1;22425:15;22452:229;22592:34;22588:1;22580:6;22576:14;22569:58;22661:12;22656:2;22648:6;22644:15;22637:37;22452:229;:::o;22687:366::-;22829:3;22850:67;22914:2;22909:3;22850:67;:::i;:::-;22843:74;;22926:93;23015:3;22926:93;:::i;:::-;23044:2;23039:3;23035:12;23028:19;;22687:366;;;:::o;23059:419::-;23225:4;23263:2;23252:9;23248:18;23240:26;;23312:9;23306:4;23302:20;23298:1;23287:9;23283:17;23276:47;23340:131;23466:4;23340:131;:::i;:::-;23332:139;;23059:419;;;:::o;23484:180::-;23532:77;23529:1;23522:88;23629:4;23626:1;23619:15;23653:4;23650:1;23643:15;23670:191;23710:3;23729:20;23747:1;23729:20;:::i;:::-;23724:25;;23763:20;23781:1;23763:20;:::i;:::-;23758:25;;23806:1;23803;23799:9;23792:16;;23827:3;23824:1;23821:10;23818:36;;;23834:18;;:::i;:::-;23818:36;23670:191;;;;:::o;23867:634::-;24088:4;24126:2;24115:9;24111:18;24103:26;;24175:9;24169:4;24165:20;24161:1;24150:9;24146:17;24139:47;24203:108;24306:4;24297:6;24203:108;:::i;:::-;24195:116;;24358:9;24352:4;24348:20;24343:2;24332:9;24328:18;24321:48;24386:108;24489:4;24480:6;24386:108;:::i;:::-;24378:116;;23867:634;;;;;:::o;24507:228::-;24647:34;24643:1;24635:6;24631:14;24624:58;24716:11;24711:2;24703:6;24699:15;24692:36;24507:228;:::o;24741:366::-;24883:3;24904:67;24968:2;24963:3;24904:67;:::i;:::-;24897:74;;24980:93;25069:3;24980:93;:::i;:::-;25098:2;25093:3;25089:12;25082:19;;24741:366;;;:::o;25113:419::-;25279:4;25317:2;25306:9;25302:18;25294:26;;25366:9;25360:4;25356:20;25352:1;25341:9;25337:17;25330:47;25394:131;25520:4;25394:131;:::i;:::-;25386:139;;25113:419;;;:::o;25538:228::-;25678:34;25674:1;25666:6;25662:14;25655:58;25747:11;25742:2;25734:6;25730:15;25723:36;25538:228;:::o;25772:366::-;25914:3;25935:67;25999:2;25994:3;25935:67;:::i;:::-;25928:74;;26011:93;26100:3;26011:93;:::i;:::-;26129:2;26124:3;26120:12;26113:19;;25772:366;;;:::o;26144:419::-;26310:4;26348:2;26337:9;26333:18;26325:26;;26397:9;26391:4;26387:20;26383:1;26372:9;26368:17;26361:47;26425:131;26551:4;26425:131;:::i;:::-;26417:139;;26144:419;;;:::o;26569:332::-;26690:4;26728:2;26717:9;26713:18;26705:26;;26741:71;26809:1;26798:9;26794:17;26785:6;26741:71;:::i;:::-;26822:72;26890:2;26879:9;26875:18;26866:6;26822:72;:::i;:::-;26569:332;;;;;:::o;26907:233::-;26946:3;26969:24;26987:5;26969:24;:::i;:::-;26960:33;;27015:66;27008:5;27005:77;27002:103;;27085:18;;:::i;:::-;27002:103;27132:1;27125:5;27121:13;27114:20;;26907:233;;;:::o;27146:180::-;27194:77;27191:1;27184:88;27291:4;27288:1;27281:15;27315:4;27312:1;27305:15;27332:185;27372:1;27389:20;27407:1;27389:20;:::i;:::-;27384:25;;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27462:1;27452:35;;27467:18;;:::i;:::-;27452:35;27509:1;27506;27502:9;27497:14;;27332:185;;;;:::o;27523:194::-;27563:4;27583:20;27601:1;27583:20;:::i;:::-;27578:25;;27617:20;27635:1;27617:20;:::i;:::-;27612:25;;27661:1;27658;27654:9;27646:17;;27685:1;27679:4;27676:11;27673:37;;;27690:18;;:::i;:::-;27673:37;27523:194;;;;:::o;27723:176::-;27755:1;27772:20;27790:1;27772:20;:::i;:::-;27767:25;;27806:20;27824:1;27806:20;:::i;:::-;27801:25;;27845:1;27835:35;;27850:18;;:::i;:::-;27835:35;27891:1;27888;27884:9;27879:14;;27723:176;;;;:::o;27905:118::-;27992:24;28010:5;27992:24;:::i;:::-;27987:3;27980:37;27905:118;;:::o;28029:98::-;28080:6;28114:5;28108:12;28098:22;;28029:98;;;:::o;28133:168::-;28216:11;28250:6;28245:3;28238:19;28290:4;28285:3;28281:14;28266:29;;28133:168;;;;:::o;28307:373::-;28393:3;28421:38;28453:5;28421:38;:::i;:::-;28475:70;28538:6;28533:3;28475:70;:::i;:::-;28468:77;;28554:65;28612:6;28607:3;28600:4;28593:5;28589:16;28554:65;:::i;:::-;28644:29;28666:6;28644:29;:::i;:::-;28639:3;28635:39;28628:46;;28397:283;28307:373;;;;:::o;28686:1053::-;29009:4;29047:3;29036:9;29032:19;29024:27;;29061:71;29129:1;29118:9;29114:17;29105:6;29061:71;:::i;:::-;29142:72;29210:2;29199:9;29195:18;29186:6;29142:72;:::i;:::-;29261:9;29255:4;29251:20;29246:2;29235:9;29231:18;29224:48;29289:108;29392:4;29383:6;29289:108;:::i;:::-;29281:116;;29444:9;29438:4;29434:20;29429:2;29418:9;29414:18;29407:48;29472:108;29575:4;29566:6;29472:108;:::i;:::-;29464:116;;29628:9;29622:4;29618:20;29612:3;29601:9;29597:19;29590:49;29656:76;29727:4;29718:6;29656:76;:::i;:::-;29648:84;;28686:1053;;;;;;;;:::o;29745:141::-;29801:5;29832:6;29826:13;29817:22;;29848:32;29874:5;29848:32;:::i;:::-;29745:141;;;;:::o;29892:349::-;29961:6;30010:2;29998:9;29989:7;29985:23;29981:32;29978:119;;;30016:79;;:::i;:::-;29978:119;30136:1;30161:63;30216:7;30207:6;30196:9;30192:22;30161:63;:::i;:::-;30151:73;;30107:127;29892:349;;;;:::o;30247:222::-;30340:4;30378:2;30367:9;30363:18;30355:26;;30391:71;30459:1;30448:9;30444:17;30435:6;30391:71;:::i;:::-;30247:222;;;;:::o;30475:751::-;30698:4;30736:3;30725:9;30721:19;30713:27;;30750:71;30818:1;30807:9;30803:17;30794:6;30750:71;:::i;:::-;30831:72;30899:2;30888:9;30884:18;30875:6;30831:72;:::i;:::-;30913;30981:2;30970:9;30966:18;30957:6;30913:72;:::i;:::-;30995;31063:2;31052:9;31048:18;31039:6;30995:72;:::i;:::-;31115:9;31109:4;31105:20;31099:3;31088:9;31084:19;31077:49;31143:76;31214:4;31205:6;31143:76;:::i;:::-;31135:84;;30475:751;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u591a\\u4ee3\\u5e01\\u6807\\u51c6 \\u89c1 https://eips.ethereum.org/EIPS/eip-1155\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2 \\u5b9e\\u73b0IERC1155\\u7684balanceOf\\uff0c\\u8fd4\\u56deaccount\\u5730\\u5740\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u6301\\u4ed3\\u91cf\\u3002\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2 \\u8981\\u6c42: - `accounts` \\u548c `ids` \\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49.\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u67e5\\u8be2\\u6279\\u91cf\\u6388\\u6743.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amounts`\\u6570\\u7ec4\\u5355\\u4f4d\\u7684`ids`\\u6570\\u7ec4\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155BatchReceived. - ids\\u548camounts\\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d\\u7684`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155Received.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u8c03\\u7528\\u8005\\u6388\\u6743operator\\u4f7f\\u7528\\u5176\\u6240\\u6709\\u4ee3\\u5e01 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6 \\u6761\\u4ef6\\uff1amsg.sender != operator\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56deERC1155\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684uri\\uff0c\\u5b58\\u50a8metadata\\uff0c\\u7c7b\\u4f3cERC721\\u7684tokenURI.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316`name` \\u548c`symbol`, uri_\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/40_ERC1155/ERC1155.sol\":{\"keccak256\":\"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a\",\"dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询 实现IERC1155的balanceOf,返回account地址的id种类代币持仓量。"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询 要求: - `accounts` 和 `ids` 数组长度相等."},"isApprovedForAll(address,address)":{"details":"查询批量授权."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账,将`amounts`数组单位的`ids`数组种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155BatchReceived. - ids和amounts数组长度相等"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位的`id`种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155Received."},"setApprovalForAll(address,bool)":{"details":"批量授权,调用者授权operator使用其所有代币 释放{ApprovalForAll}事件 条件:msg.sender != operator"},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"uri(uint256)":{"details":"返回ERC1155的id种类代币的uri,存储metadata,类似ERC721的tokenURI."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"构造函数,初始化`name` 和`symbol`, uri_"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/ERC1155.sol":"ERC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/40_ERC1155/ERC1155.sol":{"keccak256":"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c","urls":["bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a","dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161295f38038061295f833981810160405281019061003191906101a4565b815f908161003f919061043b565b50806001908161004f919061043b565b50505061050a565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100b682610070565b810181811067ffffffffffffffff821117156100d5576100d4610080565b5b80604052505050565b5f6100e7610057565b90506100f382826100ad565b919050565b5f67ffffffffffffffff82111561011257610111610080565b5b61011b82610070565b9050602081019050919050565b8281835e5f83830152505050565b5f610148610143846100f8565b6100de565b9050828152602081018484840111156101645761016361006c565b5b61016f848285610128565b509392505050565b5f82601f83011261018b5761018a610068565b5b815161019b848260208601610136565b91505092915050565b5f5f604083850312156101ba576101b9610060565b5b5f83015167ffffffffffffffff8111156101d7576101d6610064565b5b6101e385828601610177565b925050602083015167ffffffffffffffff81111561020457610203610064565b5b61021085828601610177565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026857607f821691505b60208210810361027b5761027a610224565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a2565b6102e786836102a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032b610326610321846102ff565b610308565b6102ff565b9050919050565b5f819050919050565b61034483610311565b61035861035082610332565b8484546102ae565b825550505050565b5f5f905090565b61036f610360565b61037a81848461033b565b505050565b5f5b828110156103a0576103955f828401610367565b600181019050610381565b505050565b601f8211156103f357828211156103f2576103bf81610281565b6103c883610293565b6103d185610293565b60208610156103de575f90505b8083016103ed8284038261037f565b505050505b5b505050565b5f82821c905092915050565b5f6104135f19846008026103f8565b1980831691505092915050565b5f61042b8383610404565b9150826002028217905092915050565b6104448261021a565b67ffffffffffffffff81111561045d5761045c610080565b5b6104678254610251565b6104728282856103a5565b5f60209050601f8311600181146104a3575f8415610491578287015190505b61049b8582610420565b865550610502565b601f1984166104b186610281565b5f5b828110156104d8578489015182556001820191506020850194506020810190506104b3565b868310156104f557848901516104f1601f891682610404565b8355505b6001600288020188555050505b505050505050565b612448806105175f395ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f41461016957806395d89b4114610199578063a22cb465146101b7578063e985e9c5146101d3578063f242432a146102035761009b565b8062fdd58e1461009f57806301ffc9a7146100cf57806306fdde03146100ff5780630e89341c1461011d5780632eb2c2d61461014d575b5f5ffd5b6100b960048036038101906100b4919061143a565b61021f565b6040516100c69190611487565b60405180910390f35b6100e960048036038101906100e491906114f5565b6102e3565b6040516100f6919061153a565b60405180910390f35b61010761041c565b60405161011491906115c3565b60405180910390f35b610137600480360381019061013291906115e3565b6104a7565b60405161014491906115c3565b60405180910390f35b610167600480360381019061016291906117fe565b610503565b005b610183600480360381019061017e9190611989565b61086d565b6040516101909190611ab6565b60405180910390f35b6101a1610981565b6040516101ae91906115c3565b60405180910390f35b6101d160048036038101906101cc9190611b00565b610a0d565b005b6101ed60048036038101906101e89190611b3e565b610b73565b6040516101fa919061153a565b60405180910390f35b61021d60048036038101906102189190611b7c565b610c01565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361028e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028590611c7f565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ad57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041557507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461042890611cca565b80601f016020809104026020016040519081016040528092919081815260200182805461045490611cca565b801561049f5780601f106104765761010080835404028352916020019161049f565b820191905f5260205f20905b81548152906001019060200180831161048257829003601f168201915b505050505081565b60605f6104b2610ecf565b90505f8151116104d05760405180602001604052805f8152506104fb565b806104da84610ee5565b6040516020016104eb929190611d34565b6040516020818303038152906040525b915050919050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061054757506105468682610b73565b5b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611dc7565b60405180910390fd5b82518451146105ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c190611e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90611ee3565b60405180910390fd5b5f5f90505b84518110156107d8575f85828151811061065a57610659611f01565b5b602002602001015190505f85838151811061067857610677611f01565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c90611f9e565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107c39190611fe9565b9250508190555050505080600101905061063d565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161084f92919061201c565b60405180910390a461086581878787878761103e565b505050505050565b606081518351146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906120c1565b60405180910390fd5b5f835167ffffffffffffffff8111156108cf576108ce611612565b5b6040519080825280602002602001820160405280156108fd5781602001602082028036833780820191505090505b5090505f5f90505b84518110156109765761094c85828151811061092457610923611f01565b5b602002602001015185838151811061093f5761093e611f01565b5b602002602001015161021f565b82828151811061095f5761095e611f01565b5b602002602001018181525050806001019050610905565b508091505092915050565b6001805461098e90611cca565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba90611cca565b8015610a055780601f106109dc57610100808354040283529160200191610a05565b820191905f5260205f20905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a729061214f565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b67919061153a565b60405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610c455750610c448682610b73565b5b610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611dc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611ee3565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611f9e565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e339190611fe9565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610eb092919061216d565b60405180910390a4610ec68288888888886111ed565b50505050505050565b606060405180602001604052805f815250905090565b60605f8203610f2b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611039565b5f8290505f5b5f8214610f5a578080610f4390612194565b915050600a82610f539190612208565b9150610f31565b5f8167ffffffffffffffff811115610f7557610f74611612565b5b6040519080825280601f01601f191660200182016040528015610fa75781602001600182028036833780820191505090505b5090505b5f851461103257600182610fbf9190612238565b9150600a85610fce919061226b565b6030610fda9190611fe9565b60f81b818381518110610ff057610fef611f01565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561102b9190612208565b9450610fab565b8093505050505b919050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156111e5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161109e9594939291906122fc565b6020604051808303815f875af19250505080156110d957506040513d601f19601f820116820180604052508101906110d69190612376565b60015b61115a573d805f8114611107576040519150601f19603f3d011682016040523d82523d5f602084013e61110c565b606091505b505f81510361115257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161114991906123a1565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146111e357846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111da91906123a1565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611394578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161124d9594939291906123ba565b6020604051808303815f875af192505050801561128857506040513d601f19601f820116820180604052508101906112859190612376565b60015b611309573d805f81146112b6576040519150601f19603f3d011682016040523d82523d5f602084013e6112bb565b606091505b505f81510361130157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112f891906123a1565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461139257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161138991906123a1565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113d6826113ad565b9050919050565b6113e6816113cc565b81146113f0575f5ffd5b50565b5f81359050611401816113dd565b92915050565b5f819050919050565b61141981611407565b8114611423575f5ffd5b50565b5f8135905061143481611410565b92915050565b5f5f604083850312156114505761144f6113a5565b5b5f61145d858286016113f3565b925050602061146e85828601611426565b9150509250929050565b61148181611407565b82525050565b5f60208201905061149a5f830184611478565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d4816114a0565b81146114de575f5ffd5b50565b5f813590506114ef816114cb565b92915050565b5f6020828403121561150a576115096113a5565b5b5f611517848285016114e1565b91505092915050565b5f8115159050919050565b61153481611520565b82525050565b5f60208201905061154d5f83018461152b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61159582611553565b61159f818561155d565b93506115af81856020860161156d565b6115b88161157b565b840191505092915050565b5f6020820190508181035f8301526115db818461158b565b905092915050565b5f602082840312156115f8576115f76113a5565b5b5f61160584828501611426565b91505092915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116488261157b565b810181811067ffffffffffffffff8211171561166757611666611612565b5b80604052505050565b5f61167961139c565b9050611685828261163f565b919050565b5f67ffffffffffffffff8211156116a4576116a3611612565b5b602082029050602081019050919050565b5f5ffd5b5f6116cb6116c68461168a565b611670565b905080838252602082019050602084028301858111156116ee576116ed6116b5565b5b835b8181101561171757806117038882611426565b8452602084019350506020810190506116f0565b5050509392505050565b5f82601f8301126117355761173461160e565b5b81356117458482602086016116b9565b91505092915050565b5f5ffd5b5f67ffffffffffffffff82111561176c5761176b611612565b5b6117758261157b565b9050602081019050919050565b828183375f83830152505050565b5f6117a261179d84611752565b611670565b9050828152602081018484840111156117be576117bd61174e565b5b6117c9848285611782565b509392505050565b5f82601f8301126117e5576117e461160e565b5b81356117f5848260208601611790565b91505092915050565b5f5f5f5f5f60a08688031215611817576118166113a5565b5b5f611824888289016113f3565b9550506020611835888289016113f3565b945050604086013567ffffffffffffffff811115611856576118556113a9565b5b61186288828901611721565b935050606086013567ffffffffffffffff811115611883576118826113a9565b5b61188f88828901611721565b925050608086013567ffffffffffffffff8111156118b0576118af6113a9565b5b6118bc888289016117d1565b9150509295509295909350565b5f67ffffffffffffffff8211156118e3576118e2611612565b5b602082029050602081019050919050565b5f611906611901846118c9565b611670565b90508083825260208201905060208402830185811115611929576119286116b5565b5b835b81811015611952578061193e88826113f3565b84526020840193505060208101905061192b565b5050509392505050565b5f82601f8301126119705761196f61160e565b5b81356119808482602086016118f4565b91505092915050565b5f5f6040838503121561199f5761199e6113a5565b5b5f83013567ffffffffffffffff8111156119bc576119bb6113a9565b5b6119c88582860161195c565b925050602083013567ffffffffffffffff8111156119e9576119e86113a9565b5b6119f585828601611721565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a3181611407565b82525050565b5f611a428383611a28565b60208301905092915050565b5f602082019050919050565b5f611a64826119ff565b611a6e8185611a09565b9350611a7983611a19565b805f5b83811015611aa9578151611a908882611a37565b9750611a9b83611a4e565b925050600181019050611a7c565b5085935050505092915050565b5f6020820190508181035f830152611ace8184611a5a565b905092915050565b611adf81611520565b8114611ae9575f5ffd5b50565b5f81359050611afa81611ad6565b92915050565b5f5f60408385031215611b1657611b156113a5565b5b5f611b23858286016113f3565b9250506020611b3485828601611aec565b9150509250929050565b5f5f60408385031215611b5457611b536113a5565b5b5f611b61858286016113f3565b9250506020611b72858286016113f3565b9150509250929050565b5f5f5f5f5f60a08688031215611b9557611b946113a5565b5b5f611ba2888289016113f3565b9550506020611bb3888289016113f3565b9450506040611bc488828901611426565b9350506060611bd588828901611426565b925050608086013567ffffffffffffffff811115611bf657611bf56113a9565b5b611c02888289016117d1565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f611c69602a8361155d565b9150611c7482611c0f565b604082019050919050565b5f6020820190508181035f830152611c9681611c5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce157607f821691505b602082108103611cf457611cf3611c9d565b5b50919050565b5f81905092915050565b5f611d0e82611553565b611d188185611cfa565b9350611d2881856020860161156d565b80840191505092915050565b5f611d3f8285611d04565b9150611d4b8284611d04565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f611db1602f8361155d565b9150611dbc82611d57565b604082019050919050565b5f6020820190508181035f830152611dde81611da5565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f611e3f60288361155d565b9150611e4a82611de5565b604082019050919050565b5f6020820190508181035f830152611e6c81611e33565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ecd60258361155d565b9150611ed882611e73565b604082019050919050565b5f6020820190508181035f830152611efa81611ec1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f611f88602a8361155d565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ff382611407565b9150611ffe83611407565b925082820190508082111561201657612015611fbc565b5b92915050565b5f6040820190508181035f8301526120348185611a5a565b905081810360208301526120488184611a5a565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6120ab60298361155d565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61213960298361155d565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b5f6040820190506121805f830185611478565b61218d6020830184611478565b9392505050565b5f61219e82611407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d0576121cf611fbc565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61221282611407565b915061221d83611407565b92508261222d5761222c6121db565b5b828204905092915050565b5f61224282611407565b915061224d83611407565b925082820390508181111561226557612264611fbc565b5b92915050565b5f61227582611407565b915061228083611407565b9250826122905761228f6121db565b5b828206905092915050565b6122a4816113cc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6122ce826122aa565b6122d881856122b4565b93506122e881856020860161156d565b6122f18161157b565b840191505092915050565b5f60a08201905061230f5f83018861229b565b61231c602083018761229b565b818103604083015261232e8186611a5a565b905081810360608301526123428185611a5a565b9050818103608083015261235681846122c4565b90509695505050505050565b5f81519050612370816114cb565b92915050565b5f6020828403121561238b5761238a6113a5565b5b5f61239884828501612362565b91505092915050565b5f6020820190506123b45f83018461229b565b92915050565b5f60a0820190506123cd5f83018861229b565b6123da602083018761229b565b6123e76040830186611478565b6123f46060830185611478565b818103608083015261240681846122c4565b9050969550505050505056fea2646970667358221220aa1eb468b1a21bdd1dcbe8a8e06e2f822c829b2d18e4e68a56b0f9906b94777164736f6c63430008220033","sourceMap":"308:10919:90:-:0;;;900:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;973:5;966:4;:12;;;;;;:::i;:::-;;997:7;988:6;:16;;;;;;:::i;:::-;;900:111;;308:10919;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;308:10919:90:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f41461016957806395d89b4114610199578063a22cb465146101b7578063e985e9c5146101d3578063f242432a146102035761009b565b8062fdd58e1461009f57806301ffc9a7146100cf57806306fdde03146100ff5780630e89341c1461011d5780632eb2c2d61461014d575b5f5ffd5b6100b960048036038101906100b4919061143a565b61021f565b6040516100c69190611487565b60405180910390f35b6100e960048036038101906100e491906114f5565b6102e3565b6040516100f6919061153a565b60405180910390f35b61010761041c565b60405161011491906115c3565b60405180910390f35b610137600480360381019061013291906115e3565b6104a7565b60405161014491906115c3565b60405180910390f35b610167600480360381019061016291906117fe565b610503565b005b610183600480360381019061017e9190611989565b61086d565b6040516101909190611ab6565b60405180910390f35b6101a1610981565b6040516101ae91906115c3565b60405180910390f35b6101d160048036038101906101cc9190611b00565b610a0d565b005b6101ed60048036038101906101e89190611b3e565b610b73565b6040516101fa919061153a565b60405180910390f35b61021d60048036038101906102189190611b7c565b610c01565b005b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361028e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028590611c7f565b60405180910390fd5b60025f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ad57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041557507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461042890611cca565b80601f016020809104026020016040519081016040528092919081815260200182805461045490611cca565b801561049f5780601f106104765761010080835404028352916020019161049f565b820191905f5260205f20905b81548152906001019060200180831161048257829003601f168201915b505050505081565b60605f6104b2610ecf565b90505f8151116104d05760405180602001604052805f8152506104fb565b806104da84610ee5565b6040516020016104eb929190611d34565b6040516020818303038152906040525b915050919050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061054757506105468682610b73565b5b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90611dc7565b60405180910390fd5b82518451146105ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c190611e55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062f90611ee3565b60405180910390fd5b5f5f90505b84518110156107d8575f85828151811061065a57610659611f01565b5b602002602001015190505f85838151811061067857610677611f01565b5b602002602001015190505f60025f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070c90611f9e565b60405180910390fd5b81810360025f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107c39190611fe9565b9250508190555050505080600101905061063d565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161084f92919061201c565b60405180910390a461086581878787878761103e565b505050505050565b606081518351146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906120c1565b60405180910390fd5b5f835167ffffffffffffffff8111156108cf576108ce611612565b5b6040519080825280602002602001820160405280156108fd5781602001602082028036833780820191505090505b5090505f5f90505b84518110156109765761094c85828151811061092457610923611f01565b5b602002602001015185838151811061093f5761093e611f01565b5b602002602001015161021f565b82828151811061095f5761095e611f01565b5b602002602001018181525050806001019050610905565b508091505092915050565b6001805461098e90611cca565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba90611cca565b8015610a055780601f106109dc57610100808354040283529160200191610a05565b820191905f5260205f20905b8154815290600101906020018083116109e857829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a729061214f565b60405180910390fd5b8060035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b67919061153a565b60405180910390a35050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f3390508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480610c455750610c448682610b73565b5b610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611dc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611ee3565b60405180910390fd5b5f60025f8681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611f9e565b60405180910390fd5b83810360025f8781526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508360025f8781526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e339190611fe9565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051610eb092919061216d565b60405180910390a4610ec68288888888886111ed565b50505050505050565b606060405180602001604052805f815250905090565b60605f8203610f2b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611039565b5f8290505f5b5f8214610f5a578080610f4390612194565b915050600a82610f539190612208565b9150610f31565b5f8167ffffffffffffffff811115610f7557610f74611612565b5b6040519080825280601f01601f191660200182016040528015610fa75781602001600182028036833780820191505090505b5090505b5f851461103257600182610fbf9190612238565b9150600a85610fce919061226b565b6030610fda9190611fe9565b60f81b818381518110610ff057610fef611f01565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561102b9190612208565b9450610fab565b8093505050505b919050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156111e5578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161109e9594939291906122fc565b6020604051808303815f875af19250505080156110d957506040513d601f19601f820116820180604052508101906110d69190612376565b60015b61115a573d805f8114611107576040519150601f19603f3d011682016040523d82523d5f602084013e61110c565b606091505b505f81510361115257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161114991906123a1565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146111e357846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111da91906123a1565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611394578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161124d9594939291906123ba565b6020604051808303815f875af192505050801561128857506040513d601f19601f820116820180604052508101906112859190612376565b60015b611309573d805f81146112b6576040519150601f19603f3d011682016040523d82523d5f602084013e6112bb565b606091505b505f81510361130157846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112f891906123a1565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461139257846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161138991906123a1565b60405180910390fd5b505b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113d6826113ad565b9050919050565b6113e6816113cc565b81146113f0575f5ffd5b50565b5f81359050611401816113dd565b92915050565b5f819050919050565b61141981611407565b8114611423575f5ffd5b50565b5f8135905061143481611410565b92915050565b5f5f604083850312156114505761144f6113a5565b5b5f61145d858286016113f3565b925050602061146e85828601611426565b9150509250929050565b61148181611407565b82525050565b5f60208201905061149a5f830184611478565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114d4816114a0565b81146114de575f5ffd5b50565b5f813590506114ef816114cb565b92915050565b5f6020828403121561150a576115096113a5565b5b5f611517848285016114e1565b91505092915050565b5f8115159050919050565b61153481611520565b82525050565b5f60208201905061154d5f83018461152b565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61159582611553565b61159f818561155d565b93506115af81856020860161156d565b6115b88161157b565b840191505092915050565b5f6020820190508181035f8301526115db818461158b565b905092915050565b5f602082840312156115f8576115f76113a5565b5b5f61160584828501611426565b91505092915050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116488261157b565b810181811067ffffffffffffffff8211171561166757611666611612565b5b80604052505050565b5f61167961139c565b9050611685828261163f565b919050565b5f67ffffffffffffffff8211156116a4576116a3611612565b5b602082029050602081019050919050565b5f5ffd5b5f6116cb6116c68461168a565b611670565b905080838252602082019050602084028301858111156116ee576116ed6116b5565b5b835b8181101561171757806117038882611426565b8452602084019350506020810190506116f0565b5050509392505050565b5f82601f8301126117355761173461160e565b5b81356117458482602086016116b9565b91505092915050565b5f5ffd5b5f67ffffffffffffffff82111561176c5761176b611612565b5b6117758261157b565b9050602081019050919050565b828183375f83830152505050565b5f6117a261179d84611752565b611670565b9050828152602081018484840111156117be576117bd61174e565b5b6117c9848285611782565b509392505050565b5f82601f8301126117e5576117e461160e565b5b81356117f5848260208601611790565b91505092915050565b5f5f5f5f5f60a08688031215611817576118166113a5565b5b5f611824888289016113f3565b9550506020611835888289016113f3565b945050604086013567ffffffffffffffff811115611856576118556113a9565b5b61186288828901611721565b935050606086013567ffffffffffffffff811115611883576118826113a9565b5b61188f88828901611721565b925050608086013567ffffffffffffffff8111156118b0576118af6113a9565b5b6118bc888289016117d1565b9150509295509295909350565b5f67ffffffffffffffff8211156118e3576118e2611612565b5b602082029050602081019050919050565b5f611906611901846118c9565b611670565b90508083825260208201905060208402830185811115611929576119286116b5565b5b835b81811015611952578061193e88826113f3565b84526020840193505060208101905061192b565b5050509392505050565b5f82601f8301126119705761196f61160e565b5b81356119808482602086016118f4565b91505092915050565b5f5f6040838503121561199f5761199e6113a5565b5b5f83013567ffffffffffffffff8111156119bc576119bb6113a9565b5b6119c88582860161195c565b925050602083013567ffffffffffffffff8111156119e9576119e86113a9565b5b6119f585828601611721565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a3181611407565b82525050565b5f611a428383611a28565b60208301905092915050565b5f602082019050919050565b5f611a64826119ff565b611a6e8185611a09565b9350611a7983611a19565b805f5b83811015611aa9578151611a908882611a37565b9750611a9b83611a4e565b925050600181019050611a7c565b5085935050505092915050565b5f6020820190508181035f830152611ace8184611a5a565b905092915050565b611adf81611520565b8114611ae9575f5ffd5b50565b5f81359050611afa81611ad6565b92915050565b5f5f60408385031215611b1657611b156113a5565b5b5f611b23858286016113f3565b9250506020611b3485828601611aec565b9150509250929050565b5f5f60408385031215611b5457611b536113a5565b5b5f611b61858286016113f3565b9250506020611b72858286016113f3565b9150509250929050565b5f5f5f5f5f60a08688031215611b9557611b946113a5565b5b5f611ba2888289016113f3565b9550506020611bb3888289016113f3565b9450506040611bc488828901611426565b9350506060611bd588828901611426565b925050608086013567ffffffffffffffff811115611bf657611bf56113a9565b5b611c02888289016117d1565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f611c69602a8361155d565b9150611c7482611c0f565b604082019050919050565b5f6020820190508181035f830152611c9681611c5d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ce157607f821691505b602082108103611cf457611cf3611c9d565b5b50919050565b5f81905092915050565b5f611d0e82611553565b611d188185611cfa565b9350611d2881856020860161156d565b80840191505092915050565b5f611d3f8285611d04565b9150611d4b8284611d04565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206e6f7220617070726f7665640000000000000000000000000000000000602082015250565b5f611db1602f8361155d565b9150611dbc82611d57565b604082019050919050565b5f6020820190508181035f830152611dde81611da5565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f611e3f60288361155d565b9150611e4a82611de5565b604082019050919050565b5f6020820190508181035f830152611e6c81611e33565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611ecd60258361155d565b9150611ed882611e73565b604082019050919050565b5f6020820190508181035f830152611efa81611ec1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f611f88602a8361155d565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611ff382611407565b9150611ffe83611407565b925082820190508082111561201657612015611fbc565b5b92915050565b5f6040820190508181035f8301526120348185611a5a565b905081810360208301526120488184611a5a565b90509392505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6120ab60298361155d565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f61213960298361155d565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b5f6040820190506121805f830185611478565b61218d6020830184611478565b9392505050565b5f61219e82611407565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121d0576121cf611fbc565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61221282611407565b915061221d83611407565b92508261222d5761222c6121db565b5b828204905092915050565b5f61224282611407565b915061224d83611407565b925082820390508181111561226557612264611fbc565b5b92915050565b5f61227582611407565b915061228083611407565b9250826122905761228f6121db565b5b828206905092915050565b6122a4816113cc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6122ce826122aa565b6122d881856122b4565b93506122e881856020860161156d565b6122f18161157b565b840191505092915050565b5f60a08201905061230f5f83018861229b565b61231c602083018761229b565b818103604083015261232e8186611a5a565b905081810360608301526123428185611a5a565b9050818103608083015261235681846122c4565b90509695505050505050565b5f81519050612370816114cb565b92915050565b5f6020828403121561238b5761238a6113a5565b5b5f61239884828501612362565b91505092915050565b5f6020820190506123b45f83018461229b565b92915050565b5f60a0820190506123cd5f83018861229b565b6123da602083018761229b565b6123e76040830186611478565b6123f46060830185611478565b818103608083015261240681846122c4565b9050969550505050505056fea2646970667358221220aa1eb468b1a21bdd1dcbe8a8e06e2f822c829b2d18e4e68a56b0f9906b94777164736f6c63430008220033","sourceMap":"308:10919:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10786:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4775:1249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1840:481;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;486:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2490:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2843:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3354:1010;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1495:227;1581:7;1627:1;1608:21;;:7;:21;;;1600:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;1693:9;:13;1703:2;1693:13;;;;;;;;;;;:22;1707:7;1693:22;;;;;;;;;;;;;;;;1686:29;;1495:227;;;;:::o;1078:292::-;1163:4;1213:26;1198:41;;;:11;:41;;;;:109;;;;1270:37;1255:52;;;:11;:52;;;;1198:109;:165;;;;1338:25;1323:40;;;:11;:40;;;;1198:165;1179:184;;1078:292;;;:::o;443:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10786:227::-;10849:13;10874:21;10898:10;:8;:10::i;:::-;10874:34;;10949:1;10931:7;10925:21;:25;:81;;;;;;;;;;;;;;;;;10977:7;10986:13;:2;:11;:13::i;:::-;10960:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10925:81;10918:88;;;10786:227;;;:::o;4775:1249::-;4979:16;4998:10;4979:29;;5095:8;5087:16;;:4;:16;;;:52;;;;5107:32;5124:4;5130:8;5107:16;:32::i;:::-;5087:52;5066:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;5244:7;:14;5230:3;:10;:28;5222:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:1;5321:16;;:2;:16;;;5313:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5436:9;5448:1;5436:13;;5431:411;5455:3;:10;5451:1;:14;5431:411;;;5486:10;5499:3;5503:1;5499:6;;;;;;;;:::i;:::-;;;;;;;;5486:19;;5519:14;5536:7;5544:1;5536:10;;;;;;;;:::i;:::-;;;;;;;;5519:27;;5561:19;5583:9;:13;5593:2;5583:13;;;;;;;;;;;:19;5597:4;5583:19;;;;;;;;;;;;;;;;5561:41;;5639:6;5624:11;:21;;5616:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5770:6;5756:11;:20;5734:9;:13;5744:2;5734:13;;;;;;;;;;;:19;5748:4;5734:19;;;;;;;;;;;;;;;:42;;;;5825:6;5804:9;:13;5814:2;5804:13;;;;;;;;;;;:17;5818:2;5804:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5472:370;;;5467:3;;;;;5431:411;;;;5887:2;5857:47;;5881:4;5857:47;;5871:8;5857:47;;;5891:3;5896:7;5857:47;;;;;;;:::i;:::-;;;;;;;;5938:75;5974:8;5984:4;5990:2;5994:3;5999:7;6008:4;5938:35;:75::i;:::-;4969:1055;4775:1249;;;;;:::o;1840:481::-;1967:16;2026:3;:10;2007:8;:15;:29;1999:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;2092:30;2139:8;:15;2125:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:63;;2170:9;2182:1;2170:13;;2165:120;2189:8;:15;2185:1;:19;2165:120;;;2244:30;2254:8;2263:1;2254:11;;;;;;;;:::i;:::-;;;;;;;;2267:3;2271:1;2267:6;;;;;;;;:::i;:::-;;;;;;;;2244:9;:30::i;:::-;2225:13;2239:1;2225:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;2206:3;;;;;2165:120;;;;2301:13;2294:20;;;1840:481;;;;:::o;486:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2490:299::-;2606:8;2592:22;;:10;:22;;;2584:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;2713:8;2670:18;:30;2689:10;2670:30;;;;;;;;;;;;;;;:40;2701:8;2670:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2763:8;2736:46;;2751:10;2736:46;;;2773:8;2736:46;;;;;;:::i;:::-;;;;;;;;2490:299;;:::o;2843:166::-;2942:4;2965:18;:27;2984:7;2965:27;;;;;;;;;;;;;;;:37;2993:8;2965:37;;;;;;;;;;;;;;;;;;;;;;;;;2958:44;;2843:166;;;;:::o;3354:1010::-;3533:16;3552:10;3533:29;;3649:8;3641:16;;:4;:16;;;:52;;;;3661:32;3678:4;3684:8;3661:16;:32::i;:::-;3641:52;3620:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;3798:1;3784:16;;:2;:16;;;3776:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;3889:19;3911:9;:13;3921:2;3911:13;;;;;;;;;;;:19;3925:4;3911:19;;;;;;;;;;;;;;;;3889:41;;3963:6;3948:11;:21;;3940:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;4113:6;4099:11;:20;4077:9;:13;4087:2;4077:13;;;;;;;;;;;:19;4091:4;4077:19;;;;;;;;;;;;;;;:42;;;;4160:6;4139:9;:13;4149:2;4139:13;;;;;;;;;;;:17;4153:2;4139:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;4236:2;4205:46;;4230:4;4205:46;;4220:8;4205:46;;;4240:2;4244:6;4205:46;;;;;;;:::i;:::-;;;;;;;;4285:68;4316:8;4326:4;4332:2;4336;4340:6;4348:4;4285:30;:68::i;:::-;3523:841;;3354:1010;;;;;:::o;11133:92::-;11184:13;11209:9;;;;;;;;;;;;;;11133:92;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;9722:949:90:-;9971:1;9954:2;:14;;;:18;9950:715;;;10009:2;9992:43;;;10036:8;10046:4;10052:3;10057:7;10066:4;9992:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9988:667;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:1;10351:6;:13;:18;10347:294;;10423:2;10400:26;;;;;;;;;;;:::i;:::-;;;;;;;;10347:294;10593:6;10587:13;10578:6;10574:2;10570:15;10563:38;9988:667;10162:48;;;10150:60;;;:8;:60;;;;10146:140;;10264:2;10241:26;;;;;;;;;;;:::i;:::-;;;;;;;;10146:140;10072:228;9950:715;9722:949;;;;;;:::o;8787:882::-;9011:1;8994:2;:14;;;:18;8990:673;;;9049:2;9032:38;;;9071:8;9081:4;9087:2;9091:6;9099:4;9032:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;9028:625;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9366:1;9349:6;:13;:18;9345:294;;9421:2;9398:26;;;;;;;;;;;:::i;:::-;;;;;;;;9345:294;9591:6;9585:13;9576:6;9572:2;9568:15;9561:38;9028:625;9165:43;;;9153:55;;;:8;:55;;;;9149:135;;9262:2;9239:26;;;;;;;;;;;:::i;:::-;;;;;;;;9149:135;9105:193;8990:673;8787:882;;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:99::-;3265:6;3299:5;3293:12;3283:22;;3213:99;;;:::o;3318:169::-;3402:11;3436:6;3431:3;3424:19;3476:4;3471:3;3467:14;3452:29;;3318:169;;;;:::o;3493:139::-;3582:6;3577:3;3572;3566:23;3623:1;3614:6;3609:3;3605:16;3598:27;3493:139;;;:::o;3638:102::-;3679:6;3730:2;3726:7;3721:2;3714:5;3710:14;3706:28;3696:38;;3638:102;;;:::o;3746:377::-;3834:3;3862:39;3895:5;3862:39;:::i;:::-;3917:71;3981:6;3976:3;3917:71;:::i;:::-;3910:78;;3997:65;4055:6;4050:3;4043:4;4036:5;4032:16;3997:65;:::i;:::-;4087:29;4109:6;4087:29;:::i;:::-;4082:3;4078:39;4071:46;;3838:285;3746:377;;;;:::o;4129:313::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4329:9;4323:4;4319:20;4315:1;4304:9;4300:17;4293:47;4357:78;4430:4;4421:6;4357:78;:::i;:::-;4349:86;;4129:313;;;;:::o;4448:329::-;4507:6;4556:2;4544:9;4535:7;4531:23;4527:32;4524:119;;;4562:79;;:::i;:::-;4524:119;4682:1;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4653:117;4448:329;;;;:::o;4783:117::-;4892:1;4889;4882:12;4906:180;4954:77;4951:1;4944:88;5051:4;5048:1;5041:15;5075:4;5072:1;5065:15;5092:281;5175:27;5197:4;5175:27;:::i;:::-;5167:6;5163:40;5305:6;5293:10;5290:22;5269:18;5257:10;5254:34;5251:62;5248:88;;;5316:18;;:::i;:::-;5248:88;5356:10;5352:2;5345:22;5135:238;5092:281;;:::o;5379:129::-;5413:6;5440:20;;:::i;:::-;5430:30;;5469:33;5497:4;5489:6;5469:33;:::i;:::-;5379:129;;;:::o;5514:311::-;5591:4;5681:18;5673:6;5670:30;5667:56;;;5703:18;;:::i;:::-;5667:56;5753:4;5745:6;5741:17;5733:25;;5813:4;5807;5803:15;5795:23;;5514:311;;;:::o;5831:117::-;5940:1;5937;5930:12;5971:710;6067:5;6092:81;6108:64;6165:6;6108:64;:::i;:::-;6092:81;:::i;:::-;6083:90;;6193:5;6222:6;6215:5;6208:21;6256:4;6249:5;6245:16;6238:23;;6309:4;6301:6;6297:17;6289:6;6285:30;6338:3;6330:6;6327:15;6324:122;;;6357:79;;:::i;:::-;6324:122;6472:6;6455:220;6489:6;6484:3;6481:15;6455:220;;;6564:3;6593:37;6626:3;6614:10;6593:37;:::i;:::-;6588:3;6581:50;6660:4;6655:3;6651:14;6644:21;;6531:144;6515:4;6510:3;6506:14;6499:21;;6455:220;;;6459:21;6073:608;;5971:710;;;;;:::o;6704:370::-;6775:5;6824:3;6817:4;6809:6;6805:17;6801:27;6791:122;;6832:79;;:::i;:::-;6791:122;6949:6;6936:20;6974:94;7064:3;7056:6;7049:4;7041:6;7037:17;6974:94;:::i;:::-;6965:103;;6781:293;6704:370;;;;:::o;7080:117::-;7189:1;7186;7179:12;7203:307;7264:4;7354:18;7346:6;7343:30;7340:56;;;7376:18;;:::i;:::-;7340:56;7414:29;7436:6;7414:29;:::i;:::-;7406:37;;7498:4;7492;7488:15;7480:23;;7203:307;;;:::o;7516:148::-;7614:6;7609:3;7604;7591:30;7655:1;7646:6;7641:3;7637:16;7630:27;7516:148;;;:::o;7670:423::-;7747:5;7772:65;7788:48;7829:6;7788:48;:::i;:::-;7772:65;:::i;:::-;7763:74;;7860:6;7853:5;7846:21;7898:4;7891:5;7887:16;7936:3;7927:6;7922:3;7918:16;7915:25;7912:112;;;7943:79;;:::i;:::-;7912:112;8033:54;8080:6;8075:3;8070;8033:54;:::i;:::-;7753:340;7670:423;;;;;:::o;8112:338::-;8167:5;8216:3;8209:4;8201:6;8197:17;8193:27;8183:122;;8224:79;;:::i;:::-;8183:122;8341:6;8328:20;8366:78;8440:3;8432:6;8425:4;8417:6;8413:17;8366:78;:::i;:::-;8357:87;;8173:277;8112:338;;;;:::o;8456:1509::-;8610:6;8618;8626;8634;8642;8691:3;8679:9;8670:7;8666:23;8662:33;8659:120;;;8698:79;;:::i;:::-;8659:120;8818:1;8843:53;8888:7;8879:6;8868:9;8864:22;8843:53;:::i;:::-;8833:63;;8789:117;8945:2;8971:53;9016:7;9007:6;8996:9;8992:22;8971:53;:::i;:::-;8961:63;;8916:118;9101:2;9090:9;9086:18;9073:32;9132:18;9124:6;9121:30;9118:117;;;9154:79;;:::i;:::-;9118:117;9259:78;9329:7;9320:6;9309:9;9305:22;9259:78;:::i;:::-;9249:88;;9044:303;9414:2;9403:9;9399:18;9386:32;9445:18;9437:6;9434:30;9431:117;;;9467:79;;:::i;:::-;9431:117;9572:78;9642:7;9633:6;9622:9;9618:22;9572:78;:::i;:::-;9562:88;;9357:303;9727:3;9716:9;9712:19;9699:33;9759:18;9751:6;9748:30;9745:117;;;9781:79;;:::i;:::-;9745:117;9886:62;9940:7;9931:6;9920:9;9916:22;9886:62;:::i;:::-;9876:72;;9670:288;8456:1509;;;;;;;;:::o;9971:311::-;10048:4;10138:18;10130:6;10127:30;10124:56;;;10160:18;;:::i;:::-;10124:56;10210:4;10202:6;10198:17;10190:25;;10270:4;10264;10260:15;10252:23;;9971:311;;;:::o;10305:710::-;10401:5;10426:81;10442:64;10499:6;10442:64;:::i;:::-;10426:81;:::i;:::-;10417:90;;10527:5;10556:6;10549:5;10542:21;10590:4;10583:5;10579:16;10572:23;;10643:4;10635:6;10631:17;10623:6;10619:30;10672:3;10664:6;10661:15;10658:122;;;10691:79;;:::i;:::-;10658:122;10806:6;10789:220;10823:6;10818:3;10815:15;10789:220;;;10898:3;10927:37;10960:3;10948:10;10927:37;:::i;:::-;10922:3;10915:50;10994:4;10989:3;10985:14;10978:21;;10865:144;10849:4;10844:3;10840:14;10833:21;;10789:220;;;10793:21;10407:608;;10305:710;;;;;:::o;11038:370::-;11109:5;11158:3;11151:4;11143:6;11139:17;11135:27;11125:122;;11166:79;;:::i;:::-;11125:122;11283:6;11270:20;11308:94;11398:3;11390:6;11383:4;11375:6;11371:17;11308:94;:::i;:::-;11299:103;;11115:293;11038:370;;;;:::o;11414:894::-;11532:6;11540;11589:2;11577:9;11568:7;11564:23;11560:32;11557:119;;;11595:79;;:::i;:::-;11557:119;11743:1;11732:9;11728:17;11715:31;11773:18;11765:6;11762:30;11759:117;;;11795:79;;:::i;:::-;11759:117;11900:78;11970:7;11961:6;11950:9;11946:22;11900:78;:::i;:::-;11890:88;;11686:302;12055:2;12044:9;12040:18;12027:32;12086:18;12078:6;12075:30;12072:117;;;12108:79;;:::i;:::-;12072:117;12213:78;12283:7;12274:6;12263:9;12259:22;12213:78;:::i;:::-;12203:88;;11998:303;11414:894;;;;;:::o;12314:114::-;12381:6;12415:5;12409:12;12399:22;;12314:114;;;:::o;12434:184::-;12533:11;12567:6;12562:3;12555:19;12607:4;12602:3;12598:14;12583:29;;12434:184;;;;:::o;12624:132::-;12691:4;12714:3;12706:11;;12744:4;12739:3;12735:14;12727:22;;12624:132;;;:::o;12762:108::-;12839:24;12857:5;12839:24;:::i;:::-;12834:3;12827:37;12762:108;;:::o;12876:179::-;12945:10;12966:46;13008:3;13000:6;12966:46;:::i;:::-;13044:4;13039:3;13035:14;13021:28;;12876:179;;;;:::o;13061:113::-;13131:4;13163;13158:3;13154:14;13146:22;;13061:113;;;:::o;13210:732::-;13329:3;13358:54;13406:5;13358:54;:::i;:::-;13428:86;13507:6;13502:3;13428:86;:::i;:::-;13421:93;;13538:56;13588:5;13538:56;:::i;:::-;13617:7;13648:1;13633:284;13658:6;13655:1;13652:13;13633:284;;;13734:6;13728:13;13761:63;13820:3;13805:13;13761:63;:::i;:::-;13754:70;;13847:60;13900:6;13847:60;:::i;:::-;13837:70;;13693:224;13680:1;13677;13673:9;13668:14;;13633:284;;;13637:14;13933:3;13926:10;;13334:608;;;13210:732;;;;:::o;13948:373::-;14091:4;14129:2;14118:9;14114:18;14106:26;;14178:9;14172:4;14168:20;14164:1;14153:9;14149:17;14142:47;14206:108;14309:4;14300:6;14206:108;:::i;:::-;14198:116;;13948:373;;;;:::o;14327:116::-;14397:21;14412:5;14397:21;:::i;:::-;14390:5;14387:32;14377:60;;14433:1;14430;14423:12;14377:60;14327:116;:::o;14449:133::-;14492:5;14530:6;14517:20;14508:29;;14546:30;14570:5;14546:30;:::i;:::-;14449:133;;;;:::o;14588:468::-;14653:6;14661;14710:2;14698:9;14689:7;14685:23;14681:32;14678:119;;;14716:79;;:::i;:::-;14678:119;14836:1;14861:53;14906:7;14897:6;14886:9;14882:22;14861:53;:::i;:::-;14851:63;;14807:117;14963:2;14989:50;15031:7;15022:6;15011:9;15007:22;14989:50;:::i;:::-;14979:60;;14934:115;14588:468;;;;;:::o;15062:474::-;15130:6;15138;15187:2;15175:9;15166:7;15162:23;15158:32;15155:119;;;15193:79;;:::i;:::-;15155:119;15313:1;15338:53;15383:7;15374:6;15363:9;15359:22;15338:53;:::i;:::-;15328:63;;15284:117;15440:2;15466:53;15511:7;15502:6;15491:9;15487:22;15466:53;:::i;:::-;15456:63;;15411:118;15062:474;;;;;:::o;15542:1089::-;15646:6;15654;15662;15670;15678;15727:3;15715:9;15706:7;15702:23;15698:33;15695:120;;;15734:79;;:::i;:::-;15695:120;15854:1;15879:53;15924:7;15915:6;15904:9;15900:22;15879:53;:::i;:::-;15869:63;;15825:117;15981:2;16007:53;16052:7;16043:6;16032:9;16028:22;16007:53;:::i;:::-;15997:63;;15952:118;16109:2;16135:53;16180:7;16171:6;16160:9;16156:22;16135:53;:::i;:::-;16125:63;;16080:118;16237:2;16263:53;16308:7;16299:6;16288:9;16284:22;16263:53;:::i;:::-;16253:63;;16208:118;16393:3;16382:9;16378:19;16365:33;16425:18;16417:6;16414:30;16411:117;;;16447:79;;:::i;:::-;16411:117;16552:62;16606:7;16597:6;16586:9;16582:22;16552:62;:::i;:::-;16542:72;;16336:288;15542:1089;;;;;;;;:::o;16637:229::-;16777:34;16773:1;16765:6;16761:14;16754:58;16846:12;16841:2;16833:6;16829:15;16822:37;16637:229;:::o;16872:366::-;17014:3;17035:67;17099:2;17094:3;17035:67;:::i;:::-;17028:74;;17111:93;17200:3;17111:93;:::i;:::-;17229:2;17224:3;17220:12;17213:19;;16872:366;;;:::o;17244:419::-;17410:4;17448:2;17437:9;17433:18;17425:26;;17497:9;17491:4;17487:20;17483:1;17472:9;17468:17;17461:47;17525:131;17651:4;17525:131;:::i;:::-;17517:139;;17244:419;;;:::o;17669:180::-;17717:77;17714:1;17707:88;17814:4;17811:1;17804:15;17838:4;17835:1;17828:15;17855:320;17899:6;17936:1;17930:4;17926:12;17916:22;;17983:1;17977:4;17973:12;18004:18;17994:81;;18060:4;18052:6;18048:17;18038:27;;17994:81;18122:2;18114:6;18111:14;18091:18;18088:38;18085:84;;18141:18;;:::i;:::-;18085:84;17906:269;17855:320;;;:::o;18181:148::-;18283:11;18320:3;18305:18;;18181:148;;;;:::o;18335:390::-;18441:3;18469:39;18502:5;18469:39;:::i;:::-;18524:89;18606:6;18601:3;18524:89;:::i;:::-;18517:96;;18622:65;18680:6;18675:3;18668:4;18661:5;18657:16;18622:65;:::i;:::-;18712:6;18707:3;18703:16;18696:23;;18445:280;18335:390;;;;:::o;18731:435::-;18911:3;18933:95;19024:3;19015:6;18933:95;:::i;:::-;18926:102;;19045:95;19136:3;19127:6;19045:95;:::i;:::-;19038:102;;19157:3;19150:10;;18731:435;;;;;:::o;19172:234::-;19312:34;19308:1;19300:6;19296:14;19289:58;19381:17;19376:2;19368:6;19364:15;19357:42;19172:234;:::o;19412:366::-;19554:3;19575:67;19639:2;19634:3;19575:67;:::i;:::-;19568:74;;19651:93;19740:3;19651:93;:::i;:::-;19769:2;19764:3;19760:12;19753:19;;19412:366;;;:::o;19784:419::-;19950:4;19988:2;19977:9;19973:18;19965:26;;20037:9;20031:4;20027:20;20023:1;20012:9;20008:17;20001:47;20065:131;20191:4;20065:131;:::i;:::-;20057:139;;19784:419;;;:::o;20209:227::-;20349:34;20345:1;20337:6;20333:14;20326:58;20418:10;20413:2;20405:6;20401:15;20394:35;20209:227;:::o;20442:366::-;20584:3;20605:67;20669:2;20664:3;20605:67;:::i;:::-;20598:74;;20681:93;20770:3;20681:93;:::i;:::-;20799:2;20794:3;20790:12;20783:19;;20442:366;;;:::o;20814:419::-;20980:4;21018:2;21007:9;21003:18;20995:26;;21067:9;21061:4;21057:20;21053:1;21042:9;21038:17;21031:47;21095:131;21221:4;21095:131;:::i;:::-;21087:139;;20814:419;;;:::o;21239:224::-;21379:34;21375:1;21367:6;21363:14;21356:58;21448:7;21443:2;21435:6;21431:15;21424:32;21239:224;:::o;21469:366::-;21611:3;21632:67;21696:2;21691:3;21632:67;:::i;:::-;21625:74;;21708:93;21797:3;21708:93;:::i;:::-;21826:2;21821:3;21817:12;21810:19;;21469:366;;;:::o;21841:419::-;22007:4;22045:2;22034:9;22030:18;22022:26;;22094:9;22088:4;22084:20;22080:1;22069:9;22065:17;22058:47;22122:131;22248:4;22122:131;:::i;:::-;22114:139;;21841:419;;;:::o;22266:180::-;22314:77;22311:1;22304:88;22411:4;22408:1;22401:15;22435:4;22432:1;22425:15;22452:229;22592:34;22588:1;22580:6;22576:14;22569:58;22661:12;22656:2;22648:6;22644:15;22637:37;22452:229;:::o;22687:366::-;22829:3;22850:67;22914:2;22909:3;22850:67;:::i;:::-;22843:74;;22926:93;23015:3;22926:93;:::i;:::-;23044:2;23039:3;23035:12;23028:19;;22687:366;;;:::o;23059:419::-;23225:4;23263:2;23252:9;23248:18;23240:26;;23312:9;23306:4;23302:20;23298:1;23287:9;23283:17;23276:47;23340:131;23466:4;23340:131;:::i;:::-;23332:139;;23059:419;;;:::o;23484:180::-;23532:77;23529:1;23522:88;23629:4;23626:1;23619:15;23653:4;23650:1;23643:15;23670:191;23710:3;23729:20;23747:1;23729:20;:::i;:::-;23724:25;;23763:20;23781:1;23763:20;:::i;:::-;23758:25;;23806:1;23803;23799:9;23792:16;;23827:3;23824:1;23821:10;23818:36;;;23834:18;;:::i;:::-;23818:36;23670:191;;;;:::o;23867:634::-;24088:4;24126:2;24115:9;24111:18;24103:26;;24175:9;24169:4;24165:20;24161:1;24150:9;24146:17;24139:47;24203:108;24306:4;24297:6;24203:108;:::i;:::-;24195:116;;24358:9;24352:4;24348:20;24343:2;24332:9;24328:18;24321:48;24386:108;24489:4;24480:6;24386:108;:::i;:::-;24378:116;;23867:634;;;;;:::o;24507:228::-;24647:34;24643:1;24635:6;24631:14;24624:58;24716:11;24711:2;24703:6;24699:15;24692:36;24507:228;:::o;24741:366::-;24883:3;24904:67;24968:2;24963:3;24904:67;:::i;:::-;24897:74;;24980:93;25069:3;24980:93;:::i;:::-;25098:2;25093:3;25089:12;25082:19;;24741:366;;;:::o;25113:419::-;25279:4;25317:2;25306:9;25302:18;25294:26;;25366:9;25360:4;25356:20;25352:1;25341:9;25337:17;25330:47;25394:131;25520:4;25394:131;:::i;:::-;25386:139;;25113:419;;;:::o;25538:228::-;25678:34;25674:1;25666:6;25662:14;25655:58;25747:11;25742:2;25734:6;25730:15;25723:36;25538:228;:::o;25772:366::-;25914:3;25935:67;25999:2;25994:3;25935:67;:::i;:::-;25928:74;;26011:93;26100:3;26011:93;:::i;:::-;26129:2;26124:3;26120:12;26113:19;;25772:366;;;:::o;26144:419::-;26310:4;26348:2;26337:9;26333:18;26325:26;;26397:9;26391:4;26387:20;26383:1;26372:9;26368:17;26361:47;26425:131;26551:4;26425:131;:::i;:::-;26417:139;;26144:419;;;:::o;26569:332::-;26690:4;26728:2;26717:9;26713:18;26705:26;;26741:71;26809:1;26798:9;26794:17;26785:6;26741:71;:::i;:::-;26822:72;26890:2;26879:9;26875:18;26866:6;26822:72;:::i;:::-;26569:332;;;;;:::o;26907:233::-;26946:3;26969:24;26987:5;26969:24;:::i;:::-;26960:33;;27015:66;27008:5;27005:77;27002:103;;27085:18;;:::i;:::-;27002:103;27132:1;27125:5;27121:13;27114:20;;26907:233;;;:::o;27146:180::-;27194:77;27191:1;27184:88;27291:4;27288:1;27281:15;27315:4;27312:1;27305:15;27332:185;27372:1;27389:20;27407:1;27389:20;:::i;:::-;27384:25;;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27462:1;27452:35;;27467:18;;:::i;:::-;27452:35;27509:1;27506;27502:9;27497:14;;27332:185;;;;:::o;27523:194::-;27563:4;27583:20;27601:1;27583:20;:::i;:::-;27578:25;;27617:20;27635:1;27617:20;:::i;:::-;27612:25;;27661:1;27658;27654:9;27646:17;;27685:1;27679:4;27676:11;27673:37;;;27690:18;;:::i;:::-;27673:37;27523:194;;;;:::o;27723:176::-;27755:1;27772:20;27790:1;27772:20;:::i;:::-;27767:25;;27806:20;27824:1;27806:20;:::i;:::-;27801:25;;27845:1;27835:35;;27850:18;;:::i;:::-;27835:35;27891:1;27888;27884:9;27879:14;;27723:176;;;;:::o;27905:118::-;27992:24;28010:5;27992:24;:::i;:::-;27987:3;27980:37;27905:118;;:::o;28029:98::-;28080:6;28114:5;28108:12;28098:22;;28029:98;;;:::o;28133:168::-;28216:11;28250:6;28245:3;28238:19;28290:4;28285:3;28281:14;28266:29;;28133:168;;;;:::o;28307:373::-;28393:3;28421:38;28453:5;28421:38;:::i;:::-;28475:70;28538:6;28533:3;28475:70;:::i;:::-;28468:77;;28554:65;28612:6;28607:3;28600:4;28593:5;28589:16;28554:65;:::i;:::-;28644:29;28666:6;28644:29;:::i;:::-;28639:3;28635:39;28628:46;;28397:283;28307:373;;;;:::o;28686:1053::-;29009:4;29047:3;29036:9;29032:19;29024:27;;29061:71;29129:1;29118:9;29114:17;29105:6;29061:71;:::i;:::-;29142:72;29210:2;29199:9;29195:18;29186:6;29142:72;:::i;:::-;29261:9;29255:4;29251:20;29246:2;29235:9;29231:18;29224:48;29289:108;29392:4;29383:6;29289:108;:::i;:::-;29281:116;;29444:9;29438:4;29434:20;29429:2;29418:9;29414:18;29407:48;29472:108;29575:4;29566:6;29472:108;:::i;:::-;29464:116;;29628:9;29622:4;29618:20;29612:3;29601:9;29597:19;29590:49;29656:76;29727:4;29718:6;29656:76;:::i;:::-;29648:84;;28686:1053;;;;;;;;:::o;29745:141::-;29801:5;29832:6;29826:13;29817:22;;29848:32;29874:5;29848:32;:::i;:::-;29745:141;;;;:::o;29892:349::-;29961:6;30010:2;29998:9;29989:7;29985:23;29981:32;29978:119;;;30016:79;;:::i;:::-;29978:119;30136:1;30161:63;30216:7;30207:6;30196:9;30192:22;30161:63;:::i;:::-;30151:73;;30107:127;29892:349;;;;:::o;30247:222::-;30340:4;30378:2;30367:9;30363:18;30355:26;;30391:71;30459:1;30448:9;30444:17;30435:6;30391:71;:::i;:::-;30247:222;;;;:::o;30475:751::-;30698:4;30736:3;30725:9;30721:19;30713:27;;30750:71;30818:1;30807:9;30803:17;30794:6;30750:71;:::i;:::-;30831:72;30899:2;30888:9;30884:18;30875:6;30831:72;:::i;:::-;30913;30981:2;30970:9;30966:18;30957:6;30913:72;:::i;:::-;30995;31063:2;31052:9;31048:18;31039:6;30995:72;:::i;:::-;31115:9;31109:4;31105:20;31099:3;31088:9;31084:19;31077:49;31143:76;31214:4;31205:6;31143:76;:::i;:::-;31135:84;;30475:751;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u591a\\u4ee3\\u5e01\\u6807\\u51c6 \\u89c1 https://eips.ethereum.org/EIPS/eip-1155\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2 \\u5b9e\\u73b0IERC1155\\u7684balanceOf\\uff0c\\u8fd4\\u56deaccount\\u5730\\u5740\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u6301\\u4ed3\\u91cf\\u3002\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2 \\u8981\\u6c42: - `accounts` \\u548c `ids` \\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49.\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u67e5\\u8be2\\u6279\\u91cf\\u6388\\u6743.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amounts`\\u6570\\u7ec4\\u5355\\u4f4d\\u7684`ids`\\u6570\\u7ec4\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155BatchReceived. - ids\\u548camounts\\u6570\\u7ec4\\u957f\\u5ea6\\u76f8\\u7b49\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d\\u7684`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u5230`to` \\u91ca\\u653e {TransferSingle} \\u4e8b\\u4ef6. \\u8981\\u6c42: - to \\u4e0d\\u80fd\\u662f0\\u5730\\u5740. - from\\u62e5\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3\\u91cf\\uff0c\\u4e14\\u8c03\\u7528\\u8005\\u62e5\\u6709\\u6388\\u6743 - \\u5982\\u679c to \\u662f\\u667a\\u80fd\\u5408\\u7ea6, \\u4ed6\\u5fc5\\u987b\\u652f\\u6301 IERC1155Receiver-onERC1155Received.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u8c03\\u7528\\u8005\\u6388\\u6743operator\\u4f7f\\u7528\\u5176\\u6240\\u6709\\u4ee3\\u5e01 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6 \\u6761\\u4ef6\\uff1amsg.sender != operator\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56deERC1155\\u7684id\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684uri\\uff0c\\u5b58\\u50a8metadata\\uff0c\\u7c7b\\u4f3cERC721\\u7684tokenURI.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316`name` \\u548c`symbol`, uri_\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/40_ERC1155/ERC1155.sol\":{\"keccak256\":\"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a\",\"dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询 实现IERC1155的balanceOf,返回account地址的id种类代币持仓量。"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询 要求: - `accounts` 和 `ids` 数组长度相等."},"isApprovedForAll(address,address)":{"details":"查询批量授权."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账,将`amounts`数组单位的`ids`数组种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155BatchReceived. - ids和amounts数组长度相等"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位的`id`种类代币从`from`转账到`to` 释放 {TransferSingle} 事件. 要求: - to 不能是0地址. - from拥有足够的持仓量,且调用者拥有授权 - 如果 to 是智能合约, 他必须支持 IERC1155Receiver-onERC1155Received."},"setApprovalForAll(address,bool)":{"details":"批量授权,调用者授权operator使用其所有代币 释放{ApprovalForAll}事件 条件:msg.sender != operator"},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"uri(uint256)":{"details":"返回ERC1155的id种类代币的uri,存储metadata,类似ERC721的tokenURI."}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"构造函数,初始化`name` 和`symbol`, uri_"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/ERC1155.sol":"ERC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/40_ERC1155/ERC1155.sol":{"keccak256":"0xc6ef5aec90084b94bf52163dbc2660447443e4ee62d8ce7fa553eb2be64b832c","urls":["bzz-raw://455162066efc6b050350440096b1e70c0bd50c298aa0144dc690773b5d743e2a","dweb:/ipfs/Qmap4xEzWNcqyMHCQeBYNSgDt9fQjSMxRkAniekKZhMoCV"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json index 80b1ec08..2ba8cf19 100644 --- a/out/ERC20.sol/ERC20.json +++ b/out/ERC20.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bed2f02a50f0c91264b7275418a37219ab93d796c7d7f1bc5d552f03eb8946e564736f6c63430008220033","sourceMap":"107:2009:78:-:0;;;444:2;420:26;;;;;;;;;;;;;;;;;;;;533:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;605:5;598:4;:12;;;;;;:::i;:::-;;629:7;620:6;:16;;;;;;:::i;:::-;;533:110;;107:2009;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;107:2009:78:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bed2f02a50f0c91264b7275418a37219ab93d796c7d7f1bc5d552f03eb8946e564736f6c63430008220033","sourceMap":"107:2009:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;342:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1011:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;279:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1290:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;420:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1943:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;139:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;378:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1698:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;705:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;199:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;342:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1011:207::-;1083:4;1132:6;1099:9;:21;1109:10;1099:21;;;;;;;;;;;;;;;:30;1121:7;1099:30;;;;;;;;;;;;;;;:39;;;;1174:7;1153:37;;1162:10;1153:37;;;1183:6;1153:37;;;;;;:::i;:::-;;;;;;;;1207:4;1200:11;;1011:207;;;;:::o;279:35::-;;;;:::o;1290:335::-;1415:4;1464:6;1431:9;:17;1441:6;1431:17;;;;;;;;;;;;;;;:29;1449:10;1431:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1501:6;1480:9;:17;1490:6;1480:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1541:6;1517:9;:20;1527:9;1517:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1579:9;1562:35;;1571:6;1562:35;;;1590:6;1562:35;;;;;;:::i;:::-;;;;;;;;1614:4;1607:11;;1290:335;;;;;:::o;420:26::-;;;;;;;;;;;;;:::o;1943:170::-;2014:6;1989:9;:21;1999:10;1989:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;2045:6;2030:11;;:21;;;;;;;:::i;:::-;;;;;;;;2095:1;2066:40;;2075:10;2066:40;;;2099:6;2066:40;;;;;;:::i;:::-;;;;;;;;1943:170;:::o;139:53::-;;;;;;;;;;;;;;;;;:::o;378:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1698:170::-;1769:6;1744:9;:21;1754:10;1744:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1800:6;1785:11;;:21;;;;;;;:::i;:::-;;;;;;;;1842:10;1821:40;;1838:1;1821:40;;;1854:6;1821:40;;;;;;:::i;:::-;;;;;;;;1698:170;:::o;705:244::-;780:4;821:6;796:9;:21;806:10;796:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;861:6;837:9;:20;847:9;837:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;903:9;882:39;;891:10;882:39;;;914:6;882:39;;;;;;:::i;:::-;;;;;;;;938:4;931:11;;705:244;;;;:::o;199:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/31_ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/31_ERC20/ERC20.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bed2f02a50f0c91264b7275418a37219ab93d796c7d7f1bc5d552f03eb8946e564736f6c63430008220033","sourceMap":"107:2009:72:-:0;;;444:2;420:26;;;;;;;;;;;;;;;;;;;;533:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;605:5;598:4;:12;;;;;;:::i;:::-;;629:7;620:6;:16;;;;;;:::i;:::-;;533:110;;107:2009;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;107:2009:72:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea2646970667358221220bed2f02a50f0c91264b7275418a37219ab93d796c7d7f1bc5d552f03eb8946e564736f6c63430008220033","sourceMap":"107:2009:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;342:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1011:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;279:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1290:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;420:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1943:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;139:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;378:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1698:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;705:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;199:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;342:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1011:207::-;1083:4;1132:6;1099:9;:21;1109:10;1099:21;;;;;;;;;;;;;;;:30;1121:7;1099:30;;;;;;;;;;;;;;;:39;;;;1174:7;1153:37;;1162:10;1153:37;;;1183:6;1153:37;;;;;;:::i;:::-;;;;;;;;1207:4;1200:11;;1011:207;;;;:::o;279:35::-;;;;:::o;1290:335::-;1415:4;1464:6;1431:9;:17;1441:6;1431:17;;;;;;;;;;;;;;;:29;1449:10;1431:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1501:6;1480:9;:17;1490:6;1480:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1541:6;1517:9;:20;1527:9;1517:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1579:9;1562:35;;1571:6;1562:35;;;1590:6;1562:35;;;;;;:::i;:::-;;;;;;;;1614:4;1607:11;;1290:335;;;;;:::o;420:26::-;;;;;;;;;;;;;:::o;1943:170::-;2014:6;1989:9;:21;1999:10;1989:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;2045:6;2030:11;;:21;;;;;;;:::i;:::-;;;;;;;;2095:1;2066:40;;2075:10;2066:40;;;2099:6;2066:40;;;;;;:::i;:::-;;;;;;;;1943:170;:::o;139:53::-;;;;;;;;;;;;;;;;;:::o;378:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1698:170::-;1769:6;1744:9;:21;1754:10;1744:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1800:6;1785:11;;:21;;;;;;;:::i;:::-;;;;;;;;1842:10;1821:40;;1838:1;1821:40;;;1854:6;1821:40;;;;;;:::i;:::-;;;;;;;;1698:170;:::o;705:244::-;780:4;821:6;796:9;:21;806:10;796:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;861:6;837:9;:20;847:9;837:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;903:9;882:39;;891:10;882:39;;;914:6;882:39;;;;;;:::i;:::-;;;;;;;;938:4;931:11;;705:244;;;;:::o;199:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/31_ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/31_ERC20/ERC20.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":72} \ No newline at end of file diff --git a/out/ERC20Permit.sol/ERC20Permit.json b/out/ERC20Permit.sol/ERC20Permit.json index 2ddb321e..25df6560 100644 --- a/out/ERC20Permit.sol/ERC20Permit.json +++ b/out/ERC20Permit.sol/ERC20Permit.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"EIP712DomainChanged","inputs":[],"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":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"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":"InvalidShortString","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x610160604052348015610010575f5ffd5b50604051612625380380612625833981810160405281019061003291906103a0565b816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508383816003908161007a9190610637565b50806004908161008a9190610637565b5050506100a160058361013e60201b90919060201c565b61012081815250506100bd60068261013e60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506100fa61018b60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505050506108b8565b5f60208351101561015f57610158836101e560201b60201c565b9050610185565b8261016f8361024a60201b60201c565b5f01908161017d9190610637565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016101ca95949392919061076c565b60405160208183030381529060405280519060200120905090565b5f5f829050601f8151111561023157826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016102289190610805565b60405180910390fd5b80518161023d90610852565b5f1c175f1b915050919050565b5f819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102b28261026c565b810181811067ffffffffffffffff821117156102d1576102d061027c565b5b80604052505050565b5f6102e3610253565b90506102ef82826102a9565b919050565b5f67ffffffffffffffff82111561030e5761030d61027c565b5b6103178261026c565b9050602081019050919050565b8281835e5f83830152505050565b5f61034461033f846102f4565b6102da565b9050828152602081018484840111156103605761035f610268565b5b61036b848285610324565b509392505050565b5f82601f83011261038757610386610264565b5b8151610397848260208601610332565b91505092915050565b5f5f604083850312156103b6576103b561025c565b5b5f83015167ffffffffffffffff8111156103d3576103d2610260565b5b6103df85828601610373565b925050602083015167ffffffffffffffff811115610400576103ff610260565b5b61040c85828601610373565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061046457607f821691505b60208210810361047757610476610420565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261049e565b6104e3868361049e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61052761052261051d846104fb565b610504565b6104fb565b9050919050565b5f819050919050565b6105408361050d565b61055461054c8261052e565b8484546104aa565b825550505050565b5f5f905090565b61056b61055c565b610576818484610537565b505050565b5f5b8281101561059c576105915f828401610563565b60018101905061057d565b505050565b601f8211156105ef57828211156105ee576105bb8161047d565b6105c48361048f565b6105cd8561048f565b60208610156105da575f90505b8083016105e98284038261057b565b505050505b5b505050565b5f82821c905092915050565b5f61060f5f19846008026105f4565b1980831691505092915050565b5f6106278383610600565b9150826002028217905092915050565b61064082610416565b67ffffffffffffffff8111156106595761065861027c565b5b610663825461044d565b61066e8282856105a1565b5f60209050601f83116001811461069f575f841561068d578287015190505b610697858261061c565b8655506106fe565b601f1984166106ad8661047d565b5f5b828110156106d4578489015182556001820191506020850194506020810190506106af565b868310156106f157848901516106ed601f891682610600565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b61071881610706565b82525050565b610727816104fb565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107568261072d565b9050919050565b6107668161074c565b82525050565b5f60a08201905061077f5f83018861070f565b61078c602083018761070f565b610799604083018661070f565b6107a6606083018561071e565b6107b3608083018461075d565b9695505050505050565b5f82825260208201905092915050565b5f6107d782610416565b6107e181856107bd565b93506107f1818560208601610324565b6107fa8161026c565b840191505092915050565b5f6020820190508181035f83015261081d81846107cd565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f6108498251610706565b80915050919050565b5f61085c82610825565b826108668461082f565b90506108718161083e565b925060208210156108b1576108ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261049e565b831692505b5050919050565b60805160a05160c05160e051610100516101205161014051611d1c6109095f395f610a4301525f610a0801525f61100201525f610fe101525f61094c01525f6109a201525f6109cb0152611d1c5ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80637ecebe001161008a578063a0712d6811610064578063a0712d6814610266578063a9059cbb14610282578063d505accf146102b2578063dd62ed3e146102ce576100e8565b80637ecebe00146101f457806384b0196e1461022457806395d89b4114610248576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce567146101885780633644e515146101a657806370a08231146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102fe565b60405161010191906114b8565b60405180910390f35b610124600480360381019061011f9190611569565b61038e565b60405161013191906115c1565b60405180910390f35b6101426103b0565b60405161014f91906115e9565b60405180910390f35b610172600480360381019061016d9190611602565b6103b9565b60405161017f91906115c1565b60405180910390f35b6101906103e7565b60405161019d919061166d565b60405180910390f35b6101ae6103ef565b6040516101bb919061169e565b60405180910390f35b6101de60048036038101906101d991906116b7565b6103fd565b6040516101eb91906115e9565b60405180910390f35b61020e600480360381019061020991906116b7565b610442565b60405161021b91906115e9565b60405180910390f35b61022c610488565b60405161023f97969594939291906117e2565b60405180910390f35b61025061052d565b60405161025d91906114b8565b60405180910390f35b610280600480360381019061027b9190611864565b6105bd565b005b61029c60048036038101906102979190611569565b6105ca565b6040516102a991906115c1565b60405180910390f35b6102cc60048036038101906102c791906118e3565b6105ec565b005b6102e860048036038101906102e39190611980565b61072b565b6040516102f591906115e9565b60405180910390f35b60606003805461030d906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610339906119eb565b80156103845780601f1061035b57610100808354040283529160200191610384565b820191905f5260205f20905b81548152906001019060200180831161036757829003601f168201915b5050505050905090565b5f5f6103986107ad565b90506103a58185856107b4565b600191505092915050565b5f600254905090565b5f5f6103c36107ad565b90506103d08582856107c6565b6103db858585610859565b60019150509392505050565b5f6012905090565b5f6103f8610949565b905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6060805f5f5f60606104996109ff565b6104a1610a3a565b46305f5f1b5f67ffffffffffffffff8111156104c0576104bf611a1b565b5b6040519080825280602002602001820160405280156104ee5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60606004805461053c906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610568906119eb565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6105c73382610a75565b50565b5f5f6105d46107ad565b90506105e1818585610859565b600191505092915050565b8342111561062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690611a92565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861065d8c610af4565b8960405160200161067396959493929190611ab0565b6040516020818303038152906040528051906020012090505f61069582610b8e565b90505f6106a482878787610ba7565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90611b59565b60405180910390fd5b61071f8a8a8a6107b4565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6107c18383836001610bd5565b505050565b5f6107d1848461072b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108535781811015610844578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161083b93929190611b77565b60405180910390fd5b61085284848484035f610bd5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108c09190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610939575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109309190611bac565b60405180910390fd5b610944838383610da4565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156109c457507f000000000000000000000000000000000000000000000000000000000000000046145b156109f1577f000000000000000000000000000000000000000000000000000000000000000090506109fc565b6109f9610fbd565b90505b90565b6060610a3560057f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b6060610a7060067f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610adc9190611bac565b60405180910390fd5b610af05f8383610da4565b5050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b829190611bf2565b92505081905550919050565b5f610ba0610b9a610949565b836110ff565b9050919050565b5f5f5f5f610bb78888888861113f565b925092509250610bc78282611226565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c45575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c3c9190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb5575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cac9190611bac565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610d9e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d9591906115e9565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df4578060025f828254610de89190611bf2565b92505081905550610ec2565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610e7493929190611b77565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f09578060025f8282540392505081905550610f53565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb091906115e9565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611037959493929190611c25565b60405160208183030381529060405280519060200120905090565b606060ff5f1b831461106e5761106783611388565b90506110f9565b81805461107a906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546110a6906119eb565b80156110f15780601f106110c8576101008083540402835291602001916110f1565b820191905f5260205f20905b8154815290600101906020018083116110d457829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561117b575f60038592509250925061121c565b5f6001888888886040515f815260200160405260405161119e9493929190611c76565b6020604051602081039080840390855afa1580156111be573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f575f60015f5f1b9350935093505061121c565b805f5f5f1b935093509350505b9450945094915050565b5f600381111561123957611238611cb9565b5b82600381111561124c5761124b611cb9565b5b0315611384576001600381111561126657611265611cb9565b5b82600381111561127957611278611cb9565b5b036112b0576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156112c4576112c3611cb9565b5b8260038111156112d7576112d6611cb9565b5b0361131b57805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161131291906115e9565b60405180910390fd5b60038081111561132e5761132d611cb9565b5b82600381111561134157611340611cb9565b5b0361138357806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161137a919061169e565b60405180910390fd5b5b5050565b60605f611394836113fa565b90505f602067ffffffffffffffff8111156113b2576113b1611a1b565b5b6040519080825280601f01601f1916602001820160405280156113e45781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f60ff835f1c169050601f81111561143f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61148a82611448565b6114948185611452565b93506114a4818560208601611462565b6114ad81611470565b840191505092915050565b5f6020820190508181035f8301526114d08184611480565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611505826114dc565b9050919050565b611515816114fb565b811461151f575f5ffd5b50565b5f813590506115308161150c565b92915050565b5f819050919050565b61154881611536565b8114611552575f5ffd5b50565b5f813590506115638161153f565b92915050565b5f5f6040838503121561157f5761157e6114d8565b5b5f61158c85828601611522565b925050602061159d85828601611555565b9150509250929050565b5f8115159050919050565b6115bb816115a7565b82525050565b5f6020820190506115d45f8301846115b2565b92915050565b6115e381611536565b82525050565b5f6020820190506115fc5f8301846115da565b92915050565b5f5f5f60608486031215611619576116186114d8565b5b5f61162686828701611522565b935050602061163786828701611522565b925050604061164886828701611555565b9150509250925092565b5f60ff82169050919050565b61166781611652565b82525050565b5f6020820190506116805f83018461165e565b92915050565b5f819050919050565b61169881611686565b82525050565b5f6020820190506116b15f83018461168f565b92915050565b5f602082840312156116cc576116cb6114d8565b5b5f6116d984828501611522565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611716816116e2565b82525050565b611725816114fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61175d81611536565b82525050565b5f61176e8383611754565b60208301905092915050565b5f602082019050919050565b5f6117908261172b565b61179a8185611735565b93506117a583611745565b805f5b838110156117d55781516117bc8882611763565b97506117c78361177a565b9250506001810190506117a8565b5085935050505092915050565b5f60e0820190506117f55f83018a61170d565b81810360208301526118078189611480565b9050818103604083015261181b8188611480565b905061182a60608301876115da565b611837608083018661171c565b61184460a083018561168f565b81810360c08301526118568184611786565b905098975050505050505050565b5f60208284031215611879576118786114d8565b5b5f61188684828501611555565b91505092915050565b61189881611652565b81146118a2575f5ffd5b50565b5f813590506118b38161188f565b92915050565b6118c281611686565b81146118cc575f5ffd5b50565b5f813590506118dd816118b9565b92915050565b5f5f5f5f5f5f5f60e0888a0312156118fe576118fd6114d8565b5b5f61190b8a828b01611522565b975050602061191c8a828b01611522565b965050604061192d8a828b01611555565b955050606061193e8a828b01611555565b945050608061194f8a828b016118a5565b93505060a06119608a828b016118cf565b92505060c06119718a828b016118cf565b91505092959891949750929550565b5f5f60408385031215611996576119956114d8565b5b5f6119a385828601611522565b92505060206119b485828601611522565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f611a7c601d83611452565b9150611a8782611a48565b602082019050919050565b5f6020820190508181035f830152611aa981611a70565b9050919050565b5f60c082019050611ac35f83018961168f565b611ad0602083018861171c565b611add604083018761171c565b611aea60608301866115da565b611af760808301856115da565b611b0460a08301846115da565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f611b43601e83611452565b9150611b4e82611b0f565b602082019050919050565b5f6020820190508181035f830152611b7081611b37565b9050919050565b5f606082019050611b8a5f83018661171c565b611b9760208301856115da565b611ba460408301846115da565b949350505050565b5f602082019050611bbf5f83018461171c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bfc82611536565b9150611c0783611536565b9250828201905080821115611c1f57611c1e611bc5565b5b92915050565b5f60a082019050611c385f83018861168f565b611c45602083018761168f565b611c52604083018661168f565b611c5f60608301856115da565b611c6c608083018461171c565b9695505050505050565b5f608082019050611c895f83018761168f565b611c96602083018661165e565b611ca3604083018561168f565b611cb0606083018461168f565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea264697066735822122035be5e114192c70d04db0a69786bde45c880a417193c438659b36f9b5f06ec9564736f6c63430008220033","sourceMap":"664:1988:114:-:0;;;1010:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1071:4;3428:431:37;;;;;;;;;;;;;;;;;1088:4:114;1094:6;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;3501:45:37;3532:13;3501:4;:30;;;;:45;;;;:::i;:::-;3493:53;;;;;;3567:51;3601:16;3567:7;:33;;;;:51;;;;:::i;:::-;3556:62;;;;;;3658:4;3642:22;;;;;;3628:36;;;;;;3707:7;3691:25;;;;;;3674:42;;;;;;3744:13;3727:30;;;;;;3792:23;:21;;;:23;;:::i;:::-;3767:48;;;;;;3847:4;3825:27;;;;;;;;;;3428:431;;1010:93:114;;664:1988;;2893:342:33;2989:11;3038:4;3022:5;3016:19;:26;3012:217;;;3065:20;3079:5;3065:13;;;:20;;:::i;:::-;3058:27;;;;3012:217;3157:5;3116:32;3142:5;3116:25;;;:32;;:::i;:::-;:38;;:46;;;;;;:::i;:::-;;1390:66;3200:17;;3176:42;;2893:342;;;;;:::o;4213:179:37:-;4268:7;2079:95;4326:11;;4339:14;;4355:13;4378:4;4304:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;:::o;1708:288:33:-;1773:11;1796:17;1822:3;1796:30;;1854:4;1840;:11;:18;1836:74;;;1895:3;1881:18;;;;;;;;;;;:::i;:::-;;;;;;;;1836:74;1976:4;:11;1967:4;1959:13;;;:::i;:::-;1951:22;;:36;1943:45;;1919:70;;;1708:288;;;:::o;3468:175:34:-;3536:20;3617:10;3607:20;;3468:175;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;8701:77::-;8738:7;8767:5;8756:16;;8701:77;;;:::o;8784:118::-;8871:24;8889:5;8871:24;:::i;:::-;8866:3;8859:37;8784:118;;:::o;8908:::-;8995:24;9013:5;8995:24;:::i;:::-;8990:3;8983:37;8908:118;;:::o;9032:126::-;9069:7;9109:42;9102:5;9098:54;9087:65;;9032:126;;;:::o;9164:96::-;9201:7;9230:24;9248:5;9230:24;:::i;:::-;9219:35;;9164:96;;;:::o;9266:118::-;9353:24;9371:5;9353:24;:::i;:::-;9348:3;9341:37;9266:118;;:::o;9390:664::-;9595:4;9633:3;9622:9;9618:19;9610:27;;9647:71;9715:1;9704:9;9700:17;9691:6;9647:71;:::i;:::-;9728:72;9796:2;9785:9;9781:18;9772:6;9728:72;:::i;:::-;9810;9878:2;9867:9;9863:18;9854:6;9810:72;:::i;:::-;9892;9960:2;9949:9;9945:18;9936:6;9892:72;:::i;:::-;9974:73;10042:3;10031:9;10027:19;10018:6;9974:73;:::i;:::-;9390:664;;;;;;;;:::o;10060:169::-;10144:11;10178:6;10173:3;10166:19;10218:4;10213:3;10209:14;10194:29;;10060:169;;;;:::o;10235:377::-;10323:3;10351:39;10384:5;10351:39;:::i;:::-;10406:71;10470:6;10465:3;10406:71;:::i;:::-;10399:78;;10486:65;10544:6;10539:3;10532:4;10525:5;10521:16;10486:65;:::i;:::-;10576:29;10598:6;10576:29;:::i;:::-;10571:3;10567:39;10560:46;;10327:285;10235:377;;;;:::o;10618:313::-;10731:4;10769:2;10758:9;10754:18;10746:26;;10818:9;10812:4;10808:20;10804:1;10793:9;10789:17;10782:47;10846:78;10919:4;10910:6;10846:78;:::i;:::-;10838:86;;10618:313;;;;:::o;10937:98::-;10988:6;11022:5;11016:12;11006:22;;10937:98;;;:::o;11041:116::-;11092:4;11115:3;11107:11;;11145:4;11140:3;11136:14;11128:22;;11041:116;;;:::o;11163:154::-;11206:11;11242:29;11266:3;11260:10;11242:29;:::i;:::-;11305:5;11281:29;;11218:99;11163:154;;;:::o;11323:594::-;11407:5;11438:38;11470:5;11438:38;:::i;:::-;11501:5;11528:40;11562:5;11528:40;:::i;:::-;11516:52;;11587:35;11613:8;11587:35;:::i;:::-;11578:44;;11646:2;11638:6;11635:14;11632:278;;;11717:169;11802:66;11772:6;11768:2;11764:15;11761:1;11757:23;11717:169;:::i;:::-;11694:5;11673:227;11664:236;;11632:278;11413:504;;11323:594;;;:::o;664:1988:114:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80637ecebe001161008a578063a0712d6811610064578063a0712d6814610266578063a9059cbb14610282578063d505accf146102b2578063dd62ed3e146102ce576100e8565b80637ecebe00146101f457806384b0196e1461022457806395d89b4114610248576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce567146101885780633644e515146101a657806370a08231146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102fe565b60405161010191906114b8565b60405180910390f35b610124600480360381019061011f9190611569565b61038e565b60405161013191906115c1565b60405180910390f35b6101426103b0565b60405161014f91906115e9565b60405180910390f35b610172600480360381019061016d9190611602565b6103b9565b60405161017f91906115c1565b60405180910390f35b6101906103e7565b60405161019d919061166d565b60405180910390f35b6101ae6103ef565b6040516101bb919061169e565b60405180910390f35b6101de60048036038101906101d991906116b7565b6103fd565b6040516101eb91906115e9565b60405180910390f35b61020e600480360381019061020991906116b7565b610442565b60405161021b91906115e9565b60405180910390f35b61022c610488565b60405161023f97969594939291906117e2565b60405180910390f35b61025061052d565b60405161025d91906114b8565b60405180910390f35b610280600480360381019061027b9190611864565b6105bd565b005b61029c60048036038101906102979190611569565b6105ca565b6040516102a991906115c1565b60405180910390f35b6102cc60048036038101906102c791906118e3565b6105ec565b005b6102e860048036038101906102e39190611980565b61072b565b6040516102f591906115e9565b60405180910390f35b60606003805461030d906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610339906119eb565b80156103845780601f1061035b57610100808354040283529160200191610384565b820191905f5260205f20905b81548152906001019060200180831161036757829003601f168201915b5050505050905090565b5f5f6103986107ad565b90506103a58185856107b4565b600191505092915050565b5f600254905090565b5f5f6103c36107ad565b90506103d08582856107c6565b6103db858585610859565b60019150509392505050565b5f6012905090565b5f6103f8610949565b905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6060805f5f5f60606104996109ff565b6104a1610a3a565b46305f5f1b5f67ffffffffffffffff8111156104c0576104bf611a1b565b5b6040519080825280602002602001820160405280156104ee5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60606004805461053c906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610568906119eb565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6105c73382610a75565b50565b5f5f6105d46107ad565b90506105e1818585610859565b600191505092915050565b8342111561062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690611a92565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861065d8c610af4565b8960405160200161067396959493929190611ab0565b6040516020818303038152906040528051906020012090505f61069582610b8e565b90505f6106a482878787610ba7565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90611b59565b60405180910390fd5b61071f8a8a8a6107b4565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6107c18383836001610bd5565b505050565b5f6107d1848461072b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108535781811015610844578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161083b93929190611b77565b60405180910390fd5b61085284848484035f610bd5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108c09190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610939575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109309190611bac565b60405180910390fd5b610944838383610da4565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156109c457507f000000000000000000000000000000000000000000000000000000000000000046145b156109f1577f000000000000000000000000000000000000000000000000000000000000000090506109fc565b6109f9610fbd565b90505b90565b6060610a3560057f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b6060610a7060067f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610adc9190611bac565b60405180910390fd5b610af05f8383610da4565b5050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b829190611bf2565b92505081905550919050565b5f610ba0610b9a610949565b836110ff565b9050919050565b5f5f5f5f610bb78888888861113f565b925092509250610bc78282611226565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c45575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c3c9190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb5575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cac9190611bac565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610d9e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d9591906115e9565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df4578060025f828254610de89190611bf2565b92505081905550610ec2565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610e7493929190611b77565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f09578060025f8282540392505081905550610f53565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb091906115e9565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611037959493929190611c25565b60405160208183030381529060405280519060200120905090565b606060ff5f1b831461106e5761106783611388565b90506110f9565b81805461107a906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546110a6906119eb565b80156110f15780601f106110c8576101008083540402835291602001916110f1565b820191905f5260205f20905b8154815290600101906020018083116110d457829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561117b575f60038592509250925061121c565b5f6001888888886040515f815260200160405260405161119e9493929190611c76565b6020604051602081039080840390855afa1580156111be573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f575f60015f5f1b9350935093505061121c565b805f5f5f1b935093509350505b9450945094915050565b5f600381111561123957611238611cb9565b5b82600381111561124c5761124b611cb9565b5b0315611384576001600381111561126657611265611cb9565b5b82600381111561127957611278611cb9565b5b036112b0576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156112c4576112c3611cb9565b5b8260038111156112d7576112d6611cb9565b5b0361131b57805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161131291906115e9565b60405180910390fd5b60038081111561132e5761132d611cb9565b5b82600381111561134157611340611cb9565b5b0361138357806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161137a919061169e565b60405180910390fd5b5b5050565b60605f611394836113fa565b90505f602067ffffffffffffffff8111156113b2576113b1611a1b565b5b6040519080825280601f01601f1916602001820160405280156113e45781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f60ff835f1c169050601f81111561143f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61148a82611448565b6114948185611452565b93506114a4818560208601611462565b6114ad81611470565b840191505092915050565b5f6020820190508181035f8301526114d08184611480565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611505826114dc565b9050919050565b611515816114fb565b811461151f575f5ffd5b50565b5f813590506115308161150c565b92915050565b5f819050919050565b61154881611536565b8114611552575f5ffd5b50565b5f813590506115638161153f565b92915050565b5f5f6040838503121561157f5761157e6114d8565b5b5f61158c85828601611522565b925050602061159d85828601611555565b9150509250929050565b5f8115159050919050565b6115bb816115a7565b82525050565b5f6020820190506115d45f8301846115b2565b92915050565b6115e381611536565b82525050565b5f6020820190506115fc5f8301846115da565b92915050565b5f5f5f60608486031215611619576116186114d8565b5b5f61162686828701611522565b935050602061163786828701611522565b925050604061164886828701611555565b9150509250925092565b5f60ff82169050919050565b61166781611652565b82525050565b5f6020820190506116805f83018461165e565b92915050565b5f819050919050565b61169881611686565b82525050565b5f6020820190506116b15f83018461168f565b92915050565b5f602082840312156116cc576116cb6114d8565b5b5f6116d984828501611522565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611716816116e2565b82525050565b611725816114fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61175d81611536565b82525050565b5f61176e8383611754565b60208301905092915050565b5f602082019050919050565b5f6117908261172b565b61179a8185611735565b93506117a583611745565b805f5b838110156117d55781516117bc8882611763565b97506117c78361177a565b9250506001810190506117a8565b5085935050505092915050565b5f60e0820190506117f55f83018a61170d565b81810360208301526118078189611480565b9050818103604083015261181b8188611480565b905061182a60608301876115da565b611837608083018661171c565b61184460a083018561168f565b81810360c08301526118568184611786565b905098975050505050505050565b5f60208284031215611879576118786114d8565b5b5f61188684828501611555565b91505092915050565b61189881611652565b81146118a2575f5ffd5b50565b5f813590506118b38161188f565b92915050565b6118c281611686565b81146118cc575f5ffd5b50565b5f813590506118dd816118b9565b92915050565b5f5f5f5f5f5f5f60e0888a0312156118fe576118fd6114d8565b5b5f61190b8a828b01611522565b975050602061191c8a828b01611522565b965050604061192d8a828b01611555565b955050606061193e8a828b01611555565b945050608061194f8a828b016118a5565b93505060a06119608a828b016118cf565b92505060c06119718a828b016118cf565b91505092959891949750929550565b5f5f60408385031215611996576119956114d8565b5b5f6119a385828601611522565b92505060206119b485828601611522565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f611a7c601d83611452565b9150611a8782611a48565b602082019050919050565b5f6020820190508181035f830152611aa981611a70565b9050919050565b5f60c082019050611ac35f83018961168f565b611ad0602083018861171c565b611add604083018761171c565b611aea60608301866115da565b611af760808301856115da565b611b0460a08301846115da565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f611b43601e83611452565b9150611b4e82611b0f565b602082019050919050565b5f6020820190508181035f830152611b7081611b37565b9050919050565b5f606082019050611b8a5f83018661171c565b611b9760208301856115da565b611ba460408301846115da565b949350505050565b5f602082019050611bbf5f83018461171c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bfc82611536565b9150611c0783611536565b9250828201905080821115611c1f57611c1e611bc5565b5b92915050565b5f60a082019050611c385f83018861168f565b611c45602083018761168f565b611c52604083018661168f565b611c5f60608301856115da565b611c6c608083018461171c565b9695505050505050565b5f608082019050611c895f83018761168f565b611c96602083018661165e565b611ca3604083018561168f565b611cb0606083018461168f565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea264697066735822122035be5e114192c70d04db0a69786bde45c880a417193c438659b36f9b5f06ec9564736f6c63430008220033","sourceMap":"664:1988:114:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2182:113:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1995::114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5228:557:37;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2572:78:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1164:770:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2182:113:114:-;2242:7;2268:20;:18;:20::i;:::-;2261:27;;2182:113;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1995::114:-;2064:7;2090;:14;2098:5;2090:14;;;;;;;;;;;;;;;;2083:21;;1995:116;;;:::o;5228:557:37:-;5326:13;5353:18;5385:21;5420:15;5449:25;5488:12;5514:27;5617:13;:11;:13::i;:::-;5644:16;:14;:16::i;:::-;5674:13;5709:4;5736:1;5728:10;;5766:1;5752:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5566:212;;;;;;;;;;;;;;;;;;;;;5228:557;;;;;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;2572:78:114:-;2618:25;2624:10;2636:6;2618:5;:25::i;:::-;2572:78;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;1164:770:114:-;1426:8;1407:15;:27;;1399:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1502:18;821:95;1562:5;1569:7;1578:5;1585:16;1595:5;1585:9;:16::i;:::-;1603:8;1533:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1523:90;;;;;;1502:111;;1623:12;1638:28;1655:10;1638:16;:28::i;:::-;1623:43;;1746:14;1763:28;1777:4;1783:1;1786;1789;1763:13;:28::i;:::-;1746:45;;1819:5;1809:15;;:6;:15;;;1801:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;1896:31;1905:5;1912:7;1921:5;1896:8;:31::i;:::-;1362:572;;;1164:770;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;3945:262:37:-;3998:7;4038:11;4021:28;;4029:4;4021:28;;;:63;;;;;4070:14;4053:13;:31;4021:63;4017:184;;;4107:22;4100:29;;;;4017:184;4167:23;:21;:23::i;:::-;4160:30;;3945:262;;:::o;6105:126::-;6151:13;6183:41;6210:13;6183:5;:26;;:41;;;;:::i;:::-;6176:48;;6105:126;:::o;6557:135::-;6606:13;6638:47;6668:16;6638:8;:29;;:47;;;;:::i;:::-;6631:54;;6557:135;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2394:147:114:-;2454:15;2491:7;:14;2499:5;2491:14;;;;;;;;;;;;;;;;2481:24;;2533:1;2515:7;:14;2523:5;2515:14;;;;;;;;;;;;;;;;:19;;;;;;;:::i;:::-;;;;;;;;2394:147;;;:::o;5017:176:37:-;5094:7;5120:66;5153:20;:18;:20::i;:::-;5175:10;5120:32;:66::i;:::-;5113:73;;5017:176;;;:::o;8813:260:36:-;8898:7;8918:17;8937:18;8957:16;8977:25;8988:4;8994:1;8997;9000;8977:10;:25::i;:::-;8917:85;;;;;;9012:28;9024:5;9031:8;9012:11;:28::i;:::-;9057:9;9050:16;;;;;8813:260;;;;;;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;4213:179:37:-;4268:7;2079:95;4326:11;4339:14;4355:13;4378:4;4304:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;:::o;3376:267:33:-;3470:13;1390:66;3528:17;;3518:5;3499:46;3495:142;;3568:15;3577:5;3568:8;:15::i;:::-;3561:22;;;;3495:142;3621:5;3614:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3376:267;;;;;:::o;3918:374:38:-;4011:14;4093:4;4087:11;4123:10;4118:3;4111:23;4170:15;4163:4;4158:3;4154:14;4147:39;4222:10;4215:4;4210:3;4206:14;4199:34;4271:4;4266:3;4256:20;4246:30;;4062:224;3918:374;;;;:::o;7129:1551:36:-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;2080:380:33:-;2139:13;2164:11;2178:16;2189:4;2178:10;:16::i;:::-;2164:30;;2282:17;2313:4;2302:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:36;;2379:3;2374;2367:16;2419:4;2412;2407:3;2403:14;2396:28;2450:3;2443:10;;;;2080:380;;;:::o;2532:247::-;2593:7;2612:14;2665:4;2656;2629:33;;:40;2612:57;;2692:4;2683:6;:13;2679:71;;;2719:20;;;;;;;;;;;;;;2679:71;2766:6;2759:13;;;2532:247;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:77::-;4783:7;4812:5;4801:16;;4746:77;;;:::o;4829:118::-;4916:24;4934:5;4916:24;:::i;:::-;4911:3;4904:37;4829:118;;:::o;4953:222::-;5046:4;5084:2;5073:9;5069:18;5061:26;;5097:71;5165:1;5154:9;5150:17;5141:6;5097:71;:::i;:::-;4953:222;;;;:::o;5181:329::-;5240:6;5289:2;5277:9;5268:7;5264:23;5260:32;5257:119;;;5295:79;;:::i;:::-;5257:119;5415:1;5440:53;5485:7;5476:6;5465:9;5461:22;5440:53;:::i;:::-;5430:63;;5386:117;5181:329;;;;:::o;5516:149::-;5552:7;5592:66;5585:5;5581:78;5570:89;;5516:149;;;:::o;5671:115::-;5756:23;5773:5;5756:23;:::i;:::-;5751:3;5744:36;5671:115;;:::o;5792:118::-;5879:24;5897:5;5879:24;:::i;:::-;5874:3;5867:37;5792:118;;:::o;5916:114::-;5983:6;6017:5;6011:12;6001:22;;5916:114;;;:::o;6036:184::-;6135:11;6169:6;6164:3;6157:19;6209:4;6204:3;6200:14;6185:29;;6036:184;;;;:::o;6226:132::-;6293:4;6316:3;6308:11;;6346:4;6341:3;6337:14;6329:22;;6226:132;;;:::o;6364:108::-;6441:24;6459:5;6441:24;:::i;:::-;6436:3;6429:37;6364:108;;:::o;6478:179::-;6547:10;6568:46;6610:3;6602:6;6568:46;:::i;:::-;6646:4;6641:3;6637:14;6623:28;;6478:179;;;;:::o;6663:113::-;6733:4;6765;6760:3;6756:14;6748:22;;6663:113;;;:::o;6812:732::-;6931:3;6960:54;7008:5;6960:54;:::i;:::-;7030:86;7109:6;7104:3;7030:86;:::i;:::-;7023:93;;7140:56;7190:5;7140:56;:::i;:::-;7219:7;7250:1;7235:284;7260:6;7257:1;7254:13;7235:284;;;7336:6;7330:13;7363:63;7422:3;7407:13;7363:63;:::i;:::-;7356:70;;7449:60;7502:6;7449:60;:::i;:::-;7439:70;;7295:224;7282:1;7279;7275:9;7270:14;;7235:284;;;7239:14;7535:3;7528:10;;6936:608;;;6812:732;;;;:::o;7550:1215::-;7899:4;7937:3;7926:9;7922:19;7914:27;;7951:69;8017:1;8006:9;8002:17;7993:6;7951:69;:::i;:::-;8067:9;8061:4;8057:20;8052:2;8041:9;8037:18;8030:48;8095:78;8168:4;8159:6;8095:78;:::i;:::-;8087:86;;8220:9;8214:4;8210:20;8205:2;8194:9;8190:18;8183:48;8248:78;8321:4;8312:6;8248:78;:::i;:::-;8240:86;;8336:72;8404:2;8393:9;8389:18;8380:6;8336:72;:::i;:::-;8418:73;8486:3;8475:9;8471:19;8462:6;8418:73;:::i;:::-;8501;8569:3;8558:9;8554:19;8545:6;8501:73;:::i;:::-;8622:9;8616:4;8612:20;8606:3;8595:9;8591:19;8584:49;8650:108;8753:4;8744:6;8650:108;:::i;:::-;8642:116;;7550:1215;;;;;;;;;;:::o;8771:329::-;8830:6;8879:2;8867:9;8858:7;8854:23;8850:32;8847:119;;;8885:79;;:::i;:::-;8847:119;9005:1;9030:53;9075:7;9066:6;9055:9;9051:22;9030:53;:::i;:::-;9020:63;;8976:117;8771:329;;;;:::o;9106:118::-;9177:22;9193:5;9177:22;:::i;:::-;9170:5;9167:33;9157:61;;9214:1;9211;9204:12;9157:61;9106:118;:::o;9230:135::-;9274:5;9312:6;9299:20;9290:29;;9328:31;9353:5;9328:31;:::i;:::-;9230:135;;;;:::o;9371:122::-;9444:24;9462:5;9444:24;:::i;:::-;9437:5;9434:35;9424:63;;9483:1;9480;9473:12;9424:63;9371:122;:::o;9499:139::-;9545:5;9583:6;9570:20;9561:29;;9599:33;9626:5;9599:33;:::i;:::-;9499:139;;;;:::o;9644:1199::-;9755:6;9763;9771;9779;9787;9795;9803;9852:3;9840:9;9831:7;9827:23;9823:33;9820:120;;;9859:79;;:::i;:::-;9820:120;9979:1;10004:53;10049:7;10040:6;10029:9;10025:22;10004:53;:::i;:::-;9994:63;;9950:117;10106:2;10132:53;10177:7;10168:6;10157:9;10153:22;10132:53;:::i;:::-;10122:63;;10077:118;10234:2;10260:53;10305:7;10296:6;10285:9;10281:22;10260:53;:::i;:::-;10250:63;;10205:118;10362:2;10388:53;10433:7;10424:6;10413:9;10409:22;10388:53;:::i;:::-;10378:63;;10333:118;10490:3;10517:51;10560:7;10551:6;10540:9;10536:22;10517:51;:::i;:::-;10507:61;;10461:117;10617:3;10644:53;10689:7;10680:6;10669:9;10665:22;10644:53;:::i;:::-;10634:63;;10588:119;10746:3;10773:53;10818:7;10809:6;10798:9;10794:22;10773:53;:::i;:::-;10763:63;;10717:119;9644:1199;;;;;;;;;;:::o;10849:474::-;10917:6;10925;10974:2;10962:9;10953:7;10949:23;10945:32;10942:119;;;10980:79;;:::i;:::-;10942:119;11100:1;11125:53;11170:7;11161:6;11150:9;11146:22;11125:53;:::i;:::-;11115:63;;11071:117;11227:2;11253:53;11298:7;11289:6;11278:9;11274:22;11253:53;:::i;:::-;11243:63;;11198:118;10849:474;;;;;:::o;11329:180::-;11377:77;11374:1;11367:88;11474:4;11471:1;11464:15;11498:4;11495:1;11488:15;11515:320;11559:6;11596:1;11590:4;11586:12;11576:22;;11643:1;11637:4;11633:12;11664:18;11654:81;;11720:4;11712:6;11708:17;11698:27;;11654:81;11782:2;11774:6;11771:14;11751:18;11748:38;11745:84;;11801:18;;:::i;:::-;11745:84;11566:269;11515:320;;;:::o;11841:180::-;11889:77;11886:1;11879:88;11986:4;11983:1;11976:15;12010:4;12007:1;12000:15;12027:179;12167:31;12163:1;12155:6;12151:14;12144:55;12027:179;:::o;12212:366::-;12354:3;12375:67;12439:2;12434:3;12375:67;:::i;:::-;12368:74;;12451:93;12540:3;12451:93;:::i;:::-;12569:2;12564:3;12560:12;12553:19;;12212:366;;;:::o;12584:419::-;12750:4;12788:2;12777:9;12773:18;12765:26;;12837:9;12831:4;12827:20;12823:1;12812:9;12808:17;12801:47;12865:131;12991:4;12865:131;:::i;:::-;12857:139;;12584:419;;;:::o;13009:775::-;13242:4;13280:3;13269:9;13265:19;13257:27;;13294:71;13362:1;13351:9;13347:17;13338:6;13294:71;:::i;:::-;13375:72;13443:2;13432:9;13428:18;13419:6;13375:72;:::i;:::-;13457;13525:2;13514:9;13510:18;13501:6;13457:72;:::i;:::-;13539;13607:2;13596:9;13592:18;13583:6;13539:72;:::i;:::-;13621:73;13689:3;13678:9;13674:19;13665:6;13621:73;:::i;:::-;13704;13772:3;13761:9;13757:19;13748:6;13704:73;:::i;:::-;13009:775;;;;;;;;;:::o;13790:180::-;13930:32;13926:1;13918:6;13914:14;13907:56;13790:180;:::o;13976:366::-;14118:3;14139:67;14203:2;14198:3;14139:67;:::i;:::-;14132:74;;14215:93;14304:3;14215:93;:::i;:::-;14333:2;14328:3;14324:12;14317:19;;13976:366;;;:::o;14348:419::-;14514:4;14552:2;14541:9;14537:18;14529:26;;14601:9;14595:4;14591:20;14587:1;14576:9;14572:17;14565:47;14629:131;14755:4;14629:131;:::i;:::-;14621:139;;14348:419;;;:::o;14773:442::-;14922:4;14960:2;14949:9;14945:18;14937:26;;14973:71;15041:1;15030:9;15026:17;15017:6;14973:71;:::i;:::-;15054:72;15122:2;15111:9;15107:18;15098:6;15054:72;:::i;:::-;15136;15204:2;15193:9;15189:18;15180:6;15136:72;:::i;:::-;14773:442;;;;;;:::o;15221:222::-;15314:4;15352:2;15341:9;15337:18;15329:26;;15365:71;15433:1;15422:9;15418:17;15409:6;15365:71;:::i;:::-;15221:222;;;;:::o;15449:180::-;15497:77;15494:1;15487:88;15594:4;15591:1;15584:15;15618:4;15615:1;15608:15;15635:191;15675:3;15694:20;15712:1;15694:20;:::i;:::-;15689:25;;15728:20;15746:1;15728:20;:::i;:::-;15723:25;;15771:1;15768;15764:9;15757:16;;15792:3;15789:1;15786:10;15783:36;;;15799:18;;:::i;:::-;15783:36;15635:191;;;;:::o;15832:664::-;16037:4;16075:3;16064:9;16060:19;16052:27;;16089:71;16157:1;16146:9;16142:17;16133:6;16089:71;:::i;:::-;16170:72;16238:2;16227:9;16223:18;16214:6;16170:72;:::i;:::-;16252;16320:2;16309:9;16305:18;16296:6;16252:72;:::i;:::-;16334;16402:2;16391:9;16387:18;16378:6;16334:72;:::i;:::-;16416:73;16484:3;16473:9;16469:19;16460:6;16416:73;:::i;:::-;15832:664;;;;;;;;:::o;16502:545::-;16675:4;16713:3;16702:9;16698:19;16690:27;;16727:71;16795:1;16784:9;16780:17;16771:6;16727:71;:::i;:::-;16808:68;16872:2;16861:9;16857:18;16848:6;16808:68;:::i;:::-;16886:72;16954:2;16943:9;16939:18;16930:6;16886:72;:::i;:::-;16968;17036:2;17025:9;17021:18;17012:6;16968:72;:::i;:::-;16502:545;;;;;;;:::o;17053:180::-;17101:77;17098:1;17091:88;17198:4;17195:1;17188:15;17222:4;17219:1;17212:15","linkReferences":{},"immutableReferences":{"45272":[{"start":2507,"length":32}],"45274":[{"start":2466,"length":32}],"45276":[{"start":2380,"length":32}],"45278":[{"start":4065,"length":32}],"45280":[{"start":4098,"length":32}],"45283":[{"start":2568,"length":32}],"45286":[{"start":2627,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","eip712Domain()":"84b0196e","mint(uint256)":"a0712d68","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"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\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"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\":[],\"name\":\"EIP712DomainChanged\",\"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\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"details\":\"ERC20 Permit \\u6269\\u5c55\\u7684\\u63a5\\u53e3\\uff0c\\u5141\\u8bb8\\u901a\\u8fc7\\u7b7e\\u540d\\u8fdb\\u884c\\u6279\\u51c6\\uff0c\\u5982 https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]\\u4e2d\\u5b9a\\u4e49\\u3002 \\u6dfb\\u52a0\\u4e86 {permit} \\u65b9\\u6cd5\\uff0c\\u53ef\\u4ee5\\u901a\\u8fc7\\u5e10\\u6237\\u7b7e\\u540d\\u7684\\u6d88\\u606f\\u66f4\\u6539\\u5e10\\u6237\\u7684 ERC20 \\u4f59\\u989d\\uff08\\u53c2\\u89c1 {IERC20-allowance}\\uff09\\u3002\\u901a\\u8fc7\\u4e0d\\u4f9d\\u8d56 {IERC20-approve}\\uff0c\\u4ee3\\u5e01\\u6301\\u6709\\u8005\\u7684\\u5e10\\u6237\\u65e0\\u9700\\u53d1\\u9001\\u4ea4\\u6613\\uff0c\\u56e0\\u6b64\\u5b8c\\u5168\\u4e0d\\u9700\\u8981\\u6301\\u6709 Ether\\u3002\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"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.\"}}]},\"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.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"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\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"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`.\"},\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316 EIP712 \\u7684 name \\u4ee5\\u53ca ERC20 \\u7684 name \\u548c symbol\"},\"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}.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/53_ERC20Permit/ERC20Permit.sol\":\"ERC20Permit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99\",\"dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4\",\"dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/53_ERC20Permit/ERC20Permit.sol\":{\"keccak256\":\"0xe9f75ff8d62ed6365a893dc461f27d824780e72e66057f2214a94abe0a4a5f7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282a2cc803ef88c4174b2f53c03e76e35c998b2d95f10f2ce160731338d2fb0e\",\"dweb:/ipfs/QmTyt5Jky2icbcMJbtZpQZndRk3x5x2yqjUSzG3ytMyVap\"]},\"src/53_ERC20Permit/IERC20Permit.sol\":{\"keccak256\":\"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33\",\"dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"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":"InvalidShortString"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"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":[],"type":"event","name":"EIP712DomainChanged","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":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"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"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"See {IERC20Permit-DOMAIN_SEPARATOR}."},"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`."},"constructor":{"details":"初始化 EIP712 的 name 以及 ERC20 的 name 和 symbol"},"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}."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"See {IERC20Permit-nonces}."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"See {IERC20Permit-permit}."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/53_ERC20Permit/ERC20Permit.sol":"ERC20Permit"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c","urls":["bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99","dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia"],"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/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4","urls":["bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4","dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/53_ERC20Permit/ERC20Permit.sol":{"keccak256":"0xe9f75ff8d62ed6365a893dc461f27d824780e72e66057f2214a94abe0a4a5f7b","urls":["bzz-raw://282a2cc803ef88c4174b2f53c03e76e35c998b2d95f10f2ce160731338d2fb0e","dweb:/ipfs/QmTyt5Jky2icbcMJbtZpQZndRk3x5x2yqjUSzG3ytMyVap"],"license":"MIT"},"src/53_ERC20Permit/IERC20Permit.sol":{"keccak256":"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7","urls":["bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33","dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br"],"license":"MIT"}},"version":1},"id":114} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"EIP712DomainChanged","inputs":[],"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":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"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":"InvalidShortString","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x610160604052348015610010575f5ffd5b50604051612625380380612625833981810160405281019061003291906103a0565b816040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508383816003908161007a9190610637565b50806004908161008a9190610637565b5050506100a160058361013e60201b90919060201c565b61012081815250506100bd60068261013e60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506100fa61018b60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505050506108b8565b5f60208351101561015f57610158836101e560201b60201c565b9050610185565b8261016f8361024a60201b60201c565b5f01908161017d9190610637565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016101ca95949392919061076c565b60405160208183030381529060405280519060200120905090565b5f5f829050601f8151111561023157826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016102289190610805565b60405180910390fd5b80518161023d90610852565b5f1c175f1b915050919050565b5f819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102b28261026c565b810181811067ffffffffffffffff821117156102d1576102d061027c565b5b80604052505050565b5f6102e3610253565b90506102ef82826102a9565b919050565b5f67ffffffffffffffff82111561030e5761030d61027c565b5b6103178261026c565b9050602081019050919050565b8281835e5f83830152505050565b5f61034461033f846102f4565b6102da565b9050828152602081018484840111156103605761035f610268565b5b61036b848285610324565b509392505050565b5f82601f83011261038757610386610264565b5b8151610397848260208601610332565b91505092915050565b5f5f604083850312156103b6576103b561025c565b5b5f83015167ffffffffffffffff8111156103d3576103d2610260565b5b6103df85828601610373565b925050602083015167ffffffffffffffff811115610400576103ff610260565b5b61040c85828601610373565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061046457607f821691505b60208210810361047757610476610420565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261049e565b6104e3868361049e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61052761052261051d846104fb565b610504565b6104fb565b9050919050565b5f819050919050565b6105408361050d565b61055461054c8261052e565b8484546104aa565b825550505050565b5f5f905090565b61056b61055c565b610576818484610537565b505050565b5f5b8281101561059c576105915f828401610563565b60018101905061057d565b505050565b601f8211156105ef57828211156105ee576105bb8161047d565b6105c48361048f565b6105cd8561048f565b60208610156105da575f90505b8083016105e98284038261057b565b505050505b5b505050565b5f82821c905092915050565b5f61060f5f19846008026105f4565b1980831691505092915050565b5f6106278383610600565b9150826002028217905092915050565b61064082610416565b67ffffffffffffffff8111156106595761065861027c565b5b610663825461044d565b61066e8282856105a1565b5f60209050601f83116001811461069f575f841561068d578287015190505b610697858261061c565b8655506106fe565b601f1984166106ad8661047d565b5f5b828110156106d4578489015182556001820191506020850194506020810190506106af565b868310156106f157848901516106ed601f891682610600565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b61071881610706565b82525050565b610727816104fb565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107568261072d565b9050919050565b6107668161074c565b82525050565b5f60a08201905061077f5f83018861070f565b61078c602083018761070f565b610799604083018661070f565b6107a6606083018561071e565b6107b3608083018461075d565b9695505050505050565b5f82825260208201905092915050565b5f6107d782610416565b6107e181856107bd565b93506107f1818560208601610324565b6107fa8161026c565b840191505092915050565b5f6020820190508181035f83015261081d81846107cd565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f6108498251610706565b80915050919050565b5f61085c82610825565b826108668461082f565b90506108718161083e565b925060208210156108b1576108ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261049e565b831692505b5050919050565b60805160a05160c05160e051610100516101205161014051611d1c6109095f395f610a4301525f610a0801525f61100201525f610fe101525f61094c01525f6109a201525f6109cb0152611d1c5ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80637ecebe001161008a578063a0712d6811610064578063a0712d6814610266578063a9059cbb14610282578063d505accf146102b2578063dd62ed3e146102ce576100e8565b80637ecebe00146101f457806384b0196e1461022457806395d89b4114610248576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce567146101885780633644e515146101a657806370a08231146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102fe565b60405161010191906114b8565b60405180910390f35b610124600480360381019061011f9190611569565b61038e565b60405161013191906115c1565b60405180910390f35b6101426103b0565b60405161014f91906115e9565b60405180910390f35b610172600480360381019061016d9190611602565b6103b9565b60405161017f91906115c1565b60405180910390f35b6101906103e7565b60405161019d919061166d565b60405180910390f35b6101ae6103ef565b6040516101bb919061169e565b60405180910390f35b6101de60048036038101906101d991906116b7565b6103fd565b6040516101eb91906115e9565b60405180910390f35b61020e600480360381019061020991906116b7565b610442565b60405161021b91906115e9565b60405180910390f35b61022c610488565b60405161023f97969594939291906117e2565b60405180910390f35b61025061052d565b60405161025d91906114b8565b60405180910390f35b610280600480360381019061027b9190611864565b6105bd565b005b61029c60048036038101906102979190611569565b6105ca565b6040516102a991906115c1565b60405180910390f35b6102cc60048036038101906102c791906118e3565b6105ec565b005b6102e860048036038101906102e39190611980565b61072b565b6040516102f591906115e9565b60405180910390f35b60606003805461030d906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610339906119eb565b80156103845780601f1061035b57610100808354040283529160200191610384565b820191905f5260205f20905b81548152906001019060200180831161036757829003601f168201915b5050505050905090565b5f5f6103986107ad565b90506103a58185856107b4565b600191505092915050565b5f600254905090565b5f5f6103c36107ad565b90506103d08582856107c6565b6103db858585610859565b60019150509392505050565b5f6012905090565b5f6103f8610949565b905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6060805f5f5f60606104996109ff565b6104a1610a3a565b46305f5f1b5f67ffffffffffffffff8111156104c0576104bf611a1b565b5b6040519080825280602002602001820160405280156104ee5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60606004805461053c906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610568906119eb565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6105c73382610a75565b50565b5f5f6105d46107ad565b90506105e1818585610859565b600191505092915050565b8342111561062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690611a92565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861065d8c610af4565b8960405160200161067396959493929190611ab0565b6040516020818303038152906040528051906020012090505f61069582610b8e565b90505f6106a482878787610ba7565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90611b59565b60405180910390fd5b61071f8a8a8a6107b4565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6107c18383836001610bd5565b505050565b5f6107d1848461072b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108535781811015610844578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161083b93929190611b77565b60405180910390fd5b61085284848484035f610bd5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108c09190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610939575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109309190611bac565b60405180910390fd5b610944838383610da4565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156109c457507f000000000000000000000000000000000000000000000000000000000000000046145b156109f1577f000000000000000000000000000000000000000000000000000000000000000090506109fc565b6109f9610fbd565b90505b90565b6060610a3560057f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b6060610a7060067f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610adc9190611bac565b60405180910390fd5b610af05f8383610da4565b5050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b829190611bf2565b92505081905550919050565b5f610ba0610b9a610949565b836110ff565b9050919050565b5f5f5f5f610bb78888888861113f565b925092509250610bc78282611226565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c45575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c3c9190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb5575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cac9190611bac565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610d9e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d9591906115e9565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df4578060025f828254610de89190611bf2565b92505081905550610ec2565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610e7493929190611b77565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f09578060025f8282540392505081905550610f53565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb091906115e9565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611037959493929190611c25565b60405160208183030381529060405280519060200120905090565b606060ff5f1b831461106e5761106783611388565b90506110f9565b81805461107a906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546110a6906119eb565b80156110f15780601f106110c8576101008083540402835291602001916110f1565b820191905f5260205f20905b8154815290600101906020018083116110d457829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561117b575f60038592509250925061121c565b5f6001888888886040515f815260200160405260405161119e9493929190611c76565b6020604051602081039080840390855afa1580156111be573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f575f60015f5f1b9350935093505061121c565b805f5f5f1b935093509350505b9450945094915050565b5f600381111561123957611238611cb9565b5b82600381111561124c5761124b611cb9565b5b0315611384576001600381111561126657611265611cb9565b5b82600381111561127957611278611cb9565b5b036112b0576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156112c4576112c3611cb9565b5b8260038111156112d7576112d6611cb9565b5b0361131b57805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161131291906115e9565b60405180910390fd5b60038081111561132e5761132d611cb9565b5b82600381111561134157611340611cb9565b5b0361138357806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161137a919061169e565b60405180910390fd5b5b5050565b60605f611394836113fa565b90505f602067ffffffffffffffff8111156113b2576113b1611a1b565b5b6040519080825280601f01601f1916602001820160405280156113e45781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f60ff835f1c169050601f81111561143f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61148a82611448565b6114948185611452565b93506114a4818560208601611462565b6114ad81611470565b840191505092915050565b5f6020820190508181035f8301526114d08184611480565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611505826114dc565b9050919050565b611515816114fb565b811461151f575f5ffd5b50565b5f813590506115308161150c565b92915050565b5f819050919050565b61154881611536565b8114611552575f5ffd5b50565b5f813590506115638161153f565b92915050565b5f5f6040838503121561157f5761157e6114d8565b5b5f61158c85828601611522565b925050602061159d85828601611555565b9150509250929050565b5f8115159050919050565b6115bb816115a7565b82525050565b5f6020820190506115d45f8301846115b2565b92915050565b6115e381611536565b82525050565b5f6020820190506115fc5f8301846115da565b92915050565b5f5f5f60608486031215611619576116186114d8565b5b5f61162686828701611522565b935050602061163786828701611522565b925050604061164886828701611555565b9150509250925092565b5f60ff82169050919050565b61166781611652565b82525050565b5f6020820190506116805f83018461165e565b92915050565b5f819050919050565b61169881611686565b82525050565b5f6020820190506116b15f83018461168f565b92915050565b5f602082840312156116cc576116cb6114d8565b5b5f6116d984828501611522565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611716816116e2565b82525050565b611725816114fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61175d81611536565b82525050565b5f61176e8383611754565b60208301905092915050565b5f602082019050919050565b5f6117908261172b565b61179a8185611735565b93506117a583611745565b805f5b838110156117d55781516117bc8882611763565b97506117c78361177a565b9250506001810190506117a8565b5085935050505092915050565b5f60e0820190506117f55f83018a61170d565b81810360208301526118078189611480565b9050818103604083015261181b8188611480565b905061182a60608301876115da565b611837608083018661171c565b61184460a083018561168f565b81810360c08301526118568184611786565b905098975050505050505050565b5f60208284031215611879576118786114d8565b5b5f61188684828501611555565b91505092915050565b61189881611652565b81146118a2575f5ffd5b50565b5f813590506118b38161188f565b92915050565b6118c281611686565b81146118cc575f5ffd5b50565b5f813590506118dd816118b9565b92915050565b5f5f5f5f5f5f5f60e0888a0312156118fe576118fd6114d8565b5b5f61190b8a828b01611522565b975050602061191c8a828b01611522565b965050604061192d8a828b01611555565b955050606061193e8a828b01611555565b945050608061194f8a828b016118a5565b93505060a06119608a828b016118cf565b92505060c06119718a828b016118cf565b91505092959891949750929550565b5f5f60408385031215611996576119956114d8565b5b5f6119a385828601611522565b92505060206119b485828601611522565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f611a7c601d83611452565b9150611a8782611a48565b602082019050919050565b5f6020820190508181035f830152611aa981611a70565b9050919050565b5f60c082019050611ac35f83018961168f565b611ad0602083018861171c565b611add604083018761171c565b611aea60608301866115da565b611af760808301856115da565b611b0460a08301846115da565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f611b43601e83611452565b9150611b4e82611b0f565b602082019050919050565b5f6020820190508181035f830152611b7081611b37565b9050919050565b5f606082019050611b8a5f83018661171c565b611b9760208301856115da565b611ba460408301846115da565b949350505050565b5f602082019050611bbf5f83018461171c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bfc82611536565b9150611c0783611536565b9250828201905080821115611c1f57611c1e611bc5565b5b92915050565b5f60a082019050611c385f83018861168f565b611c45602083018761168f565b611c52604083018661168f565b611c5f60608301856115da565b611c6c608083018461171c565b9695505050505050565b5f608082019050611c895f83018761168f565b611c96602083018661165e565b611ca3604083018561168f565b611cb0606083018461168f565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea264697066735822122035be5e114192c70d04db0a69786bde45c880a417193c438659b36f9b5f06ec9564736f6c63430008220033","sourceMap":"664:1988:108:-:0;;;1010:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1071:4;3428:431:37;;;;;;;;;;;;;;;;;1088:4:108;1094:6;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;3501:45:37;3532:13;3501:4;:30;;;;:45;;;;:::i;:::-;3493:53;;;;;;3567:51;3601:16;3567:7;:33;;;;:51;;;;:::i;:::-;3556:62;;;;;;3658:4;3642:22;;;;;;3628:36;;;;;;3707:7;3691:25;;;;;;3674:42;;;;;;3744:13;3727:30;;;;;;3792:23;:21;;;:23;;:::i;:::-;3767:48;;;;;;3847:4;3825:27;;;;;;;;;;3428:431;;1010:93:108;;664:1988;;2893:342:33;2989:11;3038:4;3022:5;3016:19;:26;3012:217;;;3065:20;3079:5;3065:13;;;:20;;:::i;:::-;3058:27;;;;3012:217;3157:5;3116:32;3142:5;3116:25;;;:32;;:::i;:::-;:38;;:46;;;;;;:::i;:::-;;1390:66;3200:17;;3176:42;;2893:342;;;;;:::o;4213:179:37:-;4268:7;2079:95;4326:11;;4339:14;;4355:13;4378:4;4304:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;:::o;1708:288:33:-;1773:11;1796:17;1822:3;1796:30;;1854:4;1840;:11;:18;1836:74;;;1895:3;1881:18;;;;;;;;;;;:::i;:::-;;;;;;;;1836:74;1976:4;:11;1967:4;1959:13;;;:::i;:::-;1951:22;;:36;1943:45;;1919:70;;;1708:288;;;:::o;3468:175:34:-;3536:20;3617:10;3607:20;;3468:175;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;8701:77::-;8738:7;8767:5;8756:16;;8701:77;;;:::o;8784:118::-;8871:24;8889:5;8871:24;:::i;:::-;8866:3;8859:37;8784:118;;:::o;8908:::-;8995:24;9013:5;8995:24;:::i;:::-;8990:3;8983:37;8908:118;;:::o;9032:126::-;9069:7;9109:42;9102:5;9098:54;9087:65;;9032:126;;;:::o;9164:96::-;9201:7;9230:24;9248:5;9230:24;:::i;:::-;9219:35;;9164:96;;;:::o;9266:118::-;9353:24;9371:5;9353:24;:::i;:::-;9348:3;9341:37;9266:118;;:::o;9390:664::-;9595:4;9633:3;9622:9;9618:19;9610:27;;9647:71;9715:1;9704:9;9700:17;9691:6;9647:71;:::i;:::-;9728:72;9796:2;9785:9;9781:18;9772:6;9728:72;:::i;:::-;9810;9878:2;9867:9;9863:18;9854:6;9810:72;:::i;:::-;9892;9960:2;9949:9;9945:18;9936:6;9892:72;:::i;:::-;9974:73;10042:3;10031:9;10027:19;10018:6;9974:73;:::i;:::-;9390:664;;;;;;;;:::o;10060:169::-;10144:11;10178:6;10173:3;10166:19;10218:4;10213:3;10209:14;10194:29;;10060:169;;;;:::o;10235:377::-;10323:3;10351:39;10384:5;10351:39;:::i;:::-;10406:71;10470:6;10465:3;10406:71;:::i;:::-;10399:78;;10486:65;10544:6;10539:3;10532:4;10525:5;10521:16;10486:65;:::i;:::-;10576:29;10598:6;10576:29;:::i;:::-;10571:3;10567:39;10560:46;;10327:285;10235:377;;;;:::o;10618:313::-;10731:4;10769:2;10758:9;10754:18;10746:26;;10818:9;10812:4;10808:20;10804:1;10793:9;10789:17;10782:47;10846:78;10919:4;10910:6;10846:78;:::i;:::-;10838:86;;10618:313;;;;:::o;10937:98::-;10988:6;11022:5;11016:12;11006:22;;10937:98;;;:::o;11041:116::-;11092:4;11115:3;11107:11;;11145:4;11140:3;11136:14;11128:22;;11041:116;;;:::o;11163:154::-;11206:11;11242:29;11266:3;11260:10;11242:29;:::i;:::-;11305:5;11281:29;;11218:99;11163:154;;;:::o;11323:594::-;11407:5;11438:38;11470:5;11438:38;:::i;:::-;11501:5;11528:40;11562:5;11528:40;:::i;:::-;11516:52;;11587:35;11613:8;11587:35;:::i;:::-;11578:44;;11646:2;11638:6;11635:14;11632:278;;;11717:169;11802:66;11772:6;11768:2;11764:15;11761:1;11757:23;11717:169;:::i;:::-;11694:5;11673:227;11664:236;;11632:278;11413:504;;11323:594;;;:::o;664:1988:108:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80637ecebe001161008a578063a0712d6811610064578063a0712d6814610266578063a9059cbb14610282578063d505accf146102b2578063dd62ed3e146102ce576100e8565b80637ecebe00146101f457806384b0196e1461022457806395d89b4114610248576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce567146101885780633644e515146101a657806370a08231146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102fe565b60405161010191906114b8565b60405180910390f35b610124600480360381019061011f9190611569565b61038e565b60405161013191906115c1565b60405180910390f35b6101426103b0565b60405161014f91906115e9565b60405180910390f35b610172600480360381019061016d9190611602565b6103b9565b60405161017f91906115c1565b60405180910390f35b6101906103e7565b60405161019d919061166d565b60405180910390f35b6101ae6103ef565b6040516101bb919061169e565b60405180910390f35b6101de60048036038101906101d991906116b7565b6103fd565b6040516101eb91906115e9565b60405180910390f35b61020e600480360381019061020991906116b7565b610442565b60405161021b91906115e9565b60405180910390f35b61022c610488565b60405161023f97969594939291906117e2565b60405180910390f35b61025061052d565b60405161025d91906114b8565b60405180910390f35b610280600480360381019061027b9190611864565b6105bd565b005b61029c60048036038101906102979190611569565b6105ca565b6040516102a991906115c1565b60405180910390f35b6102cc60048036038101906102c791906118e3565b6105ec565b005b6102e860048036038101906102e39190611980565b61072b565b6040516102f591906115e9565b60405180910390f35b60606003805461030d906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610339906119eb565b80156103845780601f1061035b57610100808354040283529160200191610384565b820191905f5260205f20905b81548152906001019060200180831161036757829003601f168201915b5050505050905090565b5f5f6103986107ad565b90506103a58185856107b4565b600191505092915050565b5f600254905090565b5f5f6103c36107ad565b90506103d08582856107c6565b6103db858585610859565b60019150509392505050565b5f6012905090565b5f6103f8610949565b905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6060805f5f5f60606104996109ff565b6104a1610a3a565b46305f5f1b5f67ffffffffffffffff8111156104c0576104bf611a1b565b5b6040519080825280602002602001820160405280156104ee5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60606004805461053c906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610568906119eb565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b6105c73382610a75565b50565b5f5f6105d46107ad565b90506105e1818585610859565b600191505092915050565b8342111561062f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062690611a92565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861065d8c610af4565b8960405160200161067396959493929190611ab0565b6040516020818303038152906040528051906020012090505f61069582610b8e565b90505f6106a482878787610ba7565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90611b59565b60405180910390fd5b61071f8a8a8a6107b4565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6107c18383836001610bd5565b505050565b5f6107d1848461072b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156108535781811015610844578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161083b93929190611b77565b60405180910390fd5b61085284848484035f610bd5565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108c09190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610939575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109309190611bac565b60405180910390fd5b610944838383610da4565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156109c457507f000000000000000000000000000000000000000000000000000000000000000046145b156109f1577f000000000000000000000000000000000000000000000000000000000000000090506109fc565b6109f9610fbd565b90505b90565b6060610a3560057f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b6060610a7060067f000000000000000000000000000000000000000000000000000000000000000061105290919063ffffffff16565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610adc9190611bac565b60405180910390fd5b610af05f8383610da4565b5050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050600160075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b829190611bf2565b92505081905550919050565b5f610ba0610b9a610949565b836110ff565b9050919050565b5f5f5f5f610bb78888888861113f565b925092509250610bc78282611226565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c45575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610c3c9190611bac565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cb5575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610cac9190611bac565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610d9e578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d9591906115e9565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610df4578060025f828254610de89190611bf2565b92505081905550610ec2565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610e7493929190611b77565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f09578060025f8282540392505081905550610f53565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fb091906115e9565b60405180910390a3505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611037959493929190611c25565b60405160208183030381529060405280519060200120905090565b606060ff5f1b831461106e5761106783611388565b90506110f9565b81805461107a906119eb565b80601f01602080910402602001604051908101604052809291908181526020018280546110a6906119eb565b80156110f15780601f106110c8576101008083540402835291602001916110f1565b820191905f5260205f20905b8154815290600101906020018083116110d457829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561117b575f60038592509250925061121c565b5f6001888888886040515f815260200160405260405161119e9493929190611c76565b6020604051602081039080840390855afa1580156111be573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120f575f60015f5f1b9350935093505061121c565b805f5f5f1b935093509350505b9450945094915050565b5f600381111561123957611238611cb9565b5b82600381111561124c5761124b611cb9565b5b0315611384576001600381111561126657611265611cb9565b5b82600381111561127957611278611cb9565b5b036112b0576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156112c4576112c3611cb9565b5b8260038111156112d7576112d6611cb9565b5b0361131b57805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161131291906115e9565b60405180910390fd5b60038081111561132e5761132d611cb9565b5b82600381111561134157611340611cb9565b5b0361138357806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161137a919061169e565b60405180910390fd5b5b5050565b60605f611394836113fa565b90505f602067ffffffffffffffff8111156113b2576113b1611a1b565b5b6040519080825280601f01601f1916602001820160405280156113e45781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f60ff835f1c169050601f81111561143f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61148a82611448565b6114948185611452565b93506114a4818560208601611462565b6114ad81611470565b840191505092915050565b5f6020820190508181035f8301526114d08184611480565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611505826114dc565b9050919050565b611515816114fb565b811461151f575f5ffd5b50565b5f813590506115308161150c565b92915050565b5f819050919050565b61154881611536565b8114611552575f5ffd5b50565b5f813590506115638161153f565b92915050565b5f5f6040838503121561157f5761157e6114d8565b5b5f61158c85828601611522565b925050602061159d85828601611555565b9150509250929050565b5f8115159050919050565b6115bb816115a7565b82525050565b5f6020820190506115d45f8301846115b2565b92915050565b6115e381611536565b82525050565b5f6020820190506115fc5f8301846115da565b92915050565b5f5f5f60608486031215611619576116186114d8565b5b5f61162686828701611522565b935050602061163786828701611522565b925050604061164886828701611555565b9150509250925092565b5f60ff82169050919050565b61166781611652565b82525050565b5f6020820190506116805f83018461165e565b92915050565b5f819050919050565b61169881611686565b82525050565b5f6020820190506116b15f83018461168f565b92915050565b5f602082840312156116cc576116cb6114d8565b5b5f6116d984828501611522565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611716816116e2565b82525050565b611725816114fb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61175d81611536565b82525050565b5f61176e8383611754565b60208301905092915050565b5f602082019050919050565b5f6117908261172b565b61179a8185611735565b93506117a583611745565b805f5b838110156117d55781516117bc8882611763565b97506117c78361177a565b9250506001810190506117a8565b5085935050505092915050565b5f60e0820190506117f55f83018a61170d565b81810360208301526118078189611480565b9050818103604083015261181b8188611480565b905061182a60608301876115da565b611837608083018661171c565b61184460a083018561168f565b81810360c08301526118568184611786565b905098975050505050505050565b5f60208284031215611879576118786114d8565b5b5f61188684828501611555565b91505092915050565b61189881611652565b81146118a2575f5ffd5b50565b5f813590506118b38161188f565b92915050565b6118c281611686565b81146118cc575f5ffd5b50565b5f813590506118dd816118b9565b92915050565b5f5f5f5f5f5f5f60e0888a0312156118fe576118fd6114d8565b5b5f61190b8a828b01611522565b975050602061191c8a828b01611522565b965050604061192d8a828b01611555565b955050606061193e8a828b01611555565b945050608061194f8a828b016118a5565b93505060a06119608a828b016118cf565b92505060c06119718a828b016118cf565b91505092959891949750929550565b5f5f60408385031215611996576119956114d8565b5b5f6119a385828601611522565b92505060206119b485828601611522565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f611a7c601d83611452565b9150611a8782611a48565b602082019050919050565b5f6020820190508181035f830152611aa981611a70565b9050919050565b5f60c082019050611ac35f83018961168f565b611ad0602083018861171c565b611add604083018761171c565b611aea60608301866115da565b611af760808301856115da565b611b0460a08301846115da565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f611b43601e83611452565b9150611b4e82611b0f565b602082019050919050565b5f6020820190508181035f830152611b7081611b37565b9050919050565b5f606082019050611b8a5f83018661171c565b611b9760208301856115da565b611ba460408301846115da565b949350505050565b5f602082019050611bbf5f83018461171c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bfc82611536565b9150611c0783611536565b9250828201905080821115611c1f57611c1e611bc5565b5b92915050565b5f60a082019050611c385f83018861168f565b611c45602083018761168f565b611c52604083018661168f565b611c5f60608301856115da565b611c6c608083018461171c565b9695505050505050565b5f608082019050611c895f83018761168f565b611c96602083018661165e565b611ca3604083018561168f565b611cb0606083018461168f565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea264697066735822122035be5e114192c70d04db0a69786bde45c880a417193c438659b36f9b5f06ec9564736f6c63430008220033","sourceMap":"664:1988:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2182:113:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1995::108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5228:557:37;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2572:78:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1164:770:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;2182:113:108:-;2242:7;2268:20;:18;:20::i;:::-;2261:27;;2182:113;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1995::108:-;2064:7;2090;:14;2098:5;2090:14;;;;;;;;;;;;;;;;2083:21;;1995:116;;;:::o;5228:557:37:-;5326:13;5353:18;5385:21;5420:15;5449:25;5488:12;5514:27;5617:13;:11;:13::i;:::-;5644:16;:14;:16::i;:::-;5674:13;5709:4;5736:1;5728:10;;5766:1;5752:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5566:212;;;;;;;;;;;;;;;;;;;;;5228:557;;;;;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;2572:78:108:-;2618:25;2624:10;2636:6;2618:5;:25::i;:::-;2572:78;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;1164:770:108:-;1426:8;1407:15;:27;;1399:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1502:18;821:95;1562:5;1569:7;1578:5;1585:16;1595:5;1585:9;:16::i;:::-;1603:8;1533:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1523:90;;;;;;1502:111;;1623:12;1638:28;1655:10;1638:16;:28::i;:::-;1623:43;;1746:14;1763:28;1777:4;1783:1;1786;1789;1763:13;:28::i;:::-;1746:45;;1819:5;1809:15;;:6;:15;;;1801:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;1896:31;1905:5;1912:7;1921:5;1896:8;:31::i;:::-;1362:572;;;1164:770;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;3945:262:37:-;3998:7;4038:11;4021:28;;4029:4;4021:28;;;:63;;;;;4070:14;4053:13;:31;4021:63;4017:184;;;4107:22;4100:29;;;;4017:184;4167:23;:21;:23::i;:::-;4160:30;;3945:262;;:::o;6105:126::-;6151:13;6183:41;6210:13;6183:5;:26;;:41;;;;:::i;:::-;6176:48;;6105:126;:::o;6557:135::-;6606:13;6638:47;6668:16;6638:8;:29;;:47;;;;:::i;:::-;6631:54;;6557:135;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2394:147:108:-;2454:15;2491:7;:14;2499:5;2491:14;;;;;;;;;;;;;;;;2481:24;;2533:1;2515:7;:14;2523:5;2515:14;;;;;;;;;;;;;;;;:19;;;;;;;:::i;:::-;;;;;;;;2394:147;;;:::o;5017:176:37:-;5094:7;5120:66;5153:20;:18;:20::i;:::-;5175:10;5120:32;:66::i;:::-;5113:73;;5017:176;;;:::o;8813:260:36:-;8898:7;8918:17;8937:18;8957:16;8977:25;8988:4;8994:1;8997;9000;8977:10;:25::i;:::-;8917:85;;;;;;9012:28;9024:5;9031:8;9012:11;:28::i;:::-;9057:9;9050:16;;;;;8813:260;;;;;;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;4213:179:37:-;4268:7;2079:95;4326:11;4339:14;4355:13;4378:4;4304:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;:::o;3376:267:33:-;3470:13;1390:66;3528:17;;3518:5;3499:46;3495:142;;3568:15;3577:5;3568:8;:15::i;:::-;3561:22;;;;3495:142;3621:5;3614:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3376:267;;;;;:::o;3918:374:38:-;4011:14;4093:4;4087:11;4123:10;4118:3;4111:23;4170:15;4163:4;4158:3;4154:14;4147:39;4222:10;4215:4;4210:3;4206:14;4199:34;4271:4;4266:3;4256:20;4246:30;;4062:224;3918:374;;;;:::o;7129:1551:36:-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;2080:380:33:-;2139:13;2164:11;2178:16;2189:4;2178:10;:16::i;:::-;2164:30;;2282:17;2313:4;2302:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:36;;2379:3;2374;2367:16;2419:4;2412;2407:3;2403:14;2396:28;2450:3;2443:10;;;;2080:380;;;:::o;2532:247::-;2593:7;2612:14;2665:4;2656;2629:33;;:40;2612:57;;2692:4;2683:6;:13;2679:71;;;2719:20;;;;;;;;;;;;;;2679:71;2766:6;2759:13;;;2532:247;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:77::-;4783:7;4812:5;4801:16;;4746:77;;;:::o;4829:118::-;4916:24;4934:5;4916:24;:::i;:::-;4911:3;4904:37;4829:118;;:::o;4953:222::-;5046:4;5084:2;5073:9;5069:18;5061:26;;5097:71;5165:1;5154:9;5150:17;5141:6;5097:71;:::i;:::-;4953:222;;;;:::o;5181:329::-;5240:6;5289:2;5277:9;5268:7;5264:23;5260:32;5257:119;;;5295:79;;:::i;:::-;5257:119;5415:1;5440:53;5485:7;5476:6;5465:9;5461:22;5440:53;:::i;:::-;5430:63;;5386:117;5181:329;;;;:::o;5516:149::-;5552:7;5592:66;5585:5;5581:78;5570:89;;5516:149;;;:::o;5671:115::-;5756:23;5773:5;5756:23;:::i;:::-;5751:3;5744:36;5671:115;;:::o;5792:118::-;5879:24;5897:5;5879:24;:::i;:::-;5874:3;5867:37;5792:118;;:::o;5916:114::-;5983:6;6017:5;6011:12;6001:22;;5916:114;;;:::o;6036:184::-;6135:11;6169:6;6164:3;6157:19;6209:4;6204:3;6200:14;6185:29;;6036:184;;;;:::o;6226:132::-;6293:4;6316:3;6308:11;;6346:4;6341:3;6337:14;6329:22;;6226:132;;;:::o;6364:108::-;6441:24;6459:5;6441:24;:::i;:::-;6436:3;6429:37;6364:108;;:::o;6478:179::-;6547:10;6568:46;6610:3;6602:6;6568:46;:::i;:::-;6646:4;6641:3;6637:14;6623:28;;6478:179;;;;:::o;6663:113::-;6733:4;6765;6760:3;6756:14;6748:22;;6663:113;;;:::o;6812:732::-;6931:3;6960:54;7008:5;6960:54;:::i;:::-;7030:86;7109:6;7104:3;7030:86;:::i;:::-;7023:93;;7140:56;7190:5;7140:56;:::i;:::-;7219:7;7250:1;7235:284;7260:6;7257:1;7254:13;7235:284;;;7336:6;7330:13;7363:63;7422:3;7407:13;7363:63;:::i;:::-;7356:70;;7449:60;7502:6;7449:60;:::i;:::-;7439:70;;7295:224;7282:1;7279;7275:9;7270:14;;7235:284;;;7239:14;7535:3;7528:10;;6936:608;;;6812:732;;;;:::o;7550:1215::-;7899:4;7937:3;7926:9;7922:19;7914:27;;7951:69;8017:1;8006:9;8002:17;7993:6;7951:69;:::i;:::-;8067:9;8061:4;8057:20;8052:2;8041:9;8037:18;8030:48;8095:78;8168:4;8159:6;8095:78;:::i;:::-;8087:86;;8220:9;8214:4;8210:20;8205:2;8194:9;8190:18;8183:48;8248:78;8321:4;8312:6;8248:78;:::i;:::-;8240:86;;8336:72;8404:2;8393:9;8389:18;8380:6;8336:72;:::i;:::-;8418:73;8486:3;8475:9;8471:19;8462:6;8418:73;:::i;:::-;8501;8569:3;8558:9;8554:19;8545:6;8501:73;:::i;:::-;8622:9;8616:4;8612:20;8606:3;8595:9;8591:19;8584:49;8650:108;8753:4;8744:6;8650:108;:::i;:::-;8642:116;;7550:1215;;;;;;;;;;:::o;8771:329::-;8830:6;8879:2;8867:9;8858:7;8854:23;8850:32;8847:119;;;8885:79;;:::i;:::-;8847:119;9005:1;9030:53;9075:7;9066:6;9055:9;9051:22;9030:53;:::i;:::-;9020:63;;8976:117;8771:329;;;;:::o;9106:118::-;9177:22;9193:5;9177:22;:::i;:::-;9170:5;9167:33;9157:61;;9214:1;9211;9204:12;9157:61;9106:118;:::o;9230:135::-;9274:5;9312:6;9299:20;9290:29;;9328:31;9353:5;9328:31;:::i;:::-;9230:135;;;;:::o;9371:122::-;9444:24;9462:5;9444:24;:::i;:::-;9437:5;9434:35;9424:63;;9483:1;9480;9473:12;9424:63;9371:122;:::o;9499:139::-;9545:5;9583:6;9570:20;9561:29;;9599:33;9626:5;9599:33;:::i;:::-;9499:139;;;;:::o;9644:1199::-;9755:6;9763;9771;9779;9787;9795;9803;9852:3;9840:9;9831:7;9827:23;9823:33;9820:120;;;9859:79;;:::i;:::-;9820:120;9979:1;10004:53;10049:7;10040:6;10029:9;10025:22;10004:53;:::i;:::-;9994:63;;9950:117;10106:2;10132:53;10177:7;10168:6;10157:9;10153:22;10132:53;:::i;:::-;10122:63;;10077:118;10234:2;10260:53;10305:7;10296:6;10285:9;10281:22;10260:53;:::i;:::-;10250:63;;10205:118;10362:2;10388:53;10433:7;10424:6;10413:9;10409:22;10388:53;:::i;:::-;10378:63;;10333:118;10490:3;10517:51;10560:7;10551:6;10540:9;10536:22;10517:51;:::i;:::-;10507:61;;10461:117;10617:3;10644:53;10689:7;10680:6;10669:9;10665:22;10644:53;:::i;:::-;10634:63;;10588:119;10746:3;10773:53;10818:7;10809:6;10798:9;10794:22;10773:53;:::i;:::-;10763:63;;10717:119;9644:1199;;;;;;;;;;:::o;10849:474::-;10917:6;10925;10974:2;10962:9;10953:7;10949:23;10945:32;10942:119;;;10980:79;;:::i;:::-;10942:119;11100:1;11125:53;11170:7;11161:6;11150:9;11146:22;11125:53;:::i;:::-;11115:63;;11071:117;11227:2;11253:53;11298:7;11289:6;11278:9;11274:22;11253:53;:::i;:::-;11243:63;;11198:118;10849:474;;;;;:::o;11329:180::-;11377:77;11374:1;11367:88;11474:4;11471:1;11464:15;11498:4;11495:1;11488:15;11515:320;11559:6;11596:1;11590:4;11586:12;11576:22;;11643:1;11637:4;11633:12;11664:18;11654:81;;11720:4;11712:6;11708:17;11698:27;;11654:81;11782:2;11774:6;11771:14;11751:18;11748:38;11745:84;;11801:18;;:::i;:::-;11745:84;11566:269;11515:320;;;:::o;11841:180::-;11889:77;11886:1;11879:88;11986:4;11983:1;11976:15;12010:4;12007:1;12000:15;12027:179;12167:31;12163:1;12155:6;12151:14;12144:55;12027:179;:::o;12212:366::-;12354:3;12375:67;12439:2;12434:3;12375:67;:::i;:::-;12368:74;;12451:93;12540:3;12451:93;:::i;:::-;12569:2;12564:3;12560:12;12553:19;;12212:366;;;:::o;12584:419::-;12750:4;12788:2;12777:9;12773:18;12765:26;;12837:9;12831:4;12827:20;12823:1;12812:9;12808:17;12801:47;12865:131;12991:4;12865:131;:::i;:::-;12857:139;;12584:419;;;:::o;13009:775::-;13242:4;13280:3;13269:9;13265:19;13257:27;;13294:71;13362:1;13351:9;13347:17;13338:6;13294:71;:::i;:::-;13375:72;13443:2;13432:9;13428:18;13419:6;13375:72;:::i;:::-;13457;13525:2;13514:9;13510:18;13501:6;13457:72;:::i;:::-;13539;13607:2;13596:9;13592:18;13583:6;13539:72;:::i;:::-;13621:73;13689:3;13678:9;13674:19;13665:6;13621:73;:::i;:::-;13704;13772:3;13761:9;13757:19;13748:6;13704:73;:::i;:::-;13009:775;;;;;;;;;:::o;13790:180::-;13930:32;13926:1;13918:6;13914:14;13907:56;13790:180;:::o;13976:366::-;14118:3;14139:67;14203:2;14198:3;14139:67;:::i;:::-;14132:74;;14215:93;14304:3;14215:93;:::i;:::-;14333:2;14328:3;14324:12;14317:19;;13976:366;;;:::o;14348:419::-;14514:4;14552:2;14541:9;14537:18;14529:26;;14601:9;14595:4;14591:20;14587:1;14576:9;14572:17;14565:47;14629:131;14755:4;14629:131;:::i;:::-;14621:139;;14348:419;;;:::o;14773:442::-;14922:4;14960:2;14949:9;14945:18;14937:26;;14973:71;15041:1;15030:9;15026:17;15017:6;14973:71;:::i;:::-;15054:72;15122:2;15111:9;15107:18;15098:6;15054:72;:::i;:::-;15136;15204:2;15193:9;15189:18;15180:6;15136:72;:::i;:::-;14773:442;;;;;;:::o;15221:222::-;15314:4;15352:2;15341:9;15337:18;15329:26;;15365:71;15433:1;15422:9;15418:17;15409:6;15365:71;:::i;:::-;15221:222;;;;:::o;15449:180::-;15497:77;15494:1;15487:88;15594:4;15591:1;15584:15;15618:4;15615:1;15608:15;15635:191;15675:3;15694:20;15712:1;15694:20;:::i;:::-;15689:25;;15728:20;15746:1;15728:20;:::i;:::-;15723:25;;15771:1;15768;15764:9;15757:16;;15792:3;15789:1;15786:10;15783:36;;;15799:18;;:::i;:::-;15783:36;15635:191;;;;:::o;15832:664::-;16037:4;16075:3;16064:9;16060:19;16052:27;;16089:71;16157:1;16146:9;16142:17;16133:6;16089:71;:::i;:::-;16170:72;16238:2;16227:9;16223:18;16214:6;16170:72;:::i;:::-;16252;16320:2;16309:9;16305:18;16296:6;16252:72;:::i;:::-;16334;16402:2;16391:9;16387:18;16378:6;16334:72;:::i;:::-;16416:73;16484:3;16473:9;16469:19;16460:6;16416:73;:::i;:::-;15832:664;;;;;;;;:::o;16502:545::-;16675:4;16713:3;16702:9;16698:19;16690:27;;16727:71;16795:1;16784:9;16780:17;16771:6;16727:71;:::i;:::-;16808:68;16872:2;16861:9;16857:18;16848:6;16808:68;:::i;:::-;16886:72;16954:2;16943:9;16939:18;16930:6;16886:72;:::i;:::-;16968;17036:2;17025:9;17021:18;17012:6;16968:72;:::i;:::-;16502:545;;;;;;;:::o;17053:180::-;17101:77;17098:1;17091:88;17198:4;17195:1;17188:15;17222:4;17219:1;17212:15","linkReferences":{},"immutableReferences":{"45272":[{"start":2507,"length":32}],"45274":[{"start":2466,"length":32}],"45276":[{"start":2380,"length":32}],"45278":[{"start":4065,"length":32}],"45280":[{"start":4098,"length":32}],"45283":[{"start":2568,"length":32}],"45286":[{"start":2627,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","eip712Domain()":"84b0196e","mint(uint256)":"a0712d68","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"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\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"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\":[],\"name\":\"EIP712DomainChanged\",\"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\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"details\":\"ERC20 Permit \\u6269\\u5c55\\u7684\\u63a5\\u53e3\\uff0c\\u5141\\u8bb8\\u901a\\u8fc7\\u7b7e\\u540d\\u8fdb\\u884c\\u6279\\u51c6\\uff0c\\u5982 https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]\\u4e2d\\u5b9a\\u4e49\\u3002 \\u6dfb\\u52a0\\u4e86 {permit} \\u65b9\\u6cd5\\uff0c\\u53ef\\u4ee5\\u901a\\u8fc7\\u5e10\\u6237\\u7b7e\\u540d\\u7684\\u6d88\\u606f\\u66f4\\u6539\\u5e10\\u6237\\u7684 ERC20 \\u4f59\\u989d\\uff08\\u53c2\\u89c1 {IERC20-allowance}\\uff09\\u3002\\u901a\\u8fc7\\u4e0d\\u4f9d\\u8d56 {IERC20-approve}\\uff0c\\u4ee3\\u5e01\\u6301\\u6709\\u8005\\u7684\\u5e10\\u6237\\u65e0\\u9700\\u53d1\\u9001\\u4ea4\\u6613\\uff0c\\u56e0\\u6b64\\u5b8c\\u5168\\u4e0d\\u9700\\u8981\\u6301\\u6709 Ether\\u3002\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"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.\"}}]},\"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.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"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\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"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`.\"},\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316 EIP712 \\u7684 name \\u4ee5\\u53ca ERC20 \\u7684 name \\u548c symbol\"},\"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}.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/53_ERC20Permit/ERC20Permit.sol\":\"ERC20Permit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99\",\"dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4\",\"dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/53_ERC20Permit/ERC20Permit.sol\":{\"keccak256\":\"0xe9f75ff8d62ed6365a893dc461f27d824780e72e66057f2214a94abe0a4a5f7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282a2cc803ef88c4174b2f53c03e76e35c998b2d95f10f2ce160731338d2fb0e\",\"dweb:/ipfs/QmTyt5Jky2icbcMJbtZpQZndRk3x5x2yqjUSzG3ytMyVap\"]},\"src/53_ERC20Permit/IERC20Permit.sol\":{\"keccak256\":\"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33\",\"dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"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":"InvalidShortString"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"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":[],"type":"event","name":"EIP712DomainChanged","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":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"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"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"See {IERC20Permit-DOMAIN_SEPARATOR}."},"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`."},"constructor":{"details":"初始化 EIP712 的 name 以及 ERC20 的 name 和 symbol"},"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}."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"See {IERC20Permit-nonces}."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"See {IERC20Permit-permit}."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/53_ERC20Permit/ERC20Permit.sol":"ERC20Permit"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c","urls":["bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99","dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia"],"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/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4","urls":["bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4","dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/53_ERC20Permit/ERC20Permit.sol":{"keccak256":"0xe9f75ff8d62ed6365a893dc461f27d824780e72e66057f2214a94abe0a4a5f7b","urls":["bzz-raw://282a2cc803ef88c4174b2f53c03e76e35c998b2d95f10f2ce160731338d2fb0e","dweb:/ipfs/QmTyt5Jky2icbcMJbtZpQZndRk3x5x2yqjUSzG3ytMyVap"],"license":"MIT"},"src/53_ERC20Permit/IERC20Permit.sol":{"keccak256":"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7","urls":["bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33","dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file diff --git a/out/ERC4626.sol/ERC4626.json b/out/ERC4626.sol/ERC4626.json index 98041401..e0abc03e 100644 --- a/out/ERC4626.sol/ERC4626.json +++ b/out/ERC4626.sol/ERC4626.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"asset_","type":"address","internalType":"contract ERC20"},{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"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":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","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":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"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"}]}],"bytecode":{"object":"0x60c060405234801561000f575f5ffd5b5060405161233c38038061233c833981810160405281019061003191906102c3565b81818160039081610042919061056c565b508060049081610052919061056c565b5050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f69190610671565b60ff1660a08160ff168152505050505061069c565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101458261011c565b9050919050565b5f6101568261013b565b9050919050565b6101668161014c565b8114610170575f5ffd5b50565b5f815190506101818161015d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101d58261018f565b810181811067ffffffffffffffff821117156101f4576101f361019f565b5b80604052505050565b5f61020661010b565b905061021282826101cc565b919050565b5f67ffffffffffffffff8211156102315761023061019f565b5b61023a8261018f565b9050602081019050919050565b8281835e5f83830152505050565b5f61026761026284610217565b6101fd565b9050828152602081018484840111156102835761028261018b565b5b61028e848285610247565b509392505050565b5f82601f8301126102aa576102a9610187565b5b81516102ba848260208601610255565b91505092915050565b5f5f5f606084860312156102da576102d9610114565b5b5f6102e786828701610173565b935050602084015167ffffffffffffffff81111561030857610307610118565b5b61031486828701610296565b925050604084015167ffffffffffffffff81111561033557610334610118565b5b61034186828701610296565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039957607f821691505b6020821081036103ac576103ab610355565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261040e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103d3565b61041886836103d3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61045c61045761045284610430565b610439565b610430565b9050919050565b5f819050919050565b61047583610442565b61048961048182610463565b8484546103df565b825550505050565b5f5f905090565b6104a0610491565b6104ab81848461046c565b505050565b5f5b828110156104d1576104c65f828401610498565b6001810190506104b2565b505050565b601f8211156105245782821115610523576104f0816103b2565b6104f9836103c4565b610502856103c4565b602086101561050f575f90505b80830161051e828403826104b0565b505050505b5b505050565b5f82821c905092915050565b5f6105445f1984600802610529565b1980831691505092915050565b5f61055c8383610535565b9150826002028217905092915050565b6105758261034b565b67ffffffffffffffff81111561058e5761058d61019f565b5b6105988254610382565b6105a38282856104d6565b5f60209050601f8311600181146105d4575f84156105c2578287015190505b6105cc8582610551565b865550610633565b601f1984166105e2866103b2565b5f5b82811015610609578489015182556001820191506020850194506020810190506105e4565b868310156106265784890151610622601f891682610535565b8355505b6001600288020188555050505b505050505050565b5f60ff82169050919050565b6106508161063b565b811461065a575f5ffd5b50565b5f8151905061066b81610647565b92915050565b5f6020828403121561068657610685610114565b5b5f6106938482850161065d565b91505092915050565b60805160a051611c5c6106e05f395f61079401525f81816105bc015281816107bb015281816108270152818161098d01528181610bba0152610d300152611c5c5ff3fe608060405234801561000f575f5ffd5b5060043610610171575f3560e01c806370a08231116100dc578063ba08765211610095578063ce96cb771161006f578063ce96cb77146104f9578063d905777e14610529578063dd62ed3e14610559578063ef8b30f71461058957610171565b8063ba08765214610469578063c63d75b614610499578063c6e6f592146104c957610171565b806370a082311461035b57806394bf804d1461038b57806395d89b41146103bb578063a9059cbb146103d9578063b3d7f6b914610409578063b460af941461043957610171565b806323b872dd1161012e57806323b872dd1461025f578063313ce5671461028f57806338d52e0f146102ad578063402d267d146102cb5780634cdad506146102fb5780636e553f651461032b57610171565b806301e1d1141461017557806306fdde031461019357806307a2d13a146101b1578063095ea7b3146101e15780630a28a4771461021157806318160ddd14610241575b5f5ffd5b61017d6105b9565b60405161018a919061160f565b60405180910390f35b61019b610657565b6040516101a89190611698565b60405180910390f35b6101cb60048036038101906101c691906116e6565b6106e7565b6040516101d8919061160f565b60405180910390f35b6101fb60048036038101906101f6919061176b565b610727565b60405161020891906117c3565b60405180910390f35b61022b600480360381019061022691906116e6565b610749565b604051610238919061160f565b60405180910390f35b61024961075a565b604051610256919061160f565b60405180910390f35b610279600480360381019061027491906117dc565b610763565b60405161028691906117c3565b60405180910390f35b610297610791565b6040516102a49190611847565b60405180910390f35b6102b56107b8565b6040516102c2919061186f565b60405180910390f35b6102e560048036038101906102e09190611888565b6107df565b6040516102f2919061160f565b60405180910390f35b610315600480360381019061031091906116e6565b610808565b604051610322919061160f565b60405180910390f35b610345600480360381019061034091906118b3565b610819565b604051610352919061160f565b60405180910390f35b61037560048036038101906103709190611888565b61093a565b604051610382919061160f565b60405180910390f35b6103a560048036038101906103a091906118b3565b61097f565b6040516103b2919061160f565b60405180910390f35b6103c3610aa0565b6040516103d09190611698565b60405180910390f35b6103f360048036038101906103ee919061176b565b610b30565b60405161040091906117c3565b60405180910390f35b610423600480360381019061041e91906116e6565b610b52565b604051610430919061160f565b60405180910390f35b610453600480360381019061044e91906118f1565b610b63565b604051610460919061160f565b60405180910390f35b610483600480360381019061047e91906118f1565b610cd9565b604051610490919061160f565b60405180910390f35b6104b360048036038101906104ae9190611888565b610e4f565b6040516104c0919061160f565b60405180910390f35b6104e360048036038101906104de91906116e6565b610e78565b6040516104f0919061160f565b60405180910390f35b610513600480360381019061050e9190611888565b610eb8565b604051610520919061160f565b60405180910390f35b610543600480360381019061053e9190611888565b610ed1565b604051610550919061160f565b60405180910390f35b610573600480360381019061056e9190611941565b610ee2565b604051610580919061160f565b60405180910390f35b6105a3600480360381019061059e91906116e6565b610f64565b6040516105b0919061160f565b60405180910390f35b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610613919061186f565b602060405180830381865afa15801561062e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106529190611993565b905090565b606060038054610666906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610692906119eb565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b5050505050905090565b5f5f6106f161075a565b90505f811461071d57806107036105b9565b8461070e9190611a48565b6107189190611ab6565b61071f565b825b915050919050565b5f5f610731610f75565b905061073e818585610f7c565b600191505092915050565b5f61075382610e78565b9050919050565b5f600254905090565b5f5f61076d610f75565b905061077a858285610f8e565b610785858585611021565b60019150509392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f610812826106e7565b9050919050565b5f61082383610f64565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161088293929190611ae6565b6020604051808303815f875af115801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611b45565b506108cd8282611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7858460405161092c929190611b70565b60405180910390a392915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61098983610b52565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109e893929190611ae6565b6020604051808303815f875af1158015610a04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a289190611b45565b50610a338284611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051610a92929190611b70565b60405180910390a392915050565b606060048054610aaf906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610adb906119eb565b8015610b265780601f10610afd57610100808354040283529160200191610b26565b820191905f5260205f20905b815481529060010190602001808311610b0957829003601f168201915b5050505050905090565b5f5f610b3a610f75565b9050610b47818585611021565b600191505092915050565b5f610b5c826106e7565b9050919050565b5f610b6d84610749565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bae57610bad823383610f8e565b5b610bb88282611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84866040518363ffffffff1660e01b8152600401610c13929190611b97565b6020604051808303815f875af1158015610c2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c539190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8785604051610cca929190611b70565b60405180910390a49392505050565b5f610ce384610808565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2457610d23823386610f8e565b5b610d2e8285611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d89929190611b97565b6020604051808303815f875af1158015610da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8488604051610e40929190611b70565b60405180910390a49392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f5f610e8261075a565b90505f8114610eae57610e936105b9565b8184610e9f9190611a48565b610ea99190611ab6565b610eb0565b825b915050919050565b5f610eca610ec58361093a565b6106e7565b9050919050565b5f610edb8261093a565b9050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610f6e82610e78565b9050919050565b5f33905090565b610f89838383600161120f565b505050565b5f610f998484610ee2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561101b578181101561100c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161100393929190611bbe565b60405180910390fd5b61101a84848484035f61120f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611091575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611088919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611101575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110f8919061186f565b60405180910390fd5b61110c8383836113de565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611181575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611178919061186f565b60405180910390fd5b61118c5f83836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611200575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016111f7919061186f565b60405180910390fd5b61120b825f836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127f575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611276919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ef575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016112e6919061186f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156113d8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113cf919061160f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142e578060025f8282546114229190611bf3565b925050819055506114fc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114b7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ae93929190611bbe565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578060025f828254039250508190555061158d565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115ea919061160f565b60405180910390a3505050565b5f819050919050565b611609816115f7565b82525050565b5f6020820190506116225f830184611600565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61166a82611628565b6116748185611632565b9350611684818560208601611642565b61168d81611650565b840191505092915050565b5f6020820190508181035f8301526116b08184611660565b905092915050565b5f5ffd5b6116c5816115f7565b81146116cf575f5ffd5b50565b5f813590506116e0816116bc565b92915050565b5f602082840312156116fb576116fa6116b8565b5b5f611708848285016116d2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61173a82611711565b9050919050565b61174a81611730565b8114611754575f5ffd5b50565b5f8135905061176581611741565b92915050565b5f5f60408385031215611781576117806116b8565b5b5f61178e85828601611757565b925050602061179f858286016116d2565b9150509250929050565b5f8115159050919050565b6117bd816117a9565b82525050565b5f6020820190506117d65f8301846117b4565b92915050565b5f5f5f606084860312156117f3576117f26116b8565b5b5f61180086828701611757565b935050602061181186828701611757565b9250506040611822868287016116d2565b9150509250925092565b5f60ff82169050919050565b6118418161182c565b82525050565b5f60208201905061185a5f830184611838565b92915050565b61186981611730565b82525050565b5f6020820190506118825f830184611860565b92915050565b5f6020828403121561189d5761189c6116b8565b5b5f6118aa84828501611757565b91505092915050565b5f5f604083850312156118c9576118c86116b8565b5b5f6118d6858286016116d2565b92505060206118e785828601611757565b9150509250929050565b5f5f5f60608486031215611908576119076116b8565b5b5f611915868287016116d2565b935050602061192686828701611757565b925050604061193786828701611757565b9150509250925092565b5f5f60408385031215611957576119566116b8565b5b5f61196485828601611757565b925050602061197585828601611757565b9150509250929050565b5f8151905061198d816116bc565b92915050565b5f602082840312156119a8576119a76116b8565b5b5f6119b58482850161197f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a52826115f7565b9150611a5d836115f7565b9250828202611a6b816115f7565b91508282048414831517611a8257611a81611a1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ac0826115f7565b9150611acb836115f7565b925082611adb57611ada611a89565b5b828204905092915050565b5f606082019050611af95f830186611860565b611b066020830185611860565b611b136040830184611600565b949350505050565b611b24816117a9565b8114611b2e575f5ffd5b50565b5f81519050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b596116b8565b5b5f611b6784828501611b31565b91505092915050565b5f604082019050611b835f830185611600565b611b906020830184611600565b9392505050565b5f604082019050611baa5f830185611860565b611bb76020830184611600565b9392505050565b5f606082019050611bd15f830186611860565b611bde6020830185611600565b611beb6040830184611600565b949350505050565b5f611bfd826115f7565b9150611c08836115f7565b9250828201905080821115611c2057611c1f611a1b565b5b9291505056fea2646970667358221220eebf57f435b1d7379d13ba49400f647716177982544640997af710a3b901737064736f6c63430008220033","sourceMap":"282:6055:111:-:0;;;575:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;681:5;688:7;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;716:6:111::1;707:15;;;;;;;;::::0;::::1;744:6;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;732:29;;;;;;;;::::0;::::1;575:194:::0;;;282:6055;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:111::-;620:7;649:24;667:5;649:24;:::i;:::-;638:35;;568:111;;;:::o;685:152::-;773:39;806:5;773:39;:::i;:::-;766:5;763:50;753:78;;827:1;824;817:12;753:78;685:152;:::o;843:173::-;915:5;946:6;940:13;931:22;;962:48;1004:5;962:48;:::i;:::-;843:173;;;;:::o;1022:117::-;1131:1;1128;1121:12;1145:117;1254:1;1251;1244:12;1268:102;1309:6;1360:2;1356:7;1351:2;1344:5;1340:14;1336:28;1326:38;;1268:102;;;:::o;1376:180::-;1424:77;1421:1;1414:88;1521:4;1518:1;1511:15;1545:4;1542:1;1535:15;1562:281;1645:27;1667:4;1645:27;:::i;:::-;1637:6;1633:40;1775:6;1763:10;1760:22;1739:18;1727:10;1724:34;1721:62;1718:88;;;1786:18;;:::i;:::-;1718:88;1826:10;1822:2;1815:22;1605:238;1562:281;;:::o;1849:129::-;1883:6;1910:20;;:::i;:::-;1900:30;;1939:33;1967:4;1959:6;1939:33;:::i;:::-;1849:129;;;:::o;1984:308::-;2046:4;2136:18;2128:6;2125:30;2122:56;;;2158:18;;:::i;:::-;2122:56;2196:29;2218:6;2196:29;:::i;:::-;2188:37;;2280:4;2274;2270:15;2262:23;;1984:308;;;:::o;2298:139::-;2387:6;2382:3;2377;2371:23;2428:1;2419:6;2414:3;2410:16;2403:27;2298:139;;;:::o;2443:434::-;2532:5;2557:66;2573:49;2615:6;2573:49;:::i;:::-;2557:66;:::i;:::-;2548:75;;2646:6;2639:5;2632:21;2684:4;2677:5;2673:16;2722:3;2713:6;2708:3;2704:16;2701:25;2698:112;;;2729:79;;:::i;:::-;2698:112;2819:52;2864:6;2859:3;2854;2819:52;:::i;:::-;2538:339;2443:434;;;;;:::o;2897:355::-;2964:5;3013:3;3006:4;2998:6;2994:17;2990:27;2980:122;;3021:79;;:::i;:::-;2980:122;3131:6;3125:13;3156:90;3242:3;3234:6;3227:4;3219:6;3215:17;3156:90;:::i;:::-;3147:99;;2970:282;2897:355;;;;:::o;3258:1039::-;3381:6;3389;3397;3446:2;3434:9;3425:7;3421:23;3417:32;3414:119;;;3452:79;;:::i;:::-;3414:119;3572:1;3597:79;3668:7;3659:6;3648:9;3644:22;3597:79;:::i;:::-;3587:89;;3543:143;3746:2;3735:9;3731:18;3725:25;3777:18;3769:6;3766:30;3763:117;;;3799:79;;:::i;:::-;3763:117;3904:74;3970:7;3961:6;3950:9;3946:22;3904:74;:::i;:::-;3894:84;;3696:292;4048:2;4037:9;4033:18;4027:25;4079:18;4071:6;4068:30;4065:117;;;4101:79;;:::i;:::-;4065:117;4206:74;4272:7;4263:6;4252:9;4248:22;4206:74;:::i;:::-;4196:84;;3998:292;3258:1039;;;;;:::o;4303:99::-;4355:6;4389:5;4383:12;4373:22;;4303:99;;;:::o;4408:180::-;4456:77;4453:1;4446:88;4553:4;4550:1;4543:15;4577:4;4574:1;4567:15;4594:320;4638:6;4675:1;4669:4;4665:12;4655:22;;4722:1;4716:4;4712:12;4743:18;4733:81;;4799:4;4791:6;4787:17;4777:27;;4733:81;4861:2;4853:6;4850:14;4830:18;4827:38;4824:84;;4880:18;;:::i;:::-;4824:84;4645:269;4594:320;;;:::o;4920:141::-;4969:4;4992:3;4984:11;;5015:3;5012:1;5005:14;5049:4;5046:1;5036:18;5028:26;;4920:141;;;:::o;5067:93::-;5104:6;5151:2;5146;5139:5;5135:14;5131:23;5121:33;;5067:93;;;:::o;5166:107::-;5210:8;5260:5;5254:4;5250:16;5229:37;;5166:107;;;;:::o;5279:393::-;5348:6;5398:1;5386:10;5382:18;5421:97;5451:66;5440:9;5421:97;:::i;:::-;5539:39;5569:8;5558:9;5539:39;:::i;:::-;5527:51;;5611:4;5607:9;5600:5;5596:21;5587:30;;5660:4;5650:8;5646:19;5639:5;5636:30;5626:40;;5355:317;;5279:393;;;;;:::o;5678:77::-;5715:7;5744:5;5733:16;;5678:77;;;:::o;5761:60::-;5789:3;5810:5;5803:12;;5761:60;;;:::o;5827:142::-;5877:9;5910:53;5928:34;5937:24;5955:5;5937:24;:::i;:::-;5928:34;:::i;:::-;5910:53;:::i;:::-;5897:66;;5827:142;;;:::o;5975:75::-;6018:3;6039:5;6032:12;;5975:75;;;:::o;6056:269::-;6166:39;6197:7;6166:39;:::i;:::-;6227:91;6276:41;6300:16;6276:41;:::i;:::-;6268:6;6261:4;6255:11;6227:91;:::i;:::-;6221:4;6214:105;6132:193;6056:269;;;:::o;6331:73::-;6376:3;6397:1;6390:8;;6331:73;:::o;6410:189::-;6487:32;;:::i;:::-;6528:65;6586:6;6578;6572:4;6528:65;:::i;:::-;6463:136;6410:189;;:::o;6605:214::-;6690:1;6675:138;6700:9;6697:1;6694:16;6675:138;;;6752:51;6801:1;6797;6786:9;6782:17;6752:51;:::i;:::-;6725:1;6722;6718:9;6713:14;;6675:138;;;6679:14;6605:214;;:::o;6825:746::-;6926:2;6921:3;6918:11;6915:649;;;6955:10;6950:3;6947:19;6944:610;;;7001:38;7033:5;7001:38;:::i;:::-;7076:22;7094:3;7076:22;:::i;:::-;7135:29;7153:10;7135:29;:::i;:::-;7325:2;7313:10;7310:18;7307:79;;;7367:1;7351:17;;7307:79;7436:12;7426:8;7422:27;7466:74;7526:12;7512;7508:31;7495:11;7466:74;:::i;:::-;6967:587;;;;6944:610;6915:649;6825:746;;;:::o;7577:117::-;7631:8;7681:5;7675:4;7671:16;7650:37;;7577:117;;;;:::o;7700:169::-;7744:6;7777:51;7825:1;7821:6;7813:5;7810:1;7806:13;7777:51;:::i;:::-;7773:56;7858:4;7852;7848:15;7838:25;;7751:118;7700:169;;;;:::o;7874:295::-;7950:4;8096:29;8121:3;8115:4;8096:29;:::i;:::-;8088:37;;8158:3;8155:1;8151:11;8145:4;8142:21;8134:29;;7874:295;;;;:::o;8174:1395::-;8291:37;8324:3;8291:37;:::i;:::-;8393:18;8385:6;8382:30;8379:56;;;8415:18;;:::i;:::-;8379:56;8459:38;8491:4;8485:11;8459:38;:::i;:::-;8544:67;8604:6;8596;8590:4;8544:67;:::i;:::-;8638:1;8662:4;8649:17;;8694:2;8686:6;8683:14;8711:1;8706:618;;;;9368:1;9385:6;9382:77;;;9434:9;9429:3;9425:19;9419:26;9410:35;;9382:77;9485:67;9545:6;9538:5;9485:67;:::i;:::-;9479:4;9472:81;9341:222;8676:887;;8706:618;8758:4;8754:9;8746:6;8742:22;8792:37;8824:4;8792:37;:::i;:::-;8851:1;8865:208;8879:7;8876:1;8873:14;8865:208;;;8958:9;8953:3;8949:19;8943:26;8935:6;8928:42;9009:1;9001:6;8997:14;8987:24;;9056:2;9045:9;9041:18;9028:31;;8902:4;8899:1;8895:12;8890:17;;8865:208;;;9101:6;9092:7;9089:19;9086:179;;;9159:9;9154:3;9150:19;9144:26;9202:48;9244:4;9236:6;9232:17;9221:9;9202:48;:::i;:::-;9194:6;9187:64;9109:156;9086:179;9311:1;9307;9299:6;9295:14;9291:22;9285:4;9278:36;8713:611;;;8676:887;;8266:1303;;;8174:1395;;:::o;9575:86::-;9610:7;9650:4;9643:5;9639:16;9628:27;;9575:86;;;:::o;9667:118::-;9738:22;9754:5;9738:22;:::i;:::-;9731:5;9728:33;9718:61;;9775:1;9772;9765:12;9718:61;9667:118;:::o;9791:139::-;9846:5;9877:6;9871:13;9862:22;;9893:31;9918:5;9893:31;:::i;:::-;9791:139;;;;:::o;9936:347::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:62;10258:7;10249:6;10238:9;10234:22;10204:62;:::i;:::-;10194:72;;10150:126;9936:347;;;;:::o;282:6055:111:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610171575f3560e01c806370a08231116100dc578063ba08765211610095578063ce96cb771161006f578063ce96cb77146104f9578063d905777e14610529578063dd62ed3e14610559578063ef8b30f71461058957610171565b8063ba08765214610469578063c63d75b614610499578063c6e6f592146104c957610171565b806370a082311461035b57806394bf804d1461038b57806395d89b41146103bb578063a9059cbb146103d9578063b3d7f6b914610409578063b460af941461043957610171565b806323b872dd1161012e57806323b872dd1461025f578063313ce5671461028f57806338d52e0f146102ad578063402d267d146102cb5780634cdad506146102fb5780636e553f651461032b57610171565b806301e1d1141461017557806306fdde031461019357806307a2d13a146101b1578063095ea7b3146101e15780630a28a4771461021157806318160ddd14610241575b5f5ffd5b61017d6105b9565b60405161018a919061160f565b60405180910390f35b61019b610657565b6040516101a89190611698565b60405180910390f35b6101cb60048036038101906101c691906116e6565b6106e7565b6040516101d8919061160f565b60405180910390f35b6101fb60048036038101906101f6919061176b565b610727565b60405161020891906117c3565b60405180910390f35b61022b600480360381019061022691906116e6565b610749565b604051610238919061160f565b60405180910390f35b61024961075a565b604051610256919061160f565b60405180910390f35b610279600480360381019061027491906117dc565b610763565b60405161028691906117c3565b60405180910390f35b610297610791565b6040516102a49190611847565b60405180910390f35b6102b56107b8565b6040516102c2919061186f565b60405180910390f35b6102e560048036038101906102e09190611888565b6107df565b6040516102f2919061160f565b60405180910390f35b610315600480360381019061031091906116e6565b610808565b604051610322919061160f565b60405180910390f35b610345600480360381019061034091906118b3565b610819565b604051610352919061160f565b60405180910390f35b61037560048036038101906103709190611888565b61093a565b604051610382919061160f565b60405180910390f35b6103a560048036038101906103a091906118b3565b61097f565b6040516103b2919061160f565b60405180910390f35b6103c3610aa0565b6040516103d09190611698565b60405180910390f35b6103f360048036038101906103ee919061176b565b610b30565b60405161040091906117c3565b60405180910390f35b610423600480360381019061041e91906116e6565b610b52565b604051610430919061160f565b60405180910390f35b610453600480360381019061044e91906118f1565b610b63565b604051610460919061160f565b60405180910390f35b610483600480360381019061047e91906118f1565b610cd9565b604051610490919061160f565b60405180910390f35b6104b360048036038101906104ae9190611888565b610e4f565b6040516104c0919061160f565b60405180910390f35b6104e360048036038101906104de91906116e6565b610e78565b6040516104f0919061160f565b60405180910390f35b610513600480360381019061050e9190611888565b610eb8565b604051610520919061160f565b60405180910390f35b610543600480360381019061053e9190611888565b610ed1565b604051610550919061160f565b60405180910390f35b610573600480360381019061056e9190611941565b610ee2565b604051610580919061160f565b60405180910390f35b6105a3600480360381019061059e91906116e6565b610f64565b6040516105b0919061160f565b60405180910390f35b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610613919061186f565b602060405180830381865afa15801561062e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106529190611993565b905090565b606060038054610666906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610692906119eb565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b5050505050905090565b5f5f6106f161075a565b90505f811461071d57806107036105b9565b8461070e9190611a48565b6107189190611ab6565b61071f565b825b915050919050565b5f5f610731610f75565b905061073e818585610f7c565b600191505092915050565b5f61075382610e78565b9050919050565b5f600254905090565b5f5f61076d610f75565b905061077a858285610f8e565b610785858585611021565b60019150509392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f610812826106e7565b9050919050565b5f61082383610f64565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161088293929190611ae6565b6020604051808303815f875af115801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611b45565b506108cd8282611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7858460405161092c929190611b70565b60405180910390a392915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61098983610b52565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109e893929190611ae6565b6020604051808303815f875af1158015610a04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a289190611b45565b50610a338284611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051610a92929190611b70565b60405180910390a392915050565b606060048054610aaf906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610adb906119eb565b8015610b265780601f10610afd57610100808354040283529160200191610b26565b820191905f5260205f20905b815481529060010190602001808311610b0957829003601f168201915b5050505050905090565b5f5f610b3a610f75565b9050610b47818585611021565b600191505092915050565b5f610b5c826106e7565b9050919050565b5f610b6d84610749565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bae57610bad823383610f8e565b5b610bb88282611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84866040518363ffffffff1660e01b8152600401610c13929190611b97565b6020604051808303815f875af1158015610c2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c539190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8785604051610cca929190611b70565b60405180910390a49392505050565b5f610ce384610808565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2457610d23823386610f8e565b5b610d2e8285611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d89929190611b97565b6020604051808303815f875af1158015610da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8488604051610e40929190611b70565b60405180910390a49392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f5f610e8261075a565b90505f8114610eae57610e936105b9565b8184610e9f9190611a48565b610ea99190611ab6565b610eb0565b825b915050919050565b5f610eca610ec58361093a565b6106e7565b9050919050565b5f610edb8261093a565b9050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610f6e82610e78565b9050919050565b5f33905090565b610f89838383600161120f565b505050565b5f610f998484610ee2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561101b578181101561100c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161100393929190611bbe565b60405180910390fd5b61101a84848484035f61120f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611091575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611088919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611101575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110f8919061186f565b60405180910390fd5b61110c8383836113de565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611181575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611178919061186f565b60405180910390fd5b61118c5f83836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611200575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016111f7919061186f565b60405180910390fd5b61120b825f836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127f575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611276919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ef575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016112e6919061186f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156113d8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113cf919061160f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142e578060025f8282546114229190611bf3565b925050819055506114fc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114b7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ae93929190611bbe565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578060025f828254039250508190555061158d565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115ea919061160f565b60405180910390a3505050565b5f819050919050565b611609816115f7565b82525050565b5f6020820190506116225f830184611600565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61166a82611628565b6116748185611632565b9350611684818560208601611642565b61168d81611650565b840191505092915050565b5f6020820190508181035f8301526116b08184611660565b905092915050565b5f5ffd5b6116c5816115f7565b81146116cf575f5ffd5b50565b5f813590506116e0816116bc565b92915050565b5f602082840312156116fb576116fa6116b8565b5b5f611708848285016116d2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61173a82611711565b9050919050565b61174a81611730565b8114611754575f5ffd5b50565b5f8135905061176581611741565b92915050565b5f5f60408385031215611781576117806116b8565b5b5f61178e85828601611757565b925050602061179f858286016116d2565b9150509250929050565b5f8115159050919050565b6117bd816117a9565b82525050565b5f6020820190506117d65f8301846117b4565b92915050565b5f5f5f606084860312156117f3576117f26116b8565b5b5f61180086828701611757565b935050602061181186828701611757565b9250506040611822868287016116d2565b9150509250925092565b5f60ff82169050919050565b6118418161182c565b82525050565b5f60208201905061185a5f830184611838565b92915050565b61186981611730565b82525050565b5f6020820190506118825f830184611860565b92915050565b5f6020828403121561189d5761189c6116b8565b5b5f6118aa84828501611757565b91505092915050565b5f5f604083850312156118c9576118c86116b8565b5b5f6118d6858286016116d2565b92505060206118e785828601611757565b9150509250929050565b5f5f5f60608486031215611908576119076116b8565b5b5f611915868287016116d2565b935050602061192686828701611757565b925050604061193786828701611757565b9150509250925092565b5f5f60408385031215611957576119566116b8565b5b5f61196485828601611757565b925050602061197585828601611757565b9150509250929050565b5f8151905061198d816116bc565b92915050565b5f602082840312156119a8576119a76116b8565b5b5f6119b58482850161197f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a52826115f7565b9150611a5d836115f7565b9250828202611a6b816115f7565b91508282048414831517611a8257611a81611a1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ac0826115f7565b9150611acb836115f7565b925082611adb57611ada611a89565b5b828204905092915050565b5f606082019050611af95f830186611860565b611b066020830185611860565b611b136040830184611600565b949350505050565b611b24816117a9565b8114611b2e575f5ffd5b50565b5f81519050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b596116b8565b5b5f611b6784828501611b31565b91505092915050565b5f604082019050611b835f830185611600565b611b906020830184611600565b9392505050565b5f604082019050611baa5f830185611860565b611bb76020830184611600565b9392505050565b5f606082019050611bd15f830186611860565b611bde6020830185611600565b611beb6040830184611600565b949350505050565b5f611bfd826115f7565b9150611c08836115f7565b9250828201905080821115611c2057611c1f611a1b565b5b9291505056fea2646970667358221220eebf57f435b1d7379d13ba49400f647716177982544640997af710a3b901737064736f6c63430008220033","sourceMap":"282:6055:111:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3880:160;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:317:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5186:126:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;976:121:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;813:103;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5364:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1325:445;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1813:446:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5010:122:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2306:646;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2997:654;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5881:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4094:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6040:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6223:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4835:125:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3880:160;3932:7;4002:6;:16;;;4027:4;4002:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3995:38;;3880:160;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;4465:317:111:-;4535:7;4554:14;4571:13;:11;:13::i;:::-;4554:30;;4731:1;4721:6;:11;:54;;4769:6;4753:13;:11;:13::i;:::-;4744:6;:22;;;;:::i;:::-;:31;;;;:::i;:::-;4721:54;;;4735:6;4721:54;4714:61;;;4465:317;;;:::o;3902:186:22:-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;5186:126:111:-;5256:7;5282:23;5298:6;5282:15;:23::i;:::-;5275:30;;5186:126;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;976:121:111:-;1057:5;1081:9;1074:16;;976:121;:::o;813:103::-;868:7;902:6;887:22;;813:103;:::o;5727:108::-;5785:7;5811:17;5804:24;;5727:108;;;:::o;5364:124::-;5432:7;5458:23;5474:6;5458:15;:23::i;:::-;5451:30;;5364:124;;;:::o;1325:445::-;1400:14;1501:22;1516:6;1501:14;:22::i;:::-;1492:31;;1582:6;:19;;;1602:10;1622:4;1629:6;1582:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1646:23;1652:8;1662:6;1646:5;:23::i;:::-;1738:8;1718:45;;1726:10;1718:45;;;1748:6;1756;1718:45;;;;;;;:::i;:::-;;;;;;;;1325:445;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1813:446:111:-;1885:14;1992:19;2004:6;1992:11;:19::i;:::-;1983:28;;2070:6;:19;;;2090:10;2110:4;2117:6;2070:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2134:23;2140:8;2150:6;2134:5;:23::i;:::-;2226:8;2206:45;;2214:10;2206:45;;;2236:6;2244;2206:45;;;;;;;:::i;:::-;;;;;;;;1813:446;;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;5010:122:111:-;5076:7;5102:23;5118:6;5102:15;:23::i;:::-;5095:30;;5010:122;;;:::o;2306:646::-;2427:14;2529:23;2545:6;2529:15;:23::i;:::-;2520:32;;2647:5;2633:19;;:10;:19;;;2629:92;;2668:42;2684:5;2691:10;2703:6;2668:15;:42::i;:::-;2629:92;2779:20;2785:5;2792:6;2779:5;:20::i;:::-;2809:6;:15;;;2825:8;2835:6;2809:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2923:5;2892:53;;2913:8;2892:53;;2901:10;2892:53;;;2930:6;2938;2892:53;;;;;;;:::i;:::-;;;;;;;;2306:646;;;;;:::o;2997:654::-;3116:14;3222:21;3236:6;3222:13;:21::i;:::-;3213:30;;3338:5;3324:19;;:10;:19;;;3320:92;;3359:42;3375:5;3382:10;3394:6;3359:15;:42::i;:::-;3320:92;3470:20;3476:5;3483:6;3470:5;:20::i;:::-;3500:6;:15;;;3516:8;3526:6;3500:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3622:5;3591:53;;3612:8;3591:53;;3600:10;3591:53;;;3629:6;3637;3591:53;;;;;;;:::i;:::-;;;;;;;;2997:654;;;;;:::o;5881:105::-;5936:7;5962:17;5955:24;;5881:105;;;:::o;4094:317::-;4164:7;4183:14;4200:13;:11;:13::i;:::-;4183:30;;4360:1;4350:6;:11;:54;;4391:13;:11;:13::i;:::-;4382:6;4373;:15;;;;:::i;:::-;:31;;;;:::i;:::-;4350:54;;;4364:6;4350:54;4343:61;;;4094:317;;;:::o;6040:131::-;6105:7;6131:33;6147:16;6157:5;6147:9;:16::i;:::-;6131:15;:33::i;:::-;6124:40;;6040:131;;;:::o;6223:112::-;6286:7;6312:16;6322:5;6312:9;:16::i;:::-;6305:23;;6223:112;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;4835:125:111:-;4904:7;4930:23;4946:6;4930:15;:23::i;:::-;4923:30;;4835:125;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:122;2077:24;2095:5;2077:24;:::i;:::-;2070:5;2067:35;2057:63;;2116:1;2113;2106:12;2057:63;2004:122;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:329::-;2336:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:119;;;2391:79;;:::i;:::-;2353:119;2511:1;2536:53;2581:7;2572:6;2561:9;2557:22;2536:53;:::i;:::-;2526:63;;2482:117;2277:329;;;;:::o;2612:126::-;2649:7;2689:42;2682:5;2678:54;2667:65;;2612:126;;;:::o;2744:96::-;2781:7;2810:24;2828:5;2810:24;:::i;:::-;2799:35;;2744:96;;;:::o;2846:122::-;2919:24;2937:5;2919:24;:::i;:::-;2912:5;2909:35;2899:63;;2958:1;2955;2948:12;2899:63;2846:122;:::o;2974:139::-;3020:5;3058:6;3045:20;3036:29;;3074:33;3101:5;3074:33;:::i;:::-;2974:139;;;;:::o;3119:474::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3468:118;3119:474;;;;;:::o;3599:90::-;3633:7;3676:5;3669:13;3662:21;3651:32;;3599:90;;;:::o;3695:109::-;3776:21;3791:5;3776:21;:::i;:::-;3771:3;3764:34;3695:109;;:::o;3810:210::-;3897:4;3935:2;3924:9;3920:18;3912:26;;3948:65;4010:1;3999:9;3995:17;3986:6;3948:65;:::i;:::-;3810:210;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:619::-;6325:6;6333;6341;6390:2;6378:9;6369:7;6365:23;6361:32;6358:119;;;6396:79;;:::i;:::-;6358:119;6516:1;6541:53;6586:7;6577:6;6566:9;6562:22;6541:53;:::i;:::-;6531:63;;6487:117;6643:2;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6614:118;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6248:619;;;;;:::o;6873:474::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;6873:474;;;;;:::o;7353:143::-;7410:5;7441:6;7435:13;7426:22;;7457:33;7484:5;7457:33;:::i;:::-;7353:143;;;;:::o;7502:351::-;7572:6;7621:2;7609:9;7600:7;7596:23;7592:32;7589:119;;;7627:79;;:::i;:::-;7589:119;7747:1;7772:64;7828:7;7819:6;7808:9;7804:22;7772:64;:::i;:::-;7762:74;;7718:128;7502:351;;;;:::o;7859:180::-;7907:77;7904:1;7897:88;8004:4;8001:1;7994:15;8028:4;8025:1;8018:15;8045:320;8089:6;8126:1;8120:4;8116:12;8106:22;;8173:1;8167:4;8163:12;8194:18;8184:81;;8250:4;8242:6;8238:17;8228:27;;8184:81;8312:2;8304:6;8301:14;8281:18;8278:38;8275:84;;8331:18;;:::i;:::-;8275:84;8096:269;8045:320;;;:::o;8371:180::-;8419:77;8416:1;8409:88;8516:4;8513:1;8506:15;8540:4;8537:1;8530:15;8557:410;8597:7;8620:20;8638:1;8620:20;:::i;:::-;8615:25;;8654:20;8672:1;8654:20;:::i;:::-;8649:25;;8709:1;8706;8702:9;8731:30;8749:11;8731:30;:::i;:::-;8720:41;;8910:1;8901:7;8897:15;8894:1;8891:22;8871:1;8864:9;8844:83;8821:139;;8940:18;;:::i;:::-;8821:139;8605:362;8557:410;;;;:::o;8973:180::-;9021:77;9018:1;9011:88;9118:4;9115:1;9108:15;9142:4;9139:1;9132:15;9159:185;9199:1;9216:20;9234:1;9216:20;:::i;:::-;9211:25;;9250:20;9268:1;9250:20;:::i;:::-;9245:25;;9289:1;9279:35;;9294:18;;:::i;:::-;9279:35;9336:1;9333;9329:9;9324:14;;9159:185;;;;:::o;9350:442::-;9499:4;9537:2;9526:9;9522:18;9514:26;;9550:71;9618:1;9607:9;9603:17;9594:6;9550:71;:::i;:::-;9631:72;9699:2;9688:9;9684:18;9675:6;9631:72;:::i;:::-;9713;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9350:442;;;;;;:::o;9798:116::-;9868:21;9883:5;9868:21;:::i;:::-;9861:5;9858:32;9848:60;;9904:1;9901;9894:12;9848:60;9798:116;:::o;9920:137::-;9974:5;10005:6;9999:13;9990:22;;10021:30;10045:5;10021:30;:::i;:::-;9920:137;;;;:::o;10063:345::-;10130:6;10179:2;10167:9;10158:7;10154:23;10150:32;10147:119;;;10185:79;;:::i;:::-;10147:119;10305:1;10330:61;10383:7;10374:6;10363:9;10359:22;10330:61;:::i;:::-;10320:71;;10276:125;10063:345;;;;:::o;10414:332::-;10535:4;10573:2;10562:9;10558:18;10550:26;;10586:71;10654:1;10643:9;10639:17;10630:6;10586:71;:::i;:::-;10667:72;10735:2;10724:9;10720:18;10711:6;10667:72;:::i;:::-;10414:332;;;;;:::o;10752:::-;10873:4;10911:2;10900:9;10896:18;10888:26;;10924:71;10992:1;10981:9;10977:17;10968:6;10924:71;:::i;:::-;11005:72;11073:2;11062:9;11058:18;11049:6;11005:72;:::i;:::-;10752:332;;;;;:::o;11090:442::-;11239:4;11277:2;11266:9;11262:18;11254:26;;11290:71;11358:1;11347:9;11343:17;11334:6;11290:71;:::i;:::-;11371:72;11439:2;11428:9;11424:18;11415:6;11371:72;:::i;:::-;11453;11521:2;11510:9;11506:18;11497:6;11453:72;:::i;:::-;11090:442;;;;;;:::o;11538:191::-;11578:3;11597:20;11615:1;11597:20;:::i;:::-;11592:25;;11631:20;11649:1;11631:20;:::i;:::-;11626:25;;11674:1;11671;11667:9;11660:16;;11695:3;11692:1;11689:10;11686:36;;;11702:18;;:::i;:::-;11686:36;11538:191;;;;:::o","linkReferences":{},"immutableReferences":{"59789":[{"start":1468,"length":32},{"start":1979,"length":32},{"start":2087,"length":32},{"start":2445,"length":32},{"start":3002,"length":32},{"start":3376,"length":32}],"59791":[{"start":1940,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"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\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC4626 \\\"\\u4ee3\\u5e01\\u5316\\u91d1\\u5e93\\u6807\\u51c6\\\"\\u5408\\u7ea6\\uff0c\\u4ec5\\u4f9b\\u6559\\u5b66\\u4f7f\\u7528\\uff0c\\u4e0d\\u8981\\u7528\\u4e8e\\u751f\\u4ea7\",\"errors\":{\"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.\"}}]},\"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.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"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`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"decimals()\":{\"notice\":\"See {IERC20Metadata-decimals}.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/ERC4626.sol\":\"ERC4626\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/51_ERC4626/ERC4626.sol\":{\"keccak256\":\"0x84306bcb406180829fab9bd3bd39b3e8646cfdf99ed1bda227461e13cafd72a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1df06a1444e04841ed96ca21e7bedb894514b0c32d90d632ffeeb8c5329fc4e5\",\"dweb:/ipfs/QmcQ5bkUhySB97kfPXwcLModRV6NuGdkbW3mJtCFNHdq8F\"]},\"src/51_ERC4626/IERC4626.sol\":{\"keccak256\":\"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec\",\"dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"asset_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"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":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"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."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"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`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{"decimals()":{"notice":"See {IERC20Metadata-decimals}."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/ERC4626.sol":"ERC4626"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/51_ERC4626/ERC4626.sol":{"keccak256":"0x84306bcb406180829fab9bd3bd39b3e8646cfdf99ed1bda227461e13cafd72a1","urls":["bzz-raw://1df06a1444e04841ed96ca21e7bedb894514b0c32d90d632ffeeb8c5329fc4e5","dweb:/ipfs/QmcQ5bkUhySB97kfPXwcLModRV6NuGdkbW3mJtCFNHdq8F"],"license":"MIT"},"src/51_ERC4626/IERC4626.sol":{"keccak256":"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29","urls":["bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec","dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY"],"license":"MIT"}},"version":1},"id":111} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"asset_","type":"address","internalType":"contract ERC20"},{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"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":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","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":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"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"}]}],"bytecode":{"object":"0x60c060405234801561000f575f5ffd5b5060405161233c38038061233c833981810160405281019061003191906102c3565b81818160039081610042919061056c565b508060049081610052919061056c565b5050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f69190610671565b60ff1660a08160ff168152505050505061069c565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101458261011c565b9050919050565b5f6101568261013b565b9050919050565b6101668161014c565b8114610170575f5ffd5b50565b5f815190506101818161015d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101d58261018f565b810181811067ffffffffffffffff821117156101f4576101f361019f565b5b80604052505050565b5f61020661010b565b905061021282826101cc565b919050565b5f67ffffffffffffffff8211156102315761023061019f565b5b61023a8261018f565b9050602081019050919050565b8281835e5f83830152505050565b5f61026761026284610217565b6101fd565b9050828152602081018484840111156102835761028261018b565b5b61028e848285610247565b509392505050565b5f82601f8301126102aa576102a9610187565b5b81516102ba848260208601610255565b91505092915050565b5f5f5f606084860312156102da576102d9610114565b5b5f6102e786828701610173565b935050602084015167ffffffffffffffff81111561030857610307610118565b5b61031486828701610296565b925050604084015167ffffffffffffffff81111561033557610334610118565b5b61034186828701610296565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039957607f821691505b6020821081036103ac576103ab610355565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261040e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103d3565b61041886836103d3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61045c61045761045284610430565b610439565b610430565b9050919050565b5f819050919050565b61047583610442565b61048961048182610463565b8484546103df565b825550505050565b5f5f905090565b6104a0610491565b6104ab81848461046c565b505050565b5f5b828110156104d1576104c65f828401610498565b6001810190506104b2565b505050565b601f8211156105245782821115610523576104f0816103b2565b6104f9836103c4565b610502856103c4565b602086101561050f575f90505b80830161051e828403826104b0565b505050505b5b505050565b5f82821c905092915050565b5f6105445f1984600802610529565b1980831691505092915050565b5f61055c8383610535565b9150826002028217905092915050565b6105758261034b565b67ffffffffffffffff81111561058e5761058d61019f565b5b6105988254610382565b6105a38282856104d6565b5f60209050601f8311600181146105d4575f84156105c2578287015190505b6105cc8582610551565b865550610633565b601f1984166105e2866103b2565b5f5b82811015610609578489015182556001820191506020850194506020810190506105e4565b868310156106265784890151610622601f891682610535565b8355505b6001600288020188555050505b505050505050565b5f60ff82169050919050565b6106508161063b565b811461065a575f5ffd5b50565b5f8151905061066b81610647565b92915050565b5f6020828403121561068657610685610114565b5b5f6106938482850161065d565b91505092915050565b60805160a051611c5c6106e05f395f61079401525f81816105bc015281816107bb015281816108270152818161098d01528181610bba0152610d300152611c5c5ff3fe608060405234801561000f575f5ffd5b5060043610610171575f3560e01c806370a08231116100dc578063ba08765211610095578063ce96cb771161006f578063ce96cb77146104f9578063d905777e14610529578063dd62ed3e14610559578063ef8b30f71461058957610171565b8063ba08765214610469578063c63d75b614610499578063c6e6f592146104c957610171565b806370a082311461035b57806394bf804d1461038b57806395d89b41146103bb578063a9059cbb146103d9578063b3d7f6b914610409578063b460af941461043957610171565b806323b872dd1161012e57806323b872dd1461025f578063313ce5671461028f57806338d52e0f146102ad578063402d267d146102cb5780634cdad506146102fb5780636e553f651461032b57610171565b806301e1d1141461017557806306fdde031461019357806307a2d13a146101b1578063095ea7b3146101e15780630a28a4771461021157806318160ddd14610241575b5f5ffd5b61017d6105b9565b60405161018a919061160f565b60405180910390f35b61019b610657565b6040516101a89190611698565b60405180910390f35b6101cb60048036038101906101c691906116e6565b6106e7565b6040516101d8919061160f565b60405180910390f35b6101fb60048036038101906101f6919061176b565b610727565b60405161020891906117c3565b60405180910390f35b61022b600480360381019061022691906116e6565b610749565b604051610238919061160f565b60405180910390f35b61024961075a565b604051610256919061160f565b60405180910390f35b610279600480360381019061027491906117dc565b610763565b60405161028691906117c3565b60405180910390f35b610297610791565b6040516102a49190611847565b60405180910390f35b6102b56107b8565b6040516102c2919061186f565b60405180910390f35b6102e560048036038101906102e09190611888565b6107df565b6040516102f2919061160f565b60405180910390f35b610315600480360381019061031091906116e6565b610808565b604051610322919061160f565b60405180910390f35b610345600480360381019061034091906118b3565b610819565b604051610352919061160f565b60405180910390f35b61037560048036038101906103709190611888565b61093a565b604051610382919061160f565b60405180910390f35b6103a560048036038101906103a091906118b3565b61097f565b6040516103b2919061160f565b60405180910390f35b6103c3610aa0565b6040516103d09190611698565b60405180910390f35b6103f360048036038101906103ee919061176b565b610b30565b60405161040091906117c3565b60405180910390f35b610423600480360381019061041e91906116e6565b610b52565b604051610430919061160f565b60405180910390f35b610453600480360381019061044e91906118f1565b610b63565b604051610460919061160f565b60405180910390f35b610483600480360381019061047e91906118f1565b610cd9565b604051610490919061160f565b60405180910390f35b6104b360048036038101906104ae9190611888565b610e4f565b6040516104c0919061160f565b60405180910390f35b6104e360048036038101906104de91906116e6565b610e78565b6040516104f0919061160f565b60405180910390f35b610513600480360381019061050e9190611888565b610eb8565b604051610520919061160f565b60405180910390f35b610543600480360381019061053e9190611888565b610ed1565b604051610550919061160f565b60405180910390f35b610573600480360381019061056e9190611941565b610ee2565b604051610580919061160f565b60405180910390f35b6105a3600480360381019061059e91906116e6565b610f64565b6040516105b0919061160f565b60405180910390f35b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610613919061186f565b602060405180830381865afa15801561062e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106529190611993565b905090565b606060038054610666906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610692906119eb565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b5050505050905090565b5f5f6106f161075a565b90505f811461071d57806107036105b9565b8461070e9190611a48565b6107189190611ab6565b61071f565b825b915050919050565b5f5f610731610f75565b905061073e818585610f7c565b600191505092915050565b5f61075382610e78565b9050919050565b5f600254905090565b5f5f61076d610f75565b905061077a858285610f8e565b610785858585611021565b60019150509392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f610812826106e7565b9050919050565b5f61082383610f64565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161088293929190611ae6565b6020604051808303815f875af115801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611b45565b506108cd8282611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7858460405161092c929190611b70565b60405180910390a392915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61098983610b52565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109e893929190611ae6565b6020604051808303815f875af1158015610a04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a289190611b45565b50610a338284611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051610a92929190611b70565b60405180910390a392915050565b606060048054610aaf906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610adb906119eb565b8015610b265780601f10610afd57610100808354040283529160200191610b26565b820191905f5260205f20905b815481529060010190602001808311610b0957829003601f168201915b5050505050905090565b5f5f610b3a610f75565b9050610b47818585611021565b600191505092915050565b5f610b5c826106e7565b9050919050565b5f610b6d84610749565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bae57610bad823383610f8e565b5b610bb88282611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84866040518363ffffffff1660e01b8152600401610c13929190611b97565b6020604051808303815f875af1158015610c2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c539190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8785604051610cca929190611b70565b60405180910390a49392505050565b5f610ce384610808565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2457610d23823386610f8e565b5b610d2e8285611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d89929190611b97565b6020604051808303815f875af1158015610da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8488604051610e40929190611b70565b60405180910390a49392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f5f610e8261075a565b90505f8114610eae57610e936105b9565b8184610e9f9190611a48565b610ea99190611ab6565b610eb0565b825b915050919050565b5f610eca610ec58361093a565b6106e7565b9050919050565b5f610edb8261093a565b9050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610f6e82610e78565b9050919050565b5f33905090565b610f89838383600161120f565b505050565b5f610f998484610ee2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561101b578181101561100c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161100393929190611bbe565b60405180910390fd5b61101a84848484035f61120f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611091575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611088919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611101575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110f8919061186f565b60405180910390fd5b61110c8383836113de565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611181575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611178919061186f565b60405180910390fd5b61118c5f83836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611200575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016111f7919061186f565b60405180910390fd5b61120b825f836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127f575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611276919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ef575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016112e6919061186f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156113d8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113cf919061160f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142e578060025f8282546114229190611bf3565b925050819055506114fc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114b7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ae93929190611bbe565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578060025f828254039250508190555061158d565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115ea919061160f565b60405180910390a3505050565b5f819050919050565b611609816115f7565b82525050565b5f6020820190506116225f830184611600565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61166a82611628565b6116748185611632565b9350611684818560208601611642565b61168d81611650565b840191505092915050565b5f6020820190508181035f8301526116b08184611660565b905092915050565b5f5ffd5b6116c5816115f7565b81146116cf575f5ffd5b50565b5f813590506116e0816116bc565b92915050565b5f602082840312156116fb576116fa6116b8565b5b5f611708848285016116d2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61173a82611711565b9050919050565b61174a81611730565b8114611754575f5ffd5b50565b5f8135905061176581611741565b92915050565b5f5f60408385031215611781576117806116b8565b5b5f61178e85828601611757565b925050602061179f858286016116d2565b9150509250929050565b5f8115159050919050565b6117bd816117a9565b82525050565b5f6020820190506117d65f8301846117b4565b92915050565b5f5f5f606084860312156117f3576117f26116b8565b5b5f61180086828701611757565b935050602061181186828701611757565b9250506040611822868287016116d2565b9150509250925092565b5f60ff82169050919050565b6118418161182c565b82525050565b5f60208201905061185a5f830184611838565b92915050565b61186981611730565b82525050565b5f6020820190506118825f830184611860565b92915050565b5f6020828403121561189d5761189c6116b8565b5b5f6118aa84828501611757565b91505092915050565b5f5f604083850312156118c9576118c86116b8565b5b5f6118d6858286016116d2565b92505060206118e785828601611757565b9150509250929050565b5f5f5f60608486031215611908576119076116b8565b5b5f611915868287016116d2565b935050602061192686828701611757565b925050604061193786828701611757565b9150509250925092565b5f5f60408385031215611957576119566116b8565b5b5f61196485828601611757565b925050602061197585828601611757565b9150509250929050565b5f8151905061198d816116bc565b92915050565b5f602082840312156119a8576119a76116b8565b5b5f6119b58482850161197f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a52826115f7565b9150611a5d836115f7565b9250828202611a6b816115f7565b91508282048414831517611a8257611a81611a1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ac0826115f7565b9150611acb836115f7565b925082611adb57611ada611a89565b5b828204905092915050565b5f606082019050611af95f830186611860565b611b066020830185611860565b611b136040830184611600565b949350505050565b611b24816117a9565b8114611b2e575f5ffd5b50565b5f81519050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b596116b8565b5b5f611b6784828501611b31565b91505092915050565b5f604082019050611b835f830185611600565b611b906020830184611600565b9392505050565b5f604082019050611baa5f830185611860565b611bb76020830184611600565b9392505050565b5f606082019050611bd15f830186611860565b611bde6020830185611600565b611beb6040830184611600565b949350505050565b5f611bfd826115f7565b9150611c08836115f7565b9250828201905080821115611c2057611c1f611a1b565b5b9291505056fea2646970667358221220eebf57f435b1d7379d13ba49400f647716177982544640997af710a3b901737064736f6c63430008220033","sourceMap":"282:6055:105:-:0;;;575:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;681:5;688:7;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;716:6:105::1;707:15;;;;;;;;::::0;::::1;744:6;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;732:29;;;;;;;;::::0;::::1;575:194:::0;;;282:6055;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:111::-;620:7;649:24;667:5;649:24;:::i;:::-;638:35;;568:111;;;:::o;685:152::-;773:39;806:5;773:39;:::i;:::-;766:5;763:50;753:78;;827:1;824;817:12;753:78;685:152;:::o;843:173::-;915:5;946:6;940:13;931:22;;962:48;1004:5;962:48;:::i;:::-;843:173;;;;:::o;1022:117::-;1131:1;1128;1121:12;1145:117;1254:1;1251;1244:12;1268:102;1309:6;1360:2;1356:7;1351:2;1344:5;1340:14;1336:28;1326:38;;1268:102;;;:::o;1376:180::-;1424:77;1421:1;1414:88;1521:4;1518:1;1511:15;1545:4;1542:1;1535:15;1562:281;1645:27;1667:4;1645:27;:::i;:::-;1637:6;1633:40;1775:6;1763:10;1760:22;1739:18;1727:10;1724:34;1721:62;1718:88;;;1786:18;;:::i;:::-;1718:88;1826:10;1822:2;1815:22;1605:238;1562:281;;:::o;1849:129::-;1883:6;1910:20;;:::i;:::-;1900:30;;1939:33;1967:4;1959:6;1939:33;:::i;:::-;1849:129;;;:::o;1984:308::-;2046:4;2136:18;2128:6;2125:30;2122:56;;;2158:18;;:::i;:::-;2122:56;2196:29;2218:6;2196:29;:::i;:::-;2188:37;;2280:4;2274;2270:15;2262:23;;1984:308;;;:::o;2298:139::-;2387:6;2382:3;2377;2371:23;2428:1;2419:6;2414:3;2410:16;2403:27;2298:139;;;:::o;2443:434::-;2532:5;2557:66;2573:49;2615:6;2573:49;:::i;:::-;2557:66;:::i;:::-;2548:75;;2646:6;2639:5;2632:21;2684:4;2677:5;2673:16;2722:3;2713:6;2708:3;2704:16;2701:25;2698:112;;;2729:79;;:::i;:::-;2698:112;2819:52;2864:6;2859:3;2854;2819:52;:::i;:::-;2538:339;2443:434;;;;;:::o;2897:355::-;2964:5;3013:3;3006:4;2998:6;2994:17;2990:27;2980:122;;3021:79;;:::i;:::-;2980:122;3131:6;3125:13;3156:90;3242:3;3234:6;3227:4;3219:6;3215:17;3156:90;:::i;:::-;3147:99;;2970:282;2897:355;;;;:::o;3258:1039::-;3381:6;3389;3397;3446:2;3434:9;3425:7;3421:23;3417:32;3414:119;;;3452:79;;:::i;:::-;3414:119;3572:1;3597:79;3668:7;3659:6;3648:9;3644:22;3597:79;:::i;:::-;3587:89;;3543:143;3746:2;3735:9;3731:18;3725:25;3777:18;3769:6;3766:30;3763:117;;;3799:79;;:::i;:::-;3763:117;3904:74;3970:7;3961:6;3950:9;3946:22;3904:74;:::i;:::-;3894:84;;3696:292;4048:2;4037:9;4033:18;4027:25;4079:18;4071:6;4068:30;4065:117;;;4101:79;;:::i;:::-;4065:117;4206:74;4272:7;4263:6;4252:9;4248:22;4206:74;:::i;:::-;4196:84;;3998:292;3258:1039;;;;;:::o;4303:99::-;4355:6;4389:5;4383:12;4373:22;;4303:99;;;:::o;4408:180::-;4456:77;4453:1;4446:88;4553:4;4550:1;4543:15;4577:4;4574:1;4567:15;4594:320;4638:6;4675:1;4669:4;4665:12;4655:22;;4722:1;4716:4;4712:12;4743:18;4733:81;;4799:4;4791:6;4787:17;4777:27;;4733:81;4861:2;4853:6;4850:14;4830:18;4827:38;4824:84;;4880:18;;:::i;:::-;4824:84;4645:269;4594:320;;;:::o;4920:141::-;4969:4;4992:3;4984:11;;5015:3;5012:1;5005:14;5049:4;5046:1;5036:18;5028:26;;4920:141;;;:::o;5067:93::-;5104:6;5151:2;5146;5139:5;5135:14;5131:23;5121:33;;5067:93;;;:::o;5166:107::-;5210:8;5260:5;5254:4;5250:16;5229:37;;5166:107;;;;:::o;5279:393::-;5348:6;5398:1;5386:10;5382:18;5421:97;5451:66;5440:9;5421:97;:::i;:::-;5539:39;5569:8;5558:9;5539:39;:::i;:::-;5527:51;;5611:4;5607:9;5600:5;5596:21;5587:30;;5660:4;5650:8;5646:19;5639:5;5636:30;5626:40;;5355:317;;5279:393;;;;;:::o;5678:77::-;5715:7;5744:5;5733:16;;5678:77;;;:::o;5761:60::-;5789:3;5810:5;5803:12;;5761:60;;;:::o;5827:142::-;5877:9;5910:53;5928:34;5937:24;5955:5;5937:24;:::i;:::-;5928:34;:::i;:::-;5910:53;:::i;:::-;5897:66;;5827:142;;;:::o;5975:75::-;6018:3;6039:5;6032:12;;5975:75;;;:::o;6056:269::-;6166:39;6197:7;6166:39;:::i;:::-;6227:91;6276:41;6300:16;6276:41;:::i;:::-;6268:6;6261:4;6255:11;6227:91;:::i;:::-;6221:4;6214:105;6132:193;6056:269;;;:::o;6331:73::-;6376:3;6397:1;6390:8;;6331:73;:::o;6410:189::-;6487:32;;:::i;:::-;6528:65;6586:6;6578;6572:4;6528:65;:::i;:::-;6463:136;6410:189;;:::o;6605:214::-;6690:1;6675:138;6700:9;6697:1;6694:16;6675:138;;;6752:51;6801:1;6797;6786:9;6782:17;6752:51;:::i;:::-;6725:1;6722;6718:9;6713:14;;6675:138;;;6679:14;6605:214;;:::o;6825:746::-;6926:2;6921:3;6918:11;6915:649;;;6955:10;6950:3;6947:19;6944:610;;;7001:38;7033:5;7001:38;:::i;:::-;7076:22;7094:3;7076:22;:::i;:::-;7135:29;7153:10;7135:29;:::i;:::-;7325:2;7313:10;7310:18;7307:79;;;7367:1;7351:17;;7307:79;7436:12;7426:8;7422:27;7466:74;7526:12;7512;7508:31;7495:11;7466:74;:::i;:::-;6967:587;;;;6944:610;6915:649;6825:746;;;:::o;7577:117::-;7631:8;7681:5;7675:4;7671:16;7650:37;;7577:117;;;;:::o;7700:169::-;7744:6;7777:51;7825:1;7821:6;7813:5;7810:1;7806:13;7777:51;:::i;:::-;7773:56;7858:4;7852;7848:15;7838:25;;7751:118;7700:169;;;;:::o;7874:295::-;7950:4;8096:29;8121:3;8115:4;8096:29;:::i;:::-;8088:37;;8158:3;8155:1;8151:11;8145:4;8142:21;8134:29;;7874:295;;;;:::o;8174:1395::-;8291:37;8324:3;8291:37;:::i;:::-;8393:18;8385:6;8382:30;8379:56;;;8415:18;;:::i;:::-;8379:56;8459:38;8491:4;8485:11;8459:38;:::i;:::-;8544:67;8604:6;8596;8590:4;8544:67;:::i;:::-;8638:1;8662:4;8649:17;;8694:2;8686:6;8683:14;8711:1;8706:618;;;;9368:1;9385:6;9382:77;;;9434:9;9429:3;9425:19;9419:26;9410:35;;9382:77;9485:67;9545:6;9538:5;9485:67;:::i;:::-;9479:4;9472:81;9341:222;8676:887;;8706:618;8758:4;8754:9;8746:6;8742:22;8792:37;8824:4;8792:37;:::i;:::-;8851:1;8865:208;8879:7;8876:1;8873:14;8865:208;;;8958:9;8953:3;8949:19;8943:26;8935:6;8928:42;9009:1;9001:6;8997:14;8987:24;;9056:2;9045:9;9041:18;9028:31;;8902:4;8899:1;8895:12;8890:17;;8865:208;;;9101:6;9092:7;9089:19;9086:179;;;9159:9;9154:3;9150:19;9144:26;9202:48;9244:4;9236:6;9232:17;9221:9;9202:48;:::i;:::-;9194:6;9187:64;9109:156;9086:179;9311:1;9307;9299:6;9295:14;9291:22;9285:4;9278:36;8713:611;;;8676:887;;8266:1303;;;8174:1395;;:::o;9575:86::-;9610:7;9650:4;9643:5;9639:16;9628:27;;9575:86;;;:::o;9667:118::-;9738:22;9754:5;9738:22;:::i;:::-;9731:5;9728:33;9718:61;;9775:1;9772;9765:12;9718:61;9667:118;:::o;9791:139::-;9846:5;9877:6;9871:13;9862:22;;9893:31;9918:5;9893:31;:::i;:::-;9791:139;;;;:::o;9936:347::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:62;10258:7;10249:6;10238:9;10234:22;10204:62;:::i;:::-;10194:72;;10150:126;9936:347;;;;:::o;282:6055:105:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610171575f3560e01c806370a08231116100dc578063ba08765211610095578063ce96cb771161006f578063ce96cb77146104f9578063d905777e14610529578063dd62ed3e14610559578063ef8b30f71461058957610171565b8063ba08765214610469578063c63d75b614610499578063c6e6f592146104c957610171565b806370a082311461035b57806394bf804d1461038b57806395d89b41146103bb578063a9059cbb146103d9578063b3d7f6b914610409578063b460af941461043957610171565b806323b872dd1161012e57806323b872dd1461025f578063313ce5671461028f57806338d52e0f146102ad578063402d267d146102cb5780634cdad506146102fb5780636e553f651461032b57610171565b806301e1d1141461017557806306fdde031461019357806307a2d13a146101b1578063095ea7b3146101e15780630a28a4771461021157806318160ddd14610241575b5f5ffd5b61017d6105b9565b60405161018a919061160f565b60405180910390f35b61019b610657565b6040516101a89190611698565b60405180910390f35b6101cb60048036038101906101c691906116e6565b6106e7565b6040516101d8919061160f565b60405180910390f35b6101fb60048036038101906101f6919061176b565b610727565b60405161020891906117c3565b60405180910390f35b61022b600480360381019061022691906116e6565b610749565b604051610238919061160f565b60405180910390f35b61024961075a565b604051610256919061160f565b60405180910390f35b610279600480360381019061027491906117dc565b610763565b60405161028691906117c3565b60405180910390f35b610297610791565b6040516102a49190611847565b60405180910390f35b6102b56107b8565b6040516102c2919061186f565b60405180910390f35b6102e560048036038101906102e09190611888565b6107df565b6040516102f2919061160f565b60405180910390f35b610315600480360381019061031091906116e6565b610808565b604051610322919061160f565b60405180910390f35b610345600480360381019061034091906118b3565b610819565b604051610352919061160f565b60405180910390f35b61037560048036038101906103709190611888565b61093a565b604051610382919061160f565b60405180910390f35b6103a560048036038101906103a091906118b3565b61097f565b6040516103b2919061160f565b60405180910390f35b6103c3610aa0565b6040516103d09190611698565b60405180910390f35b6103f360048036038101906103ee919061176b565b610b30565b60405161040091906117c3565b60405180910390f35b610423600480360381019061041e91906116e6565b610b52565b604051610430919061160f565b60405180910390f35b610453600480360381019061044e91906118f1565b610b63565b604051610460919061160f565b60405180910390f35b610483600480360381019061047e91906118f1565b610cd9565b604051610490919061160f565b60405180910390f35b6104b360048036038101906104ae9190611888565b610e4f565b6040516104c0919061160f565b60405180910390f35b6104e360048036038101906104de91906116e6565b610e78565b6040516104f0919061160f565b60405180910390f35b610513600480360381019061050e9190611888565b610eb8565b604051610520919061160f565b60405180910390f35b610543600480360381019061053e9190611888565b610ed1565b604051610550919061160f565b60405180910390f35b610573600480360381019061056e9190611941565b610ee2565b604051610580919061160f565b60405180910390f35b6105a3600480360381019061059e91906116e6565b610f64565b6040516105b0919061160f565b60405180910390f35b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610613919061186f565b602060405180830381865afa15801561062e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106529190611993565b905090565b606060038054610666906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610692906119eb565b80156106dd5780601f106106b4576101008083540402835291602001916106dd565b820191905f5260205f20905b8154815290600101906020018083116106c057829003601f168201915b5050505050905090565b5f5f6106f161075a565b90505f811461071d57806107036105b9565b8461070e9190611a48565b6107189190611ab6565b61071f565b825b915050919050565b5f5f610731610f75565b905061073e818585610f7c565b600191505092915050565b5f61075382610e78565b9050919050565b5f600254905090565b5f5f61076d610f75565b905061077a858285610f8e565b610785858585611021565b60019150509392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f610812826106e7565b9050919050565b5f61082383610f64565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b815260040161088293929190611ae6565b6020604051808303815f875af115801561089e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c29190611b45565b506108cd8282611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7858460405161092c929190611b70565b60405180910390a392915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61098983610b52565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016109e893929190611ae6565b6020604051808303815f875af1158015610a04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a289190611b45565b50610a338284611111565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78386604051610a92929190611b70565b60405180910390a392915050565b606060048054610aaf906119eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610adb906119eb565b8015610b265780601f10610afd57610100808354040283529160200191610b26565b820191905f5260205f20905b815481529060010190602001808311610b0957829003601f168201915b5050505050905090565b5f5f610b3a610f75565b9050610b47818585611021565b600191505092915050565b5f610b5c826106e7565b9050919050565b5f610b6d84610749565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bae57610bad823383610f8e565b5b610bb88282611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84866040518363ffffffff1660e01b8152600401610c13929190611b97565b6020604051808303815f875af1158015610c2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c539190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8785604051610cca929190611b70565b60405180910390a49392505050565b5f610ce384610808565b90508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2457610d23823386610f8e565b5b610d2e8285611190565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610d89929190611b97565b6020604051808303815f875af1158015610da5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611b45565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8488604051610e40929190611b70565b60405180910390a49392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050919050565b5f5f610e8261075a565b90505f8114610eae57610e936105b9565b8184610e9f9190611a48565b610ea99190611ab6565b610eb0565b825b915050919050565b5f610eca610ec58361093a565b6106e7565b9050919050565b5f610edb8261093a565b9050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610f6e82610e78565b9050919050565b5f33905090565b610f89838383600161120f565b505050565b5f610f998484610ee2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561101b578181101561100c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161100393929190611bbe565b60405180910390fd5b61101a84848484035f61120f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611091575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611088919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611101575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016110f8919061186f565b60405180910390fd5b61110c8383836113de565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611181575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611178919061186f565b60405180910390fd5b61118c5f83836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611200575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016111f7919061186f565b60405180910390fd5b61120b825f836113de565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127f575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611276919061186f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ef575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016112e6919061186f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156113d8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113cf919061160f565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142e578060025f8282546114229190611bf3565b925050819055506114fc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156114b7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016114ae93929190611bbe565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578060025f828254039250508190555061158d565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115ea919061160f565b60405180910390a3505050565b5f819050919050565b611609816115f7565b82525050565b5f6020820190506116225f830184611600565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61166a82611628565b6116748185611632565b9350611684818560208601611642565b61168d81611650565b840191505092915050565b5f6020820190508181035f8301526116b08184611660565b905092915050565b5f5ffd5b6116c5816115f7565b81146116cf575f5ffd5b50565b5f813590506116e0816116bc565b92915050565b5f602082840312156116fb576116fa6116b8565b5b5f611708848285016116d2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61173a82611711565b9050919050565b61174a81611730565b8114611754575f5ffd5b50565b5f8135905061176581611741565b92915050565b5f5f60408385031215611781576117806116b8565b5b5f61178e85828601611757565b925050602061179f858286016116d2565b9150509250929050565b5f8115159050919050565b6117bd816117a9565b82525050565b5f6020820190506117d65f8301846117b4565b92915050565b5f5f5f606084860312156117f3576117f26116b8565b5b5f61180086828701611757565b935050602061181186828701611757565b9250506040611822868287016116d2565b9150509250925092565b5f60ff82169050919050565b6118418161182c565b82525050565b5f60208201905061185a5f830184611838565b92915050565b61186981611730565b82525050565b5f6020820190506118825f830184611860565b92915050565b5f6020828403121561189d5761189c6116b8565b5b5f6118aa84828501611757565b91505092915050565b5f5f604083850312156118c9576118c86116b8565b5b5f6118d6858286016116d2565b92505060206118e785828601611757565b9150509250929050565b5f5f5f60608486031215611908576119076116b8565b5b5f611915868287016116d2565b935050602061192686828701611757565b925050604061193786828701611757565b9150509250925092565b5f5f60408385031215611957576119566116b8565b5b5f61196485828601611757565b925050602061197585828601611757565b9150509250929050565b5f8151905061198d816116bc565b92915050565b5f602082840312156119a8576119a76116b8565b5b5f6119b58482850161197f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a0257607f821691505b602082108103611a1557611a146119be565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a52826115f7565b9150611a5d836115f7565b9250828202611a6b816115f7565b91508282048414831517611a8257611a81611a1b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ac0826115f7565b9150611acb836115f7565b925082611adb57611ada611a89565b5b828204905092915050565b5f606082019050611af95f830186611860565b611b066020830185611860565b611b136040830184611600565b949350505050565b611b24816117a9565b8114611b2e575f5ffd5b50565b5f81519050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b596116b8565b5b5f611b6784828501611b31565b91505092915050565b5f604082019050611b835f830185611600565b611b906020830184611600565b9392505050565b5f604082019050611baa5f830185611860565b611bb76020830184611600565b9392505050565b5f606082019050611bd15f830186611860565b611bde6020830185611600565b611beb6040830184611600565b949350505050565b5f611bfd826115f7565b9150611c08836115f7565b9250828201905080821115611c2057611c1f611a1b565b5b9291505056fea2646970667358221220eebf57f435b1d7379d13ba49400f647716177982544640997af710a3b901737064736f6c63430008220033","sourceMap":"282:6055:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3880:160;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:317:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5186:126:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;976:121:105;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;813:103;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5364:124;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1325:445;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1813:446:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5010:122:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2306:646;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2997:654;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5881:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4094:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6040:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6223:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4835:125:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3880:160;3932:7;4002:6;:16;;;4027:4;4002:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3995:38;;3880:160;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;4465:317:105:-;4535:7;4554:14;4571:13;:11;:13::i;:::-;4554:30;;4731:1;4721:6;:11;:54;;4769:6;4753:13;:11;:13::i;:::-;4744:6;:22;;;;:::i;:::-;:31;;;;:::i;:::-;4721:54;;;4735:6;4721:54;4714:61;;;4465:317;;;:::o;3902:186:22:-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;5186:126:105:-;5256:7;5282:23;5298:6;5282:15;:23::i;:::-;5275:30;;5186:126;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;976:121:105:-;1057:5;1081:9;1074:16;;976:121;:::o;813:103::-;868:7;902:6;887:22;;813:103;:::o;5727:108::-;5785:7;5811:17;5804:24;;5727:108;;;:::o;5364:124::-;5432:7;5458:23;5474:6;5458:15;:23::i;:::-;5451:30;;5364:124;;;:::o;1325:445::-;1400:14;1501:22;1516:6;1501:14;:22::i;:::-;1492:31;;1582:6;:19;;;1602:10;1622:4;1629:6;1582:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1646:23;1652:8;1662:6;1646:5;:23::i;:::-;1738:8;1718:45;;1726:10;1718:45;;;1748:6;1756;1718:45;;;;;;;:::i;:::-;;;;;;;;1325:445;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1813:446:105:-;1885:14;1992:19;2004:6;1992:11;:19::i;:::-;1983:28;;2070:6;:19;;;2090:10;2110:4;2117:6;2070:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2134:23;2140:8;2150:6;2134:5;:23::i;:::-;2226:8;2206:45;;2214:10;2206:45;;;2236:6;2244;2206:45;;;;;;;:::i;:::-;;;;;;;;1813:446;;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;5010:122:105:-;5076:7;5102:23;5118:6;5102:15;:23::i;:::-;5095:30;;5010:122;;;:::o;2306:646::-;2427:14;2529:23;2545:6;2529:15;:23::i;:::-;2520:32;;2647:5;2633:19;;:10;:19;;;2629:92;;2668:42;2684:5;2691:10;2703:6;2668:15;:42::i;:::-;2629:92;2779:20;2785:5;2792:6;2779:5;:20::i;:::-;2809:6;:15;;;2825:8;2835:6;2809:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2923:5;2892:53;;2913:8;2892:53;;2901:10;2892:53;;;2930:6;2938;2892:53;;;;;;;:::i;:::-;;;;;;;;2306:646;;;;;:::o;2997:654::-;3116:14;3222:21;3236:6;3222:13;:21::i;:::-;3213:30;;3338:5;3324:19;;:10;:19;;;3320:92;;3359:42;3375:5;3382:10;3394:6;3359:15;:42::i;:::-;3320:92;3470:20;3476:5;3483:6;3470:5;:20::i;:::-;3500:6;:15;;;3516:8;3526:6;3500:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3622:5;3591:53;;3612:8;3591:53;;3600:10;3591:53;;;3629:6;3637;3591:53;;;;;;;:::i;:::-;;;;;;;;2997:654;;;;;:::o;5881:105::-;5936:7;5962:17;5955:24;;5881:105;;;:::o;4094:317::-;4164:7;4183:14;4200:13;:11;:13::i;:::-;4183:30;;4360:1;4350:6;:11;:54;;4391:13;:11;:13::i;:::-;4382:6;4373;:15;;;;:::i;:::-;:31;;;;:::i;:::-;4350:54;;;4364:6;4350:54;4343:61;;;4094:317;;;:::o;6040:131::-;6105:7;6131:33;6147:16;6157:5;6147:9;:16::i;:::-;6131:15;:33::i;:::-;6124:40;;6040:131;;;:::o;6223:112::-;6286:7;6312:16;6322:5;6312:9;:16::i;:::-;6305:23;;6223:112;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;4835:125:105:-;4904:7;4930:23;4946:6;4930:15;:23::i;:::-;4923:30;;4835:125;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:139::-;811:6;806:3;801;795:23;852:1;843:6;838:3;834:16;827:27;722:139;;;:::o;867:102::-;908:6;959:2;955:7;950:2;943:5;939:14;935:28;925:38;;867:102;;;:::o;975:377::-;1063:3;1091:39;1124:5;1091:39;:::i;:::-;1146:71;1210:6;1205:3;1146:71;:::i;:::-;1139:78;;1226:65;1284:6;1279:3;1272:4;1265:5;1261:16;1226:65;:::i;:::-;1316:29;1338:6;1316:29;:::i;:::-;1311:3;1307:39;1300:46;;1067:285;975:377;;;;:::o;1358:313::-;1471:4;1509:2;1498:9;1494:18;1486:26;;1558:9;1552:4;1548:20;1544:1;1533:9;1529:17;1522:47;1586:78;1659:4;1650:6;1586:78;:::i;:::-;1578:86;;1358:313;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:122;2077:24;2095:5;2077:24;:::i;:::-;2070:5;2067:35;2057:63;;2116:1;2113;2106:12;2057:63;2004:122;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:329::-;2336:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:119;;;2391:79;;:::i;:::-;2353:119;2511:1;2536:53;2581:7;2572:6;2561:9;2557:22;2536:53;:::i;:::-;2526:63;;2482:117;2277:329;;;;:::o;2612:126::-;2649:7;2689:42;2682:5;2678:54;2667:65;;2612:126;;;:::o;2744:96::-;2781:7;2810:24;2828:5;2810:24;:::i;:::-;2799:35;;2744:96;;;:::o;2846:122::-;2919:24;2937:5;2919:24;:::i;:::-;2912:5;2909:35;2899:63;;2958:1;2955;2948:12;2899:63;2846:122;:::o;2974:139::-;3020:5;3058:6;3045:20;3036:29;;3074:33;3101:5;3074:33;:::i;:::-;2974:139;;;;:::o;3119:474::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3468:118;3119:474;;;;;:::o;3599:90::-;3633:7;3676:5;3669:13;3662:21;3651:32;;3599:90;;;:::o;3695:109::-;3776:21;3791:5;3776:21;:::i;:::-;3771:3;3764:34;3695:109;;:::o;3810:210::-;3897:4;3935:2;3924:9;3920:18;3912:26;;3948:65;4010:1;3999:9;3995:17;3986:6;3948:65;:::i;:::-;3810:210;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:619::-;6325:6;6333;6341;6390:2;6378:9;6369:7;6365:23;6361:32;6358:119;;;6396:79;;:::i;:::-;6358:119;6516:1;6541:53;6586:7;6577:6;6566:9;6562:22;6541:53;:::i;:::-;6531:63;;6487:117;6643:2;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6614:118;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6248:619;;;;;:::o;6873:474::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;6873:474;;;;;:::o;7353:143::-;7410:5;7441:6;7435:13;7426:22;;7457:33;7484:5;7457:33;:::i;:::-;7353:143;;;;:::o;7502:351::-;7572:6;7621:2;7609:9;7600:7;7596:23;7592:32;7589:119;;;7627:79;;:::i;:::-;7589:119;7747:1;7772:64;7828:7;7819:6;7808:9;7804:22;7772:64;:::i;:::-;7762:74;;7718:128;7502:351;;;;:::o;7859:180::-;7907:77;7904:1;7897:88;8004:4;8001:1;7994:15;8028:4;8025:1;8018:15;8045:320;8089:6;8126:1;8120:4;8116:12;8106:22;;8173:1;8167:4;8163:12;8194:18;8184:81;;8250:4;8242:6;8238:17;8228:27;;8184:81;8312:2;8304:6;8301:14;8281:18;8278:38;8275:84;;8331:18;;:::i;:::-;8275:84;8096:269;8045:320;;;:::o;8371:180::-;8419:77;8416:1;8409:88;8516:4;8513:1;8506:15;8540:4;8537:1;8530:15;8557:410;8597:7;8620:20;8638:1;8620:20;:::i;:::-;8615:25;;8654:20;8672:1;8654:20;:::i;:::-;8649:25;;8709:1;8706;8702:9;8731:30;8749:11;8731:30;:::i;:::-;8720:41;;8910:1;8901:7;8897:15;8894:1;8891:22;8871:1;8864:9;8844:83;8821:139;;8940:18;;:::i;:::-;8821:139;8605:362;8557:410;;;;:::o;8973:180::-;9021:77;9018:1;9011:88;9118:4;9115:1;9108:15;9142:4;9139:1;9132:15;9159:185;9199:1;9216:20;9234:1;9216:20;:::i;:::-;9211:25;;9250:20;9268:1;9250:20;:::i;:::-;9245:25;;9289:1;9279:35;;9294:18;;:::i;:::-;9279:35;9336:1;9333;9329:9;9324:14;;9159:185;;;;:::o;9350:442::-;9499:4;9537:2;9526:9;9522:18;9514:26;;9550:71;9618:1;9607:9;9603:17;9594:6;9550:71;:::i;:::-;9631:72;9699:2;9688:9;9684:18;9675:6;9631:72;:::i;:::-;9713;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9350:442;;;;;;:::o;9798:116::-;9868:21;9883:5;9868:21;:::i;:::-;9861:5;9858:32;9848:60;;9904:1;9901;9894:12;9848:60;9798:116;:::o;9920:137::-;9974:5;10005:6;9999:13;9990:22;;10021:30;10045:5;10021:30;:::i;:::-;9920:137;;;;:::o;10063:345::-;10130:6;10179:2;10167:9;10158:7;10154:23;10150:32;10147:119;;;10185:79;;:::i;:::-;10147:119;10305:1;10330:61;10383:7;10374:6;10363:9;10359:22;10330:61;:::i;:::-;10320:71;;10276:125;10063:345;;;;:::o;10414:332::-;10535:4;10573:2;10562:9;10558:18;10550:26;;10586:71;10654:1;10643:9;10639:17;10630:6;10586:71;:::i;:::-;10667:72;10735:2;10724:9;10720:18;10711:6;10667:72;:::i;:::-;10414:332;;;;;:::o;10752:::-;10873:4;10911:2;10900:9;10896:18;10888:26;;10924:71;10992:1;10981:9;10977:17;10968:6;10924:71;:::i;:::-;11005:72;11073:2;11062:9;11058:18;11049:6;11005:72;:::i;:::-;10752:332;;;;;:::o;11090:442::-;11239:4;11277:2;11266:9;11262:18;11254:26;;11290:71;11358:1;11347:9;11343:17;11334:6;11290:71;:::i;:::-;11371:72;11439:2;11428:9;11424:18;11415:6;11371:72;:::i;:::-;11453;11521:2;11510:9;11506:18;11497:6;11453:72;:::i;:::-;11090:442;;;;;;:::o;11538:191::-;11578:3;11597:20;11615:1;11597:20;:::i;:::-;11592:25;;11631:20;11649:1;11631:20;:::i;:::-;11626:25;;11674:1;11671;11667:9;11660:16;;11695:3;11692:1;11689:10;11686:36;;;11702:18;;:::i;:::-;11686:36;11538:191;;;;:::o","linkReferences":{},"immutableReferences":{"58886":[{"start":1468,"length":32},{"start":1979,"length":32},{"start":2087,"length":32},{"start":2445,"length":32},{"start":3002,"length":32},{"start":3376,"length":32}],"58888":[{"start":1940,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"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\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC4626 \\\"\\u4ee3\\u5e01\\u5316\\u91d1\\u5e93\\u6807\\u51c6\\\"\\u5408\\u7ea6\\uff0c\\u4ec5\\u4f9b\\u6559\\u5b66\\u4f7f\\u7528\\uff0c\\u4e0d\\u8981\\u7528\\u4e8e\\u751f\\u4ea7\",\"errors\":{\"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.\"}}]},\"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.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"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`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"decimals()\":{\"notice\":\"See {IERC20Metadata-decimals}.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/ERC4626.sol\":\"ERC4626\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/51_ERC4626/ERC4626.sol\":{\"keccak256\":\"0x84306bcb406180829fab9bd3bd39b3e8646cfdf99ed1bda227461e13cafd72a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1df06a1444e04841ed96ca21e7bedb894514b0c32d90d632ffeeb8c5329fc4e5\",\"dweb:/ipfs/QmcQ5bkUhySB97kfPXwcLModRV6NuGdkbW3mJtCFNHdq8F\"]},\"src/51_ERC4626/IERC4626.sol\":{\"keccak256\":\"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec\",\"dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ERC20","name":"asset_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"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":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"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."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"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`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{"decimals()":{"notice":"See {IERC20Metadata-decimals}."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/ERC4626.sol":"ERC4626"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/51_ERC4626/ERC4626.sol":{"keccak256":"0x84306bcb406180829fab9bd3bd39b3e8646cfdf99ed1bda227461e13cafd72a1","urls":["bzz-raw://1df06a1444e04841ed96ca21e7bedb894514b0c32d90d632ffeeb8c5329fc4e5","dweb:/ipfs/QmcQ5bkUhySB97kfPXwcLModRV6NuGdkbW3mJtCFNHdq8F"],"license":"MIT"},"src/51_ERC4626/IERC4626.sol":{"keccak256":"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29","urls":["bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec","dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file diff --git a/out/ERC721.sol/ERC721.json b/out/ERC721.sol/ERC721.json index 183143b1..22579a06 100644 --- a/out/ERC721.sol/ERC721.json +++ b/out/ERC721.sol/ERC721.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516123f13803806123f1833981810160405281019061003191906101a4565b815f908161003f919061043b565b50806001908161004f919061043b565b50505061050a565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100b682610070565b810181811067ffffffffffffffff821117156100d5576100d4610080565b5b80604052505050565b5f6100e7610057565b90506100f382826100ad565b919050565b5f67ffffffffffffffff82111561011257610111610080565b5b61011b82610070565b9050602081019050919050565b8281835e5f83830152505050565b5f610148610143846100f8565b6100de565b9050828152602081018484840111156101645761016361006c565b5b61016f848285610128565b509392505050565b5f82601f83011261018b5761018a610068565b5b815161019b848260208601610136565b91505092915050565b5f5f604083850312156101ba576101b9610060565b5b5f83015167ffffffffffffffff8111156101d7576101d6610064565b5b6101e385828601610177565b925050602083015167ffffffffffffffff81111561020457610203610064565b5b61021085828601610177565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026857607f821691505b60208210810361027b5761027a610224565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a2565b6102e786836102a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032b610326610321846102ff565b610308565b6102ff565b9050919050565b5f819050919050565b61034483610311565b61035861035082610332565b8484546102ae565b825550505050565b5f5f905090565b61036f610360565b61037a81848461033b565b505050565b5f5b828110156103a0576103955f828401610367565b600181019050610381565b505050565b601f8211156103f357828211156103f2576103bf81610281565b6103c883610293565b6103d185610293565b60208610156103de575f90505b8083016103ed8284038261037f565b505050505b5b505050565b5f82821c905092915050565b5f6104135f19846008026103f8565b1980831691505092915050565b5f61042b8383610404565b9150826002028217905092915050565b6104448261021a565b67ffffffffffffffff81111561045d5761045c610080565b5b6104678254610251565b6104728282856103a5565b5f60209050601f8311600181146104a3575f8415610491578287015190505b61049b8582610420565b865550610502565b601f1984166104b186610281565b5f5b828110156104d8578489015182556001820191506020850194506020810190506104b3565b868310156104f557848901516104f1601f891682610404565b8355505b6001600288020188555050505b505050505050565b611eda806105175f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610221578063b88d4fde1461023d578063c87b56dd14610259578063e985e9c514610289576100cd565b80636352211e146101a357806370a08231146101d357806395d89b4114610203576100cd565b806301ffc9a7146100d157806306fdde0314610101578063081812fc1461011f578063095ea7b31461014f57806323b872dd1461016b57806342842e0e14610187575b5f5ffd5b6100eb60048036038101906100e691906113a2565b6102b9565b6040516100f891906113e7565b60405180910390f35b6101096103f2565b6040516101169190611470565b60405180910390f35b610139600480360381019061013491906114c3565b61047d565b604051610146919061152d565b60405180910390f35b61016960048036038101906101649190611570565b610554565b005b610185600480360381019061018091906115ae565b610692565b005b6101a1600480360381019061019c91906115ae565b6106fa565b005b6101bd60048036038101906101b891906114c3565b610719565b6040516101ca919061152d565b60405180910390f35b6101ed60048036038101906101e891906115fe565b6107c0565b6040516101fa9190611638565b60405180910390f35b61020b610874565b6040516102189190611470565b60405180910390f35b61023b6004803603810190610236919061167b565b610900565b005b610257600480360381019061025291906117e5565b6109f8565b005b610273600480360381019061026e91906114c3565b610a62565b6040516102809190611470565b60405180910390f35b6102a3600480360381019061029e9190611865565b610b5c565b6040516102b091906113e7565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103eb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f80546103fe906118d0565b80601f016020809104026020016040519081016040528092919081815260200182805461042a906118d0565b80156104755780601f1061044c57610100808354040283529160200191610475565b820191905f5260205f20905b81548152906001019060200180831161045857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361051c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105139061194a565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610643575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610679906119b2565b60405180910390fd5b61068d818484610bea565b505050565b5f61069c82610719565b90506106a9813384610c99565b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611a1a565b60405180910390fd5b6106f481858585610dc4565b50505050565b61071483838360405180602001604052805f8152506109f8565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b29061194a565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690611a82565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610881906118d0565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad906118d0565b80156108f85780601f106108cf576101008083540402835291602001916108f8565b820191905f5260205f20905b8154815290600101906020018083116108db57829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ec91906113e7565b60405180910390a35050565b5f610a0283610719565b9050610a0f813385610c99565b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590611a1a565b60405180910390fd5b610a5b8186868686611003565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990611aea565b60405180910390fd5b5f610b0b611022565b90505f815111610b295760405180602001604052805f815250610b54565b80610b3384611038565b604051602001610b44929190611b42565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d2f57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610dbb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611baf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611c17565b60405180910390fd5b610eab845f83610bea565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ef89190611c62565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f4c9190611c95565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b61100f85858585610dc4565b61101b84848484611191565b5050505050565b606060405180602001604052805f815250905090565b60605f820361107e576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118c565b5f8290505f5b5f82146110ad57808061109690611cc8565b915050600a826110a69190611d3c565b9150611084565b5f8167ffffffffffffffff8111156110c8576110c76116c1565b5b6040519080825280601f01601f1916602001820160405280156110fa5781602001600182028036833780820191505090505b5090505b5f8514611185576001826111129190611c62565b9150600a856111219190611d6c565b603061112d9190611c95565b60f81b81838151811061114357611142611d9c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117e9190611d3c565b94506110fe565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611336578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016111ef9493929190611e1b565b6020604051808303815f875af192505050801561122a57506040513d601f19601f820116820180604052508101906112279190611e79565b60015b6112ab573d805f8114611258576040519150601f19603f3d011682016040523d82523d5f602084013e61125d565b606091505b505f8151036112a357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161129a919061152d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461133457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161132b919061152d565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113818161134d565b811461138b575f5ffd5b50565b5f8135905061139c81611378565b92915050565b5f602082840312156113b7576113b6611345565b5b5f6113c48482850161138e565b91505092915050565b5f8115159050919050565b6113e1816113cd565b82525050565b5f6020820190506113fa5f8301846113d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61144282611400565b61144c818561140a565b935061145c81856020860161141a565b61146581611428565b840191505092915050565b5f6020820190508181035f8301526114888184611438565b905092915050565b5f819050919050565b6114a281611490565b81146114ac575f5ffd5b50565b5f813590506114bd81611499565b92915050565b5f602082840312156114d8576114d7611345565b5b5f6114e5848285016114af565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611517826114ee565b9050919050565b6115278161150d565b82525050565b5f6020820190506115405f83018461151e565b92915050565b61154f8161150d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5f6040838503121561158657611585611345565b5b5f6115938582860161155c565b92505060206115a4858286016114af565b9150509250929050565b5f5f5f606084860312156115c5576115c4611345565b5b5f6115d28682870161155c565b93505060206115e38682870161155c565b92505060406115f4868287016114af565b9150509250925092565b5f6020828403121561161357611612611345565b5b5f6116208482850161155c565b91505092915050565b61163281611490565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a816113cd565b8114611664575f5ffd5b50565b5f8135905061167581611651565b92915050565b5f5f6040838503121561169157611690611345565b5b5f61169e8582860161155c565b92505060206116af85828601611667565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116f782611428565b810181811067ffffffffffffffff82111715611716576117156116c1565b5b80604052505050565b5f61172861133c565b905061173482826116ee565b919050565b5f67ffffffffffffffff821115611753576117526116c1565b5b61175c82611428565b9050602081019050919050565b828183375f83830152505050565b5f61178961178484611739565b61171f565b9050828152602081018484840111156117a5576117a46116bd565b5b6117b0848285611769565b509392505050565b5f82601f8301126117cc576117cb6116b9565b5b81356117dc848260208601611777565b91505092915050565b5f5f5f5f608085870312156117fd576117fc611345565b5b5f61180a8782880161155c565b945050602061181b8782880161155c565b935050604061182c878288016114af565b925050606085013567ffffffffffffffff81111561184d5761184c611349565b5b611859878288016117b8565b91505092959194509250565b5f5f6040838503121561187b5761187a611345565b5b5f6118888582860161155c565b92505060206118998582860161155c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118e757607f821691505b6020821081036118fa576118f96118a3565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f61193460138361140a565b915061193f82611900565b602082019050919050565b5f6020820190508181035f83015261196181611928565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61199c601e8361140a565b91506119a782611968565b602082019050919050565b5f6020820190508181035f8301526119c981611990565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611a0460168361140a565b9150611a0f826119d0565b602082019050919050565b5f6020820190508181035f830152611a31816119f8565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611a6c60148361140a565b9150611a7782611a38565b602082019050919050565b5f6020820190508181035f830152611a9981611a60565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611ad4600f8361140a565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f81905092915050565b5f611b1c82611400565b611b268185611b08565b9350611b3681856020860161141a565b80840191505092915050565b5f611b4d8285611b12565b9150611b598284611b12565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611b9960098361140a565b9150611ba482611b65565b602082019050919050565b5f6020820190508181035f830152611bc681611b8d565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c01601c8361140a565b9150611c0c82611bcd565b602082019050919050565b5f6020820190508181035f830152611c2e81611bf5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c6c82611490565b9150611c7783611490565b9250828203905081811115611c8f57611c8e611c35565b5b92915050565b5f611c9f82611490565b9150611caa83611490565b9250828201905080821115611cc257611cc1611c35565b5b92915050565b5f611cd282611490565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0457611d03611c35565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611d4682611490565b9150611d5183611490565b925082611d6157611d60611d0f565b5b828204905092915050565b5f611d7682611490565b9150611d8183611490565b925082611d9157611d90611d0f565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f611ded82611dc9565b611df78185611dd3565b9350611e0781856020860161141a565b611e1081611428565b840191505092915050565b5f608082019050611e2e5f83018761151e565b611e3b602083018661151e565b611e486040830185611629565b8181036060830152611e5a8184611de3565b905095945050505050565b5f81519050611e7381611378565b92915050565b5f60208284031215611e8e57611e8d611345565b5b5f611e9b84828501611e65565b9150509291505056fea264697066735822122085a875177837e1062ef40f13dd1a71b90028f375bc56be4c47fb6b2106c05a6164736f6c63430008220033","sourceMap":"205:9256:84:-:0;;;1005:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1078:5;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;205:9256;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;205:9256:84:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610221578063b88d4fde1461023d578063c87b56dd14610259578063e985e9c514610289576100cd565b80636352211e146101a357806370a08231146101d357806395d89b4114610203576100cd565b806301ffc9a7146100d157806306fdde0314610101578063081812fc1461011f578063095ea7b31461014f57806323b872dd1461016b57806342842e0e14610187575b5f5ffd5b6100eb60048036038101906100e691906113a2565b6102b9565b6040516100f891906113e7565b60405180910390f35b6101096103f2565b6040516101169190611470565b60405180910390f35b610139600480360381019061013491906114c3565b61047d565b604051610146919061152d565b60405180910390f35b61016960048036038101906101649190611570565b610554565b005b610185600480360381019061018091906115ae565b610692565b005b6101a1600480360381019061019c91906115ae565b6106fa565b005b6101bd60048036038101906101b891906114c3565b610719565b6040516101ca919061152d565b60405180910390f35b6101ed60048036038101906101e891906115fe565b6107c0565b6040516101fa9190611638565b60405180910390f35b61020b610874565b6040516102189190611470565b60405180910390f35b61023b6004803603810190610236919061167b565b610900565b005b610257600480360381019061025291906117e5565b6109f8565b005b610273600480360381019061026e91906114c3565b610a62565b6040516102809190611470565b60405180910390f35b6102a3600480360381019061029e9190611865565b610b5c565b6040516102b091906113e7565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103eb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f80546103fe906118d0565b80601f016020809104026020016040519081016040528092919081815260200182805461042a906118d0565b80156104755780601f1061044c57610100808354040283529160200191610475565b820191905f5260205f20905b81548152906001019060200180831161045857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361051c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105139061194a565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610643575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610679906119b2565b60405180910390fd5b61068d818484610bea565b505050565b5f61069c82610719565b90506106a9813384610c99565b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611a1a565b60405180910390fd5b6106f481858585610dc4565b50505050565b61071483838360405180602001604052805f8152506109f8565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b29061194a565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690611a82565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610881906118d0565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad906118d0565b80156108f85780601f106108cf576101008083540402835291602001916108f8565b820191905f5260205f20905b8154815290600101906020018083116108db57829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ec91906113e7565b60405180910390a35050565b5f610a0283610719565b9050610a0f813385610c99565b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590611a1a565b60405180910390fd5b610a5b8186868686611003565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990611aea565b60405180910390fd5b5f610b0b611022565b90505f815111610b295760405180602001604052805f815250610b54565b80610b3384611038565b604051602001610b44929190611b42565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d2f57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610dbb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611baf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611c17565b60405180910390fd5b610eab845f83610bea565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ef89190611c62565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f4c9190611c95565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b61100f85858585610dc4565b61101b84848484611191565b5050505050565b606060405180602001604052805f815250905090565b60605f820361107e576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118c565b5f8290505f5b5f82146110ad57808061109690611cc8565b915050600a826110a69190611d3c565b9150611084565b5f8167ffffffffffffffff8111156110c8576110c76116c1565b5b6040519080825280601f01601f1916602001820160405280156110fa5781602001600182028036833780820191505090505b5090505b5f8514611185576001826111129190611c62565b9150600a856111219190611d6c565b603061112d9190611c95565b60f81b81838151811061114357611142611d9c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117e9190611d3c565b94506110fe565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611336578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016111ef9493929190611e1b565b6020604051808303815f875af192505050801561122a57506040513d601f19601f820116820180604052508101906112279190611e79565b60015b6112ab573d805f8114611258576040519150601f19603f3d011682016040523d82523d5f602084013e61125d565b606091505b505f8151036112a357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161129a919061152d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461133457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161132b919061152d565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113818161134d565b811461138b575f5ffd5b50565b5f8135905061139c81611378565b92915050565b5f602082840312156113b7576113b6611345565b5b5f6113c48482850161138e565b91505092915050565b5f8115159050919050565b6113e1816113cd565b82525050565b5f6020820190506113fa5f8301846113d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61144282611400565b61144c818561140a565b935061145c81856020860161141a565b61146581611428565b840191505092915050565b5f6020820190508181035f8301526114888184611438565b905092915050565b5f819050919050565b6114a281611490565b81146114ac575f5ffd5b50565b5f813590506114bd81611499565b92915050565b5f602082840312156114d8576114d7611345565b5b5f6114e5848285016114af565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611517826114ee565b9050919050565b6115278161150d565b82525050565b5f6020820190506115405f83018461151e565b92915050565b61154f8161150d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5f6040838503121561158657611585611345565b5b5f6115938582860161155c565b92505060206115a4858286016114af565b9150509250929050565b5f5f5f606084860312156115c5576115c4611345565b5b5f6115d28682870161155c565b93505060206115e38682870161155c565b92505060406115f4868287016114af565b9150509250925092565b5f6020828403121561161357611612611345565b5b5f6116208482850161155c565b91505092915050565b61163281611490565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a816113cd565b8114611664575f5ffd5b50565b5f8135905061167581611651565b92915050565b5f5f6040838503121561169157611690611345565b5b5f61169e8582860161155c565b92505060206116af85828601611667565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116f782611428565b810181811067ffffffffffffffff82111715611716576117156116c1565b5b80604052505050565b5f61172861133c565b905061173482826116ee565b919050565b5f67ffffffffffffffff821115611753576117526116c1565b5b61175c82611428565b9050602081019050919050565b828183375f83830152505050565b5f61178961178484611739565b61171f565b9050828152602081018484840111156117a5576117a46116bd565b5b6117b0848285611769565b509392505050565b5f82601f8301126117cc576117cb6116b9565b5b81356117dc848260208601611777565b91505092915050565b5f5f5f5f608085870312156117fd576117fc611345565b5b5f61180a8782880161155c565b945050602061181b8782880161155c565b935050604061182c878288016114af565b925050606085013567ffffffffffffffff81111561184d5761184c611349565b5b611859878288016117b8565b91505092959194509250565b5f5f6040838503121561187b5761187a611345565b5b5f6118888582860161155c565b92505060206118998582860161155c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118e757607f821691505b6020821081036118fa576118f96118a3565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f61193460138361140a565b915061193f82611900565b602082019050919050565b5f6020820190508181035f83015261196181611928565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61199c601e8361140a565b91506119a782611968565b602082019050919050565b5f6020820190508181035f8301526119c981611990565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611a0460168361140a565b9150611a0f826119d0565b602082019050919050565b5f6020820190508181035f830152611a31816119f8565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611a6c60148361140a565b9150611a7782611a38565b602082019050919050565b5f6020820190508181035f830152611a9981611a60565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611ad4600f8361140a565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f81905092915050565b5f611b1c82611400565b611b268185611b08565b9350611b3681856020860161141a565b80840191505092915050565b5f611b4d8285611b12565b9150611b598284611b12565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611b9960098361140a565b9150611ba482611b65565b602082019050919050565b5f6020820190508181035f830152611bc681611b8d565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c01601c8361140a565b9150611c0c82611bcd565b602082019050919050565b5f6020820190508181035f830152611c2e81611bf5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c6c82611490565b9150611c7783611490565b9250828203905081811115611c8f57611c8e611c35565b5b92915050565b5f611c9f82611490565b9150611caa83611490565b9250828201905080821115611cc257611cc1611c35565b5b92915050565b5f611cd282611490565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0457611d03611c35565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611d4682611490565b9150611d5183611490565b925082611d6157611d60611d0f565b5b828204905092915050565b5f611d7682611490565b9150611d8183611490565b925082611d9157611d90611d0f565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f611ded82611dc9565b611df78185611dd3565b9350611e0781856020860161141a565b611e1081611428565b840191505092915050565b5f608082019050611e2e5f83018761151e565b611e3b602083018661151e565b611e486040830185611629565b8181036060830152611e5a8184611de3565b905095945050505050565b5f81519050611e7381611378565b92915050565b5f60208284031215611e8e57611e8d611345565b5b5f611e9b84828501611e65565b9150509291505056fea264697066735822122085a875177837e1062ef40f13dd1a71b90028f375bc56be4c47fb6b2106c05a6164736f6c63430008220033","sourceMap":"205:9256:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:165::-;14921:17;14917:1;14909:6;14905:14;14898:41;14781:165;:::o;14952:366::-;15094:3;15115:67;15179:2;15174:3;15115:67;:::i;:::-;15108:74;;15191:93;15280:3;15191:93;:::i;:::-;15309:2;15304:3;15300:12;15293:19;;14952:366;;;:::o;15324:419::-;15490:4;15528:2;15517:9;15513:18;15505:26;;15577:9;15571:4;15567:20;15563:1;15552:9;15548:17;15541:47;15605:131;15731:4;15605:131;:::i;:::-;15597:139;;15324:419;;;:::o;15749:148::-;15851:11;15888:3;15873:18;;15749:148;;;;:::o;15903:390::-;16009:3;16037:39;16070:5;16037:39;:::i;:::-;16092:89;16174:6;16169:3;16092:89;:::i;:::-;16085:96;;16190:65;16248:6;16243:3;16236:4;16229:5;16225:16;16190:65;:::i;:::-;16280:6;16275:3;16271:16;16264:23;;16013:280;15903:390;;;;:::o;16299:435::-;16479:3;16501:95;16592:3;16583:6;16501:95;:::i;:::-;16494:102;;16613:95;16704:3;16695:6;16613:95;:::i;:::-;16606:102;;16725:3;16718:10;;16299:435;;;;;:::o;16740:159::-;16880:11;16876:1;16868:6;16864:14;16857:35;16740:159;:::o;16905:365::-;17047:3;17068:66;17132:1;17127:3;17068:66;:::i;:::-;17061:73;;17143:93;17232:3;17143:93;:::i;:::-;17261:2;17256:3;17252:12;17245:19;;16905:365;;;:::o;17276:419::-;17442:4;17480:2;17469:9;17465:18;17457:26;;17529:9;17523:4;17519:20;17515:1;17504:9;17500:17;17493:47;17557:131;17683:4;17557:131;:::i;:::-;17549:139;;17276:419;;;:::o;17701:178::-;17841:30;17837:1;17829:6;17825:14;17818:54;17701:178;:::o;17885:366::-;18027:3;18048:67;18112:2;18107:3;18048:67;:::i;:::-;18041:74;;18124:93;18213:3;18124:93;:::i;:::-;18242:2;18237:3;18233:12;18226:19;;17885:366;;;:::o;18257:419::-;18423:4;18461:2;18450:9;18446:18;18438:26;;18510:9;18504:4;18500:20;18496:1;18485:9;18481:17;18474:47;18538:131;18664:4;18538:131;:::i;:::-;18530:139;;18257:419;;;:::o;18682:180::-;18730:77;18727:1;18720:88;18827:4;18824:1;18817:15;18851:4;18848:1;18841:15;18868:194;18908:4;18928:20;18946:1;18928:20;:::i;:::-;18923:25;;18962:20;18980:1;18962:20;:::i;:::-;18957:25;;19006:1;19003;18999:9;18991:17;;19030:1;19024:4;19021:11;19018:37;;;19035:18;;:::i;:::-;19018:37;18868:194;;;;:::o;19068:191::-;19108:3;19127:20;19145:1;19127:20;:::i;:::-;19122:25;;19161:20;19179:1;19161:20;:::i;:::-;19156:25;;19204:1;19201;19197:9;19190:16;;19225:3;19222:1;19219:10;19216:36;;;19232:18;;:::i;:::-;19216:36;19068:191;;;;:::o;19265:233::-;19304:3;19327:24;19345:5;19327:24;:::i;:::-;19318:33;;19373:66;19366:5;19363:77;19360:103;;19443:18;;:::i;:::-;19360:103;19490:1;19483:5;19479:13;19472:20;;19265:233;;;:::o;19504:180::-;19552:77;19549:1;19542:88;19649:4;19646:1;19639:15;19673:4;19670:1;19663:15;19690:185;19730:1;19747:20;19765:1;19747:20;:::i;:::-;19742:25;;19781:20;19799:1;19781:20;:::i;:::-;19776:25;;19820:1;19810:35;;19825:18;;:::i;:::-;19810:35;19867:1;19864;19860:9;19855:14;;19690:185;;;;:::o;19881:176::-;19913:1;19930:20;19948:1;19930:20;:::i;:::-;19925:25;;19964:20;19982:1;19964:20;:::i;:::-;19959:25;;20003:1;19993:35;;20008:18;;:::i;:::-;19993:35;20049:1;20046;20042:9;20037:14;;19881:176;;;;:::o;20063:180::-;20111:77;20108:1;20101:88;20208:4;20205:1;20198:15;20232:4;20229:1;20222:15;20249:98;20300:6;20334:5;20328:12;20318:22;;20249:98;;;:::o;20353:168::-;20436:11;20470:6;20465:3;20458:19;20510:4;20505:3;20501:14;20486:29;;20353:168;;;;:::o;20527:373::-;20613:3;20641:38;20673:5;20641:38;:::i;:::-;20695:70;20758:6;20753:3;20695:70;:::i;:::-;20688:77;;20774:65;20832:6;20827:3;20820:4;20813:5;20809:16;20774:65;:::i;:::-;20864:29;20886:6;20864:29;:::i;:::-;20859:3;20855:39;20848:46;;20617:283;20527:373;;;;:::o;20906:640::-;21101:4;21139:3;21128:9;21124:19;21116:27;;21153:71;21221:1;21210:9;21206:17;21197:6;21153:71;:::i;:::-;21234:72;21302:2;21291:9;21287:18;21278:6;21234:72;:::i;:::-;21316;21384:2;21373:9;21369:18;21360:6;21316:72;:::i;:::-;21435:9;21429:4;21425:20;21420:2;21409:9;21405:18;21398:48;21463:76;21534:4;21525:6;21463:76;:::i;:::-;21455:84;;20906:640;;;;;;;:::o;21552:141::-;21608:5;21639:6;21633:13;21624:22;;21655:32;21681:5;21655:32;:::i;:::-;21552:141;;;;:::o;21699:349::-;21768:6;21817:2;21805:9;21796:7;21792:23;21788:32;21785:119;;;21823:79;;:::i;:::-;21785:119;21943:1;21968:63;22023:7;22014:6;22003:9;21999:22;21968:63;:::i;:::-;21958:73;;21914:127;21699:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316`name` \\u548c`symbol` .\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"构造函数,初始化`name` 和`symbol` ."},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/ERC721.sol":"ERC721"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516123f13803806123f1833981810160405281019061003191906101a4565b815f908161003f919061043b565b50806001908161004f919061043b565b50505061050a565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100b682610070565b810181811067ffffffffffffffff821117156100d5576100d4610080565b5b80604052505050565b5f6100e7610057565b90506100f382826100ad565b919050565b5f67ffffffffffffffff82111561011257610111610080565b5b61011b82610070565b9050602081019050919050565b8281835e5f83830152505050565b5f610148610143846100f8565b6100de565b9050828152602081018484840111156101645761016361006c565b5b61016f848285610128565b509392505050565b5f82601f83011261018b5761018a610068565b5b815161019b848260208601610136565b91505092915050565b5f5f604083850312156101ba576101b9610060565b5b5f83015167ffffffffffffffff8111156101d7576101d6610064565b5b6101e385828601610177565b925050602083015167ffffffffffffffff81111561020457610203610064565b5b61021085828601610177565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026857607f821691505b60208210810361027b5761027a610224565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a2565b6102e786836102a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61032b610326610321846102ff565b610308565b6102ff565b9050919050565b5f819050919050565b61034483610311565b61035861035082610332565b8484546102ae565b825550505050565b5f5f905090565b61036f610360565b61037a81848461033b565b505050565b5f5b828110156103a0576103955f828401610367565b600181019050610381565b505050565b601f8211156103f357828211156103f2576103bf81610281565b6103c883610293565b6103d185610293565b60208610156103de575f90505b8083016103ed8284038261037f565b505050505b5b505050565b5f82821c905092915050565b5f6104135f19846008026103f8565b1980831691505092915050565b5f61042b8383610404565b9150826002028217905092915050565b6104448261021a565b67ffffffffffffffff81111561045d5761045c610080565b5b6104678254610251565b6104728282856103a5565b5f60209050601f8311600181146104a3575f8415610491578287015190505b61049b8582610420565b865550610502565b601f1984166104b186610281565b5f5b828110156104d8578489015182556001820191506020850194506020810190506104b3565b868310156104f557848901516104f1601f891682610404565b8355505b6001600288020188555050505b505050505050565b611eda806105175f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610221578063b88d4fde1461023d578063c87b56dd14610259578063e985e9c514610289576100cd565b80636352211e146101a357806370a08231146101d357806395d89b4114610203576100cd565b806301ffc9a7146100d157806306fdde0314610101578063081812fc1461011f578063095ea7b31461014f57806323b872dd1461016b57806342842e0e14610187575b5f5ffd5b6100eb60048036038101906100e691906113a2565b6102b9565b6040516100f891906113e7565b60405180910390f35b6101096103f2565b6040516101169190611470565b60405180910390f35b610139600480360381019061013491906114c3565b61047d565b604051610146919061152d565b60405180910390f35b61016960048036038101906101649190611570565b610554565b005b610185600480360381019061018091906115ae565b610692565b005b6101a1600480360381019061019c91906115ae565b6106fa565b005b6101bd60048036038101906101b891906114c3565b610719565b6040516101ca919061152d565b60405180910390f35b6101ed60048036038101906101e891906115fe565b6107c0565b6040516101fa9190611638565b60405180910390f35b61020b610874565b6040516102189190611470565b60405180910390f35b61023b6004803603810190610236919061167b565b610900565b005b610257600480360381019061025291906117e5565b6109f8565b005b610273600480360381019061026e91906114c3565b610a62565b6040516102809190611470565b60405180910390f35b6102a3600480360381019061029e9190611865565b610b5c565b6040516102b091906113e7565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103eb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f80546103fe906118d0565b80601f016020809104026020016040519081016040528092919081815260200182805461042a906118d0565b80156104755780601f1061044c57610100808354040283529160200191610475565b820191905f5260205f20905b81548152906001019060200180831161045857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361051c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105139061194a565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610643575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610679906119b2565b60405180910390fd5b61068d818484610bea565b505050565b5f61069c82610719565b90506106a9813384610c99565b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611a1a565b60405180910390fd5b6106f481858585610dc4565b50505050565b61071483838360405180602001604052805f8152506109f8565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b29061194a565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690611a82565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610881906118d0565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad906118d0565b80156108f85780601f106108cf576101008083540402835291602001916108f8565b820191905f5260205f20905b8154815290600101906020018083116108db57829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ec91906113e7565b60405180910390a35050565b5f610a0283610719565b9050610a0f813385610c99565b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590611a1a565b60405180910390fd5b610a5b8186868686611003565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990611aea565b60405180910390fd5b5f610b0b611022565b90505f815111610b295760405180602001604052805f815250610b54565b80610b3384611038565b604051602001610b44929190611b42565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d2f57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610dbb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611baf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611c17565b60405180910390fd5b610eab845f83610bea565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ef89190611c62565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f4c9190611c95565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b61100f85858585610dc4565b61101b84848484611191565b5050505050565b606060405180602001604052805f815250905090565b60605f820361107e576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118c565b5f8290505f5b5f82146110ad57808061109690611cc8565b915050600a826110a69190611d3c565b9150611084565b5f8167ffffffffffffffff8111156110c8576110c76116c1565b5b6040519080825280601f01601f1916602001820160405280156110fa5781602001600182028036833780820191505090505b5090505b5f8514611185576001826111129190611c62565b9150600a856111219190611d6c565b603061112d9190611c95565b60f81b81838151811061114357611142611d9c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117e9190611d3c565b94506110fe565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611336578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016111ef9493929190611e1b565b6020604051808303815f875af192505050801561122a57506040513d601f19601f820116820180604052508101906112279190611e79565b60015b6112ab573d805f8114611258576040519150601f19603f3d011682016040523d82523d5f602084013e61125d565b606091505b505f8151036112a357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161129a919061152d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461133457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161132b919061152d565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113818161134d565b811461138b575f5ffd5b50565b5f8135905061139c81611378565b92915050565b5f602082840312156113b7576113b6611345565b5b5f6113c48482850161138e565b91505092915050565b5f8115159050919050565b6113e1816113cd565b82525050565b5f6020820190506113fa5f8301846113d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61144282611400565b61144c818561140a565b935061145c81856020860161141a565b61146581611428565b840191505092915050565b5f6020820190508181035f8301526114888184611438565b905092915050565b5f819050919050565b6114a281611490565b81146114ac575f5ffd5b50565b5f813590506114bd81611499565b92915050565b5f602082840312156114d8576114d7611345565b5b5f6114e5848285016114af565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611517826114ee565b9050919050565b6115278161150d565b82525050565b5f6020820190506115405f83018461151e565b92915050565b61154f8161150d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5f6040838503121561158657611585611345565b5b5f6115938582860161155c565b92505060206115a4858286016114af565b9150509250929050565b5f5f5f606084860312156115c5576115c4611345565b5b5f6115d28682870161155c565b93505060206115e38682870161155c565b92505060406115f4868287016114af565b9150509250925092565b5f6020828403121561161357611612611345565b5b5f6116208482850161155c565b91505092915050565b61163281611490565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a816113cd565b8114611664575f5ffd5b50565b5f8135905061167581611651565b92915050565b5f5f6040838503121561169157611690611345565b5b5f61169e8582860161155c565b92505060206116af85828601611667565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116f782611428565b810181811067ffffffffffffffff82111715611716576117156116c1565b5b80604052505050565b5f61172861133c565b905061173482826116ee565b919050565b5f67ffffffffffffffff821115611753576117526116c1565b5b61175c82611428565b9050602081019050919050565b828183375f83830152505050565b5f61178961178484611739565b61171f565b9050828152602081018484840111156117a5576117a46116bd565b5b6117b0848285611769565b509392505050565b5f82601f8301126117cc576117cb6116b9565b5b81356117dc848260208601611777565b91505092915050565b5f5f5f5f608085870312156117fd576117fc611345565b5b5f61180a8782880161155c565b945050602061181b8782880161155c565b935050604061182c878288016114af565b925050606085013567ffffffffffffffff81111561184d5761184c611349565b5b611859878288016117b8565b91505092959194509250565b5f5f6040838503121561187b5761187a611345565b5b5f6118888582860161155c565b92505060206118998582860161155c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118e757607f821691505b6020821081036118fa576118f96118a3565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f61193460138361140a565b915061193f82611900565b602082019050919050565b5f6020820190508181035f83015261196181611928565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61199c601e8361140a565b91506119a782611968565b602082019050919050565b5f6020820190508181035f8301526119c981611990565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611a0460168361140a565b9150611a0f826119d0565b602082019050919050565b5f6020820190508181035f830152611a31816119f8565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611a6c60148361140a565b9150611a7782611a38565b602082019050919050565b5f6020820190508181035f830152611a9981611a60565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611ad4600f8361140a565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f81905092915050565b5f611b1c82611400565b611b268185611b08565b9350611b3681856020860161141a565b80840191505092915050565b5f611b4d8285611b12565b9150611b598284611b12565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611b9960098361140a565b9150611ba482611b65565b602082019050919050565b5f6020820190508181035f830152611bc681611b8d565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c01601c8361140a565b9150611c0c82611bcd565b602082019050919050565b5f6020820190508181035f830152611c2e81611bf5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c6c82611490565b9150611c7783611490565b9250828203905081811115611c8f57611c8e611c35565b5b92915050565b5f611c9f82611490565b9150611caa83611490565b9250828201905080821115611cc257611cc1611c35565b5b92915050565b5f611cd282611490565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0457611d03611c35565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611d4682611490565b9150611d5183611490565b925082611d6157611d60611d0f565b5b828204905092915050565b5f611d7682611490565b9150611d8183611490565b925082611d9157611d90611d0f565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f611ded82611dc9565b611df78185611dd3565b9350611e0781856020860161141a565b611e1081611428565b840191505092915050565b5f608082019050611e2e5f83018761151e565b611e3b602083018661151e565b611e486040830185611629565b8181036060830152611e5a8184611de3565b905095945050505050565b5f81519050611e7381611378565b92915050565b5f60208284031215611e8e57611e8d611345565b5b5f611e9b84828501611e65565b9150509291505056fea264697066735822122085a875177837e1062ef40f13dd1a71b90028f375bc56be4c47fb6b2106c05a6164736f6c63430008220033","sourceMap":"205:9256:78:-:0;;;1005:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1078:5;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;205:9256;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;205:9256:78:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610221578063b88d4fde1461023d578063c87b56dd14610259578063e985e9c514610289576100cd565b80636352211e146101a357806370a08231146101d357806395d89b4114610203576100cd565b806301ffc9a7146100d157806306fdde0314610101578063081812fc1461011f578063095ea7b31461014f57806323b872dd1461016b57806342842e0e14610187575b5f5ffd5b6100eb60048036038101906100e691906113a2565b6102b9565b6040516100f891906113e7565b60405180910390f35b6101096103f2565b6040516101169190611470565b60405180910390f35b610139600480360381019061013491906114c3565b61047d565b604051610146919061152d565b60405180910390f35b61016960048036038101906101649190611570565b610554565b005b610185600480360381019061018091906115ae565b610692565b005b6101a1600480360381019061019c91906115ae565b6106fa565b005b6101bd60048036038101906101b891906114c3565b610719565b6040516101ca919061152d565b60405180910390f35b6101ed60048036038101906101e891906115fe565b6107c0565b6040516101fa9190611638565b60405180910390f35b61020b610874565b6040516102189190611470565b60405180910390f35b61023b6004803603810190610236919061167b565b610900565b005b610257600480360381019061025291906117e5565b6109f8565b005b610273600480360381019061026e91906114c3565b610a62565b6040516102809190611470565b60405180910390f35b6102a3600480360381019061029e9190611865565b610b5c565b6040516102b091906113e7565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103eb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f80546103fe906118d0565b80601f016020809104026020016040519081016040528092919081815260200182805461042a906118d0565b80156104755780601f1061044c57610100808354040283529160200191610475565b820191905f5260205f20905b81548152906001019060200180831161045857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361051c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105139061194a565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610643575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610679906119b2565b60405180910390fd5b61068d818484610bea565b505050565b5f61069c82610719565b90506106a9813384610c99565b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90611a1a565b60405180910390fd5b6106f481858585610dc4565b50505050565b61071483838360405180602001604052805f8152506109f8565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b29061194a565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690611a82565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610881906118d0565b80601f01602080910402602001604051908101604052809291908181526020018280546108ad906118d0565b80156108f85780601f106108cf576101008083540402835291602001916108f8565b820191905f5260205f20905b8154815290600101906020018083116108db57829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109ec91906113e7565b60405180910390a35050565b5f610a0283610719565b9050610a0f813385610c99565b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590611a1a565b60405180910390fd5b610a5b8186868686611003565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990611aea565b60405180910390fd5b5f610b0b611022565b90505f815111610b295760405180602001604052805f815250610b54565b80610b3384611038565b604051602001610b44929190611b42565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d2f57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610dbb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611baf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611c17565b60405180910390fd5b610eab845f83610bea565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ef89190611c62565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f4c9190611c95565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b61100f85858585610dc4565b61101b84848484611191565b5050505050565b606060405180602001604052805f815250905090565b60605f820361107e576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061118c565b5f8290505f5b5f82146110ad57808061109690611cc8565b915050600a826110a69190611d3c565b9150611084565b5f8167ffffffffffffffff8111156110c8576110c76116c1565b5b6040519080825280601f01601f1916602001820160405280156110fa5781602001600182028036833780820191505090505b5090505b5f8514611185576001826111129190611c62565b9150600a856111219190611d6c565b603061112d9190611c95565b60f81b81838151811061114357611142611d9c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561117e9190611d3c565b94506110fe565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611336578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016111ef9493929190611e1b565b6020604051808303815f875af192505050801561122a57506040513d601f19601f820116820180604052508101906112279190611e79565b60015b6112ab573d805f8114611258576040519150601f19603f3d011682016040523d82523d5f602084013e61125d565b606091505b505f8151036112a357836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161129a919061152d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461133457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161132b919061152d565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6113818161134d565b811461138b575f5ffd5b50565b5f8135905061139c81611378565b92915050565b5f602082840312156113b7576113b6611345565b5b5f6113c48482850161138e565b91505092915050565b5f8115159050919050565b6113e1816113cd565b82525050565b5f6020820190506113fa5f8301846113d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61144282611400565b61144c818561140a565b935061145c81856020860161141a565b61146581611428565b840191505092915050565b5f6020820190508181035f8301526114888184611438565b905092915050565b5f819050919050565b6114a281611490565b81146114ac575f5ffd5b50565b5f813590506114bd81611499565b92915050565b5f602082840312156114d8576114d7611345565b5b5f6114e5848285016114af565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611517826114ee565b9050919050565b6115278161150d565b82525050565b5f6020820190506115405f83018461151e565b92915050565b61154f8161150d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5f6040838503121561158657611585611345565b5b5f6115938582860161155c565b92505060206115a4858286016114af565b9150509250929050565b5f5f5f606084860312156115c5576115c4611345565b5b5f6115d28682870161155c565b93505060206115e38682870161155c565b92505060406115f4868287016114af565b9150509250925092565b5f6020828403121561161357611612611345565b5b5f6116208482850161155c565b91505092915050565b61163281611490565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a816113cd565b8114611664575f5ffd5b50565b5f8135905061167581611651565b92915050565b5f5f6040838503121561169157611690611345565b5b5f61169e8582860161155c565b92505060206116af85828601611667565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116f782611428565b810181811067ffffffffffffffff82111715611716576117156116c1565b5b80604052505050565b5f61172861133c565b905061173482826116ee565b919050565b5f67ffffffffffffffff821115611753576117526116c1565b5b61175c82611428565b9050602081019050919050565b828183375f83830152505050565b5f61178961178484611739565b61171f565b9050828152602081018484840111156117a5576117a46116bd565b5b6117b0848285611769565b509392505050565b5f82601f8301126117cc576117cb6116b9565b5b81356117dc848260208601611777565b91505092915050565b5f5f5f5f608085870312156117fd576117fc611345565b5b5f61180a8782880161155c565b945050602061181b8782880161155c565b935050604061182c878288016114af565b925050606085013567ffffffffffffffff81111561184d5761184c611349565b5b611859878288016117b8565b91505092959194509250565b5f5f6040838503121561187b5761187a611345565b5b5f6118888582860161155c565b92505060206118998582860161155c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118e757607f821691505b6020821081036118fa576118f96118a3565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f61193460138361140a565b915061193f82611900565b602082019050919050565b5f6020820190508181035f83015261196181611928565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61199c601e8361140a565b91506119a782611968565b602082019050919050565b5f6020820190508181035f8301526119c981611990565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611a0460168361140a565b9150611a0f826119d0565b602082019050919050565b5f6020820190508181035f830152611a31816119f8565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611a6c60148361140a565b9150611a7782611a38565b602082019050919050565b5f6020820190508181035f830152611a9981611a60565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611ad4600f8361140a565b9150611adf82611aa0565b602082019050919050565b5f6020820190508181035f830152611b0181611ac8565b9050919050565b5f81905092915050565b5f611b1c82611400565b611b268185611b08565b9350611b3681856020860161141a565b80840191505092915050565b5f611b4d8285611b12565b9150611b598284611b12565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611b9960098361140a565b9150611ba482611b65565b602082019050919050565b5f6020820190508181035f830152611bc681611b8d565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611c01601c8361140a565b9150611c0c82611bcd565b602082019050919050565b5f6020820190508181035f830152611c2e81611bf5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c6c82611490565b9150611c7783611490565b9250828203905081811115611c8f57611c8e611c35565b5b92915050565b5f611c9f82611490565b9150611caa83611490565b9250828201905080821115611cc257611cc1611c35565b5b92915050565b5f611cd282611490565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0457611d03611c35565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611d4682611490565b9150611d5183611490565b925082611d6157611d60611d0f565b5b828204905092915050565b5f611d7682611490565b9150611d8183611490565b925082611d9157611d90611d0f565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f611ded82611dc9565b611df78185611dd3565b9350611e0781856020860161141a565b611e1081611428565b840191505092915050565b5f608082019050611e2e5f83018761151e565b611e3b602083018661151e565b611e486040830185611629565b8181036060830152611e5a8184611de3565b905095945050505050565b5f81519050611e7381611378565b92915050565b5f60208284031215611e8e57611e8d611345565b5b5f611e9b84828501611e65565b9150509291505056fea264697066735822122085a875177837e1062ef40f13dd1a71b90028f375bc56be4c47fb6b2106c05a6164736f6c63430008220033","sourceMap":"205:9256:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:165::-;14921:17;14917:1;14909:6;14905:14;14898:41;14781:165;:::o;14952:366::-;15094:3;15115:67;15179:2;15174:3;15115:67;:::i;:::-;15108:74;;15191:93;15280:3;15191:93;:::i;:::-;15309:2;15304:3;15300:12;15293:19;;14952:366;;;:::o;15324:419::-;15490:4;15528:2;15517:9;15513:18;15505:26;;15577:9;15571:4;15567:20;15563:1;15552:9;15548:17;15541:47;15605:131;15731:4;15605:131;:::i;:::-;15597:139;;15324:419;;;:::o;15749:148::-;15851:11;15888:3;15873:18;;15749:148;;;;:::o;15903:390::-;16009:3;16037:39;16070:5;16037:39;:::i;:::-;16092:89;16174:6;16169:3;16092:89;:::i;:::-;16085:96;;16190:65;16248:6;16243:3;16236:4;16229:5;16225:16;16190:65;:::i;:::-;16280:6;16275:3;16271:16;16264:23;;16013:280;15903:390;;;;:::o;16299:435::-;16479:3;16501:95;16592:3;16583:6;16501:95;:::i;:::-;16494:102;;16613:95;16704:3;16695:6;16613:95;:::i;:::-;16606:102;;16725:3;16718:10;;16299:435;;;;;:::o;16740:159::-;16880:11;16876:1;16868:6;16864:14;16857:35;16740:159;:::o;16905:365::-;17047:3;17068:66;17132:1;17127:3;17068:66;:::i;:::-;17061:73;;17143:93;17232:3;17143:93;:::i;:::-;17261:2;17256:3;17252:12;17245:19;;16905:365;;;:::o;17276:419::-;17442:4;17480:2;17469:9;17465:18;17457:26;;17529:9;17523:4;17519:20;17515:1;17504:9;17500:17;17493:47;17557:131;17683:4;17557:131;:::i;:::-;17549:139;;17276:419;;;:::o;17701:178::-;17841:30;17837:1;17829:6;17825:14;17818:54;17701:178;:::o;17885:366::-;18027:3;18048:67;18112:2;18107:3;18048:67;:::i;:::-;18041:74;;18124:93;18213:3;18124:93;:::i;:::-;18242:2;18237:3;18233:12;18226:19;;17885:366;;;:::o;18257:419::-;18423:4;18461:2;18450:9;18446:18;18438:26;;18510:9;18504:4;18500:20;18496:1;18485:9;18481:17;18474:47;18538:131;18664:4;18538:131;:::i;:::-;18530:139;;18257:419;;;:::o;18682:180::-;18730:77;18727:1;18720:88;18827:4;18824:1;18817:15;18851:4;18848:1;18841:15;18868:194;18908:4;18928:20;18946:1;18928:20;:::i;:::-;18923:25;;18962:20;18980:1;18962:20;:::i;:::-;18957:25;;19006:1;19003;18999:9;18991:17;;19030:1;19024:4;19021:11;19018:37;;;19035:18;;:::i;:::-;19018:37;18868:194;;;;:::o;19068:191::-;19108:3;19127:20;19145:1;19127:20;:::i;:::-;19122:25;;19161:20;19179:1;19161:20;:::i;:::-;19156:25;;19204:1;19201;19197:9;19190:16;;19225:3;19222:1;19219:10;19216:36;;;19232:18;;:::i;:::-;19216:36;19068:191;;;;:::o;19265:233::-;19304:3;19327:24;19345:5;19327:24;:::i;:::-;19318:33;;19373:66;19366:5;19363:77;19360:103;;19443:18;;:::i;:::-;19360:103;19490:1;19483:5;19479:13;19472:20;;19265:233;;;:::o;19504:180::-;19552:77;19549:1;19542:88;19649:4;19646:1;19639:15;19673:4;19670:1;19663:15;19690:185;19730:1;19747:20;19765:1;19747:20;:::i;:::-;19742:25;;19781:20;19799:1;19781:20;:::i;:::-;19776:25;;19820:1;19810:35;;19825:18;;:::i;:::-;19810:35;19867:1;19864;19860:9;19855:14;;19690:185;;;;:::o;19881:176::-;19913:1;19930:20;19948:1;19930:20;:::i;:::-;19925:25;;19964:20;19982:1;19964:20;:::i;:::-;19959:25;;20003:1;19993:35;;20008:18;;:::i;:::-;19993:35;20049:1;20046;20042:9;20037:14;;19881:176;;;;:::o;20063:180::-;20111:77;20108:1;20101:88;20208:4;20205:1;20198:15;20232:4;20229:1;20222:15;20249:98;20300:6;20334:5;20328:12;20318:22;;20249:98;;;:::o;20353:168::-;20436:11;20470:6;20465:3;20458:19;20510:4;20505:3;20501:14;20486:29;;20353:168;;;;:::o;20527:373::-;20613:3;20641:38;20673:5;20641:38;:::i;:::-;20695:70;20758:6;20753:3;20695:70;:::i;:::-;20688:77;;20774:65;20832:6;20827:3;20820:4;20813:5;20809:16;20774:65;:::i;:::-;20864:29;20886:6;20864:29;:::i;:::-;20859:3;20855:39;20848:46;;20617:283;20527:373;;;;:::o;20906:640::-;21101:4;21139:3;21128:9;21124:19;21116:27;;21153:71;21221:1;21210:9;21206:17;21197:6;21153:71;:::i;:::-;21234:72;21302:2;21291:9;21287:18;21278:6;21234:72;:::i;:::-;21316;21384:2;21373:9;21369:18;21360:6;21316:72;:::i;:::-;21435:9;21429:4;21425:20;21420:2;21409:9;21405:18;21398:48;21463:76;21534:4;21525:6;21463:76;:::i;:::-;21455:84;;20906:640;;;;;;;:::o;21552:141::-;21608:5;21639:6;21633:13;21624:22;;21655:32;21681:5;21655:32;:::i;:::-;21552:141;;;;:::o;21699:349::-;21768:6;21817:2;21805:9;21796:7;21792:23;21788:32;21785:119;;;21823:79;;:::i;:::-;21785:119;21943:1;21968:63;22023:7;22014:6;22003:9;21999:22;21968:63;:::i;:::-;21958:73;;21914:127;21699:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316`name` \\u548c`symbol` .\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"构造函数,初始化`name` 和`symbol` ."},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/ERC721.sol":"ERC721"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"}},"version":1},"id":78} \ No newline at end of file diff --git a/out/Error.sol/Errors.json b/out/Error.sol/Errors.json index 064f5602..a52eb1cc 100644 --- a/out/Error.sol/Errors.json +++ b/out/Error.sol/Errors.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"transferOwner1","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwner2","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwner3","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"TransferNotOwner","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104d38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630f4be86814610043578063488d9f601461005f57806383f5e67e1461007b575b5f5ffd5b61005d600480360381019061005891906103ba565b610097565b005b610079600480360381019061007491906103ba565b61017d565b005b610095600480360381019061009091906103ba565b61023a565b005b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012b576040517f3fc2482600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e8576101e76103f8565b5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9061047f565b60405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5ffd5b5f819050919050565b61033f8161032d565b8114610349575f5ffd5b50565b5f8135905061035a81610336565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038982610360565b9050919050565b6103998161037f565b81146103a3575f5ffd5b50565b5f813590506103b481610390565b92915050565b5f5f604083850312156103d0576103cf610329565b5b5f6103dd8582860161034c565b92505060206103ee858286016103a6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f82825260208201905092915050565b7f5472616e73666572204e6f74204f776e657200000000000000000000000000005f82015250565b5f610469601283610425565b915061047482610435565b602082019050919050565b5f6020820190508181035f8301526104968161045d565b905091905056fea2646970667358221220c325a2abcb2041cbc3e9656a34b1d9d62d492721b520eeacd97aa08d74e3e68864736f6c63430008220033","sourceMap":"263:884:62:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630f4be86814610043578063488d9f601461005f57806383f5e67e1461007b575b5f5ffd5b61005d600480360381019061005891906103ba565b610097565b005b610079600480360381019061007491906103ba565b61017d565b005b610095600480360381019061009091906103ba565b61023a565b005b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012b576040517f3fc2482600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e8576101e76103f8565b5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9061047f565b60405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5ffd5b5f819050919050565b61033f8161032d565b8114610349575f5ffd5b50565b5f8135905061035a81610336565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038982610360565b9050919050565b6103998161037f565b81146103a3575f5ffd5b50565b5f813590506103b481610390565b92915050565b5f5f604083850312156103d0576103cf610329565b5b5f6103dd8582860161034c565b92505060206103ee858286016103a6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f82825260208201905092915050565b7f5472616e73666572204e6f74204f776e657200000000000000000000000000005f82015250565b5f610469601283610425565b915061047482610435565b602082019050919050565b5f6020820190508181035f8301526104968161045d565b905091905056fea2646970667358221220c325a2abcb2041cbc3e9656a34b1d9d62d492721b520eeacd97aa08d74e3e68864736f6c63430008220033","sourceMap":"263:884:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;464:257;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;987:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;764:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;464:257;564:10;544:30;;:7;:16;552:7;544:16;;;;;;;;;;;;;;;;;;;;;:30;;;540:138;;597:18;;;;;;;;;;;;;;540:138;706:8;687:7;:16;695:7;687:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;464:257;;:::o;987:158::-;1090:10;1070:30;;:7;:16;1078:7;1070:16;;;;;;;;;;;;;;;;;;;;;:30;;;1063:38;;;;:::i;:::-;;1130:8;1111:7;:16;1119:7;1111:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;987:158;;:::o;764:181::-;868:10;848:30;;:7;:16;856:7;848:16;;;;;;;;;;;;;;;;;;;;;:30;;;840:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:8;911:7;:16;919:7;911:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;764:181;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:180::-;1725:77;1722:1;1715:88;1822:4;1819:1;1812:15;1846:4;1843:1;1836:15;1863:169;1947:11;1981:6;1976:3;1969:19;2021:4;2016:3;2012:14;1997:29;;1863:169;;;;:::o;2038:168::-;2178:20;2174:1;2166:6;2162:14;2155:44;2038:168;:::o;2212:366::-;2354:3;2375:67;2439:2;2434:3;2375:67;:::i;:::-;2368:74;;2451:93;2540:3;2451:93;:::i;:::-;2569:2;2564:3;2560:12;2553:19;;2212:366;;;:::o;2584:419::-;2750:4;2788:2;2777:9;2773:18;2765:26;;2837:9;2831:4;2827:20;2823:1;2812:9;2808:17;2801:47;2865:131;2991:4;2865:131;:::i;:::-;2857:139;;2584:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"transferOwner1(uint256,address)":"0f4be868","transferOwner2(uint256,address)":"83f5e67e","transferOwner3(uint256,address)":"488d9f60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"TransferNotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/15_Errors/Error.sol\":\"Errors\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/15_Errors/Error.sol\":{\"keccak256\":\"0x177851984edf54ce6b6a6e73c81245cacc00c4756354f3eab1377a553576d26f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03347b96156dc8c6e608040c6f514cb5901a572db9fff5409557323c66364791\",\"dweb:/ipfs/QmbtXDZoyE78iGhGjEkuxJwqC2aBvtEFADMQLCFwuJsBfY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"TransferNotOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner1"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner2"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner3"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/15_Errors/Error.sol":"Errors"},"evmVersion":"prague","libraries":{}},"sources":{"src/15_Errors/Error.sol":{"keccak256":"0x177851984edf54ce6b6a6e73c81245cacc00c4756354f3eab1377a553576d26f","urls":["bzz-raw://03347b96156dc8c6e608040c6f514cb5901a572db9fff5409557323c66364791","dweb:/ipfs/QmbtXDZoyE78iGhGjEkuxJwqC2aBvtEFADMQLCFwuJsBfY"],"license":"MIT"}},"version":1},"id":62} \ No newline at end of file +{"abi":[{"type":"function","name":"transferOwner1","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwner2","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwner3","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"TransferNotOwner","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104d38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630f4be86814610043578063488d9f601461005f57806383f5e67e1461007b575b5f5ffd5b61005d600480360381019061005891906103ba565b610097565b005b610079600480360381019061007491906103ba565b61017d565b005b610095600480360381019061009091906103ba565b61023a565b005b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012b576040517f3fc2482600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e8576101e76103f8565b5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9061047f565b60405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5ffd5b5f819050919050565b61033f8161032d565b8114610349575f5ffd5b50565b5f8135905061035a81610336565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038982610360565b9050919050565b6103998161037f565b81146103a3575f5ffd5b50565b5f813590506103b481610390565b92915050565b5f5f604083850312156103d0576103cf610329565b5b5f6103dd8582860161034c565b92505060206103ee858286016103a6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f82825260208201905092915050565b7f5472616e73666572204e6f74204f776e657200000000000000000000000000005f82015250565b5f610469601283610425565b915061047482610435565b602082019050919050565b5f6020820190508181035f8301526104968161045d565b905091905056fea2646970667358221220c325a2abcb2041cbc3e9656a34b1d9d62d492721b520eeacd97aa08d74e3e68864736f6c63430008220033","sourceMap":"263:884:58:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630f4be86814610043578063488d9f601461005f57806383f5e67e1461007b575b5f5ffd5b61005d600480360381019061005891906103ba565b610097565b005b610079600480360381019061007491906103ba565b61017d565b005b610095600480360381019061009091906103ba565b61023a565b005b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461012b576040517f3fc2482600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101e8576101e76103f8565b5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f5f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146102d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9061047f565b60405180910390fd5b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5ffd5b5f819050919050565b61033f8161032d565b8114610349575f5ffd5b50565b5f8135905061035a81610336565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61038982610360565b9050919050565b6103998161037f565b81146103a3575f5ffd5b50565b5f813590506103b481610390565b92915050565b5f5f604083850312156103d0576103cf610329565b5b5f6103dd8582860161034c565b92505060206103ee858286016103a6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f82825260208201905092915050565b7f5472616e73666572204e6f74204f776e657200000000000000000000000000005f82015250565b5f610469601283610425565b915061047482610435565b602082019050919050565b5f6020820190508181035f8301526104968161045d565b905091905056fea2646970667358221220c325a2abcb2041cbc3e9656a34b1d9d62d492721b520eeacd97aa08d74e3e68864736f6c63430008220033","sourceMap":"263:884:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;464:257;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;987:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;764:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;464:257;564:10;544:30;;:7;:16;552:7;544:16;;;;;;;;;;;;;;;;;;;;;:30;;;540:138;;597:18;;;;;;;;;;;;;;540:138;706:8;687:7;:16;695:7;687:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;464:257;;:::o;987:158::-;1090:10;1070:30;;:7;:16;1078:7;1070:16;;;;;;;;;;;;;;;;;;;;;:30;;;1063:38;;;;:::i;:::-;;1130:8;1111:7;:16;1119:7;1111:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;987:158;;:::o;764:181::-;868:10;848:30;;:7;:16;856:7;848:16;;;;;;;;;;;;;;;;;;;;;:30;;;840:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;930:8;911:7;:16;919:7;911:16;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;764:181;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:180::-;1725:77;1722:1;1715:88;1822:4;1819:1;1812:15;1846:4;1843:1;1836:15;1863:169;1947:11;1981:6;1976:3;1969:19;2021:4;2016:3;2012:14;1997:29;;1863:169;;;;:::o;2038:168::-;2178:20;2174:1;2166:6;2162:14;2155:44;2038:168;:::o;2212:366::-;2354:3;2375:67;2439:2;2434:3;2375:67;:::i;:::-;2368:74;;2451:93;2540:3;2451:93;:::i;:::-;2569:2;2564:3;2560:12;2553:19;;2212:366;;;:::o;2584:419::-;2750:4;2788:2;2777:9;2773:18;2765:26;;2837:9;2831:4;2827:20;2823:1;2812:9;2808:17;2801:47;2865:131;2991:4;2865:131;:::i;:::-;2857:139;;2584:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"transferOwner1(uint256,address)":"0f4be868","transferOwner2(uint256,address)":"83f5e67e","transferOwner3(uint256,address)":"488d9f60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"TransferNotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwner3\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/15_Errors/Error.sol\":\"Errors\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/15_Errors/Error.sol\":{\"keccak256\":\"0x177851984edf54ce6b6a6e73c81245cacc00c4756354f3eab1377a553576d26f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03347b96156dc8c6e608040c6f514cb5901a572db9fff5409557323c66364791\",\"dweb:/ipfs/QmbtXDZoyE78iGhGjEkuxJwqC2aBvtEFADMQLCFwuJsBfY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"TransferNotOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner1"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner2"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwner3"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/15_Errors/Error.sol":"Errors"},"evmVersion":"prague","libraries":{}},"sources":{"src/15_Errors/Error.sol":{"keccak256":"0x177851984edf54ce6b6a6e73c81245cacc00c4756354f3eab1377a553576d26f","urls":["bzz-raw://03347b96156dc8c6e608040c6f514cb5901a572db9fff5409557323c66364791","dweb:/ipfs/QmbtXDZoyE78iGhGjEkuxJwqC2aBvtEFADMQLCFwuJsBfY"],"license":"MIT"}},"version":1},"id":58} \ No newline at end of file diff --git a/out/Event.sol/Events.json b/out/Event.sol/Events.json index 72b45207..fd3c1994 100644 --- a/out/Event.sol/Events.json +++ b/out/Event.sol/Events.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_transfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506103e78061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806330e0789e146100385780636ebcf60714610054575b5f5ffd5b610052600480360381019061004d919061027b565b610084565b005b61006e600480360381019061006991906102cb565b6101d6565b60405161007b9190610305565b60405180910390f35b629896805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610113919061034b565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610165919061037e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101c99190610305565b60405180910390a3505050565b5f602052805f5260405f205f915090505481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b8114610231575f5ffd5b50565b5f813590506102428161021e565b92915050565b5f819050919050565b61025a81610248565b8114610264575f5ffd5b50565b5f8135905061027581610251565b92915050565b5f5f5f60608486031215610292576102916101ea565b5b5f61029f86828701610234565b93505060206102b086828701610234565b92505060406102c186828701610267565b9150509250925092565b5f602082840312156102e0576102df6101ea565b5b5f6102ed84828501610234565b91505092915050565b6102ff81610248565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61035582610248565b915061036083610248565b92508282039050818111156103785761037761031e565b5b92915050565b5f61038882610248565b915061039383610248565b92508282019050808211156103ab576103aa61031e565b5b9291505056fea26469706673582212209646d4e3af11a0b32711da0a9e2fd031f99930992acb6f89dedecb83e7dd5d4c64736f6c63430008220033","sourceMap":"57:750:55:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806330e0789e146100385780636ebcf60714610054575b5f5ffd5b610052600480360381019061004d919061027b565b610084565b005b61006e600480360381019061006991906102cb565b6101d6565b60405161007b9190610305565b60405180910390f35b629896805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610113919061034b565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610165919061037e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101c99190610305565b60405180910390a3505050565b5f602052805f5260405f205f915090505481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b8114610231575f5ffd5b50565b5f813590506102428161021e565b92915050565b5f819050919050565b61025a81610248565b8114610264575f5ffd5b50565b5f8135905061027581610251565b92915050565b5f5f5f60608486031215610292576102916101ea565b5b5f61029f86828701610234565b93505060206102b086828701610234565b92505060406102c186828701610267565b9150509250925092565b5f602082840312156102e0576102df6101ea565b5b5f6102ed84828501610234565b91505092915050565b6102ff81610248565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61035582610248565b915061036083610248565b92508282039050818111156103785761037761031e565b5b92915050565b5f61038882610248565b915061039383610248565b92508282019050808211156103ab576103aa61031e565b5b9291505056fea26469706673582212209646d4e3af11a0b32711da0a9e2fd031f99930992acb6f89dedecb83e7dd5d4c64736f6c63430008220033","sourceMap":"57:750:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:379;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;150:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;426:379;555:8;537:9;:15;547:4;537:15;;;;;;;;;;;;;;;:26;;;;631:6;611:9;:15;621:4;611:15;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;696:6;679:9;:13;689:2;679:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;787:2;772:26;;781:4;772:26;;;791:6;772:26;;;;;;:::i;:::-;;;;;;;;426:379;;;:::o;150:44::-;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;1822:329::-;1881:6;1930:2;1918:9;1909:7;1905:23;1901:32;1898:119;;;1936:79;;:::i;:::-;1898:119;2056:1;2081:53;2126:7;2117:6;2106:9;2102:22;2081:53;:::i;:::-;2071:63;;2027:117;1822:329;;;;:::o;2157:118::-;2244:24;2262:5;2244:24;:::i;:::-;2239:3;2232:37;2157:118;;:::o;2281:222::-;2374:4;2412:2;2401:9;2397:18;2389:26;;2425:71;2493:1;2482:9;2478:17;2469:6;2425:71;:::i;:::-;2281:222;;;;:::o;2509:180::-;2557:77;2554:1;2547:88;2654:4;2651:1;2644:15;2678:4;2675:1;2668:15;2695:194;2735:4;2755:20;2773:1;2755:20;:::i;:::-;2750:25;;2789:20;2807:1;2789:20;:::i;:::-;2784:25;;2833:1;2830;2826:9;2818:17;;2857:1;2851:4;2848:11;2845:37;;;2862:18;;:::i;:::-;2845:37;2695:194;;;;:::o;2895:191::-;2935:3;2954:20;2972:1;2954:20;:::i;:::-;2949:25;;2988:20;3006:1;2988:20;:::i;:::-;2983:25;;3031:1;3028;3024:9;3017:16;;3052:3;3049:1;3046:10;3043:36;;;3059:18;;:::i;:::-;3043:36;2895:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"_balances(address)":"6ebcf607","_transfer(address,address,uint256)":"30e0789e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/12_Event/Event.sol\":\"Events\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/12_Event/Event.sol\":{\"keccak256\":\"0xeb0792f522eda6ed93909778952e74e47dab54b664f00c61a1af145c994973fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1293618fdc91109f517d430bbe7a611c415d8476054f24c497eb9c43168a317\",\"dweb:/ipfs/QmPNcKDjCGNLnmoHsDrKrQruJtohZ6kdYCYVaejgYdB11U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"_transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/12_Event/Event.sol":"Events"},"evmVersion":"prague","libraries":{}},"sources":{"src/12_Event/Event.sol":{"keccak256":"0xeb0792f522eda6ed93909778952e74e47dab54b664f00c61a1af145c994973fe","urls":["bzz-raw://f1293618fdc91109f517d430bbe7a611c415d8476054f24c497eb9c43168a317","dweb:/ipfs/QmPNcKDjCGNLnmoHsDrKrQruJtohZ6kdYCYVaejgYdB11U"],"license":"MIT"}},"version":1},"id":55} \ No newline at end of file +{"abi":[{"type":"function","name":"_balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_transfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506103e78061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806330e0789e146100385780636ebcf60714610054575b5f5ffd5b610052600480360381019061004d919061027b565b610084565b005b61006e600480360381019061006991906102cb565b6101d6565b60405161007b9190610305565b60405180910390f35b629896805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610113919061034b565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610165919061037e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101c99190610305565b60405180910390a3505050565b5f602052805f5260405f205f915090505481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b8114610231575f5ffd5b50565b5f813590506102428161021e565b92915050565b5f819050919050565b61025a81610248565b8114610264575f5ffd5b50565b5f8135905061027581610251565b92915050565b5f5f5f60608486031215610292576102916101ea565b5b5f61029f86828701610234565b93505060206102b086828701610234565b92505060406102c186828701610267565b9150509250925092565b5f602082840312156102e0576102df6101ea565b5b5f6102ed84828501610234565b91505092915050565b6102ff81610248565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61035582610248565b915061036083610248565b92508282039050818111156103785761037761031e565b5b92915050565b5f61038882610248565b915061039383610248565b92508282019050808211156103ab576103aa61031e565b5b9291505056fea26469706673582212209646d4e3af11a0b32711da0a9e2fd031f99930992acb6f89dedecb83e7dd5d4c64736f6c63430008220033","sourceMap":"57:750:54:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806330e0789e146100385780636ebcf60714610054575b5f5ffd5b610052600480360381019061004d919061027b565b610084565b005b61006e600480360381019061006991906102cb565b6101d6565b60405161007b9190610305565b60405180910390f35b629896805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610113919061034b565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610165919061037e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101c99190610305565b60405180910390a3505050565b5f602052805f5260405f205f915090505481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b8114610231575f5ffd5b50565b5f813590506102428161021e565b92915050565b5f819050919050565b61025a81610248565b8114610264575f5ffd5b50565b5f8135905061027581610251565b92915050565b5f5f5f60608486031215610292576102916101ea565b5b5f61029f86828701610234565b93505060206102b086828701610234565b92505060406102c186828701610267565b9150509250925092565b5f602082840312156102e0576102df6101ea565b5b5f6102ed84828501610234565b91505092915050565b6102ff81610248565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61035582610248565b915061036083610248565b92508282039050818111156103785761037761031e565b5b92915050565b5f61038882610248565b915061039383610248565b92508282019050808211156103ab576103aa61031e565b5b9291505056fea26469706673582212209646d4e3af11a0b32711da0a9e2fd031f99930992acb6f89dedecb83e7dd5d4c64736f6c63430008220033","sourceMap":"57:750:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:379;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;150:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;426:379;555:8;537:9;:15;547:4;537:15;;;;;;;;;;;;;;;:26;;;;631:6;611:9;:15;621:4;611:15;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;696:6;679:9;:13;689:2;679:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;787:2;772:26;;781:4;772:26;;;791:6;772:26;;;;;;:::i;:::-;;;;;;;;426:379;;;:::o;150:44::-;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:619::-;1274:6;1282;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:53;1535:7;1526:6;1515:9;1511:22;1490:53;:::i;:::-;1480:63;;1436:117;1592:2;1618:53;1663:7;1654:6;1643:9;1639:22;1618:53;:::i;:::-;1608:63;;1563:118;1720:2;1746:53;1791:7;1782:6;1771:9;1767:22;1746:53;:::i;:::-;1736:63;;1691:118;1197:619;;;;;:::o;1822:329::-;1881:6;1930:2;1918:9;1909:7;1905:23;1901:32;1898:119;;;1936:79;;:::i;:::-;1898:119;2056:1;2081:53;2126:7;2117:6;2106:9;2102:22;2081:53;:::i;:::-;2071:63;;2027:117;1822:329;;;;:::o;2157:118::-;2244:24;2262:5;2244:24;:::i;:::-;2239:3;2232:37;2157:118;;:::o;2281:222::-;2374:4;2412:2;2401:9;2397:18;2389:26;;2425:71;2493:1;2482:9;2478:17;2469:6;2425:71;:::i;:::-;2281:222;;;;:::o;2509:180::-;2557:77;2554:1;2547:88;2654:4;2651:1;2644:15;2678:4;2675:1;2668:15;2695:194;2735:4;2755:20;2773:1;2755:20;:::i;:::-;2750:25;;2789:20;2807:1;2789:20;:::i;:::-;2784:25;;2833:1;2830;2826:9;2818:17;;2857:1;2851:4;2848:11;2845:37;;;2862:18;;:::i;:::-;2845:37;2695:194;;;;:::o;2895:191::-;2935:3;2954:20;2972:1;2954:20;:::i;:::-;2949:25;;2988:20;3006:1;2988:20;:::i;:::-;2983:25;;3031:1;3028;3024:9;3017:16;;3052:3;3049:1;3046:10;3043:36;;;3059:18;;:::i;:::-;3043:36;2895:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"_balances(address)":"6ebcf607","_transfer(address,address,uint256)":"30e0789e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/12_Event/Event.sol\":\"Events\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/12_Event/Event.sol\":{\"keccak256\":\"0xeb0792f522eda6ed93909778952e74e47dab54b664f00c61a1af145c994973fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1293618fdc91109f517d430bbe7a611c415d8476054f24c497eb9c43168a317\",\"dweb:/ipfs/QmPNcKDjCGNLnmoHsDrKrQruJtohZ6kdYCYVaejgYdB11U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"_transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/12_Event/Event.sol":"Events"},"evmVersion":"prague","libraries":{}},"sources":{"src/12_Event/Event.sol":{"keccak256":"0xeb0792f522eda6ed93909778952e74e47dab54b664f00c61a1af145c994973fe","urls":["bzz-raw://f1293618fdc91109f517d430bbe7a611c415d8476054f24c497eb9c43168a317","dweb:/ipfs/QmPNcKDjCGNLnmoHsDrKrQruJtohZ6kdYCYVaejgYdB11U"],"license":"MIT"}},"version":1},"id":54} \ No newline at end of file diff --git a/out/Fallback.sol/Fallback.json b/out/Fallback.sol/Fallback.json index a6e3b8a0..6a4df96e 100644 --- a/out/Fallback.sol/Fallback.json +++ b/out/Fallback.sol/Fallback.json @@ -1 +1 @@ -{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"event","name":"fallbackCalled","inputs":[{"name":"Sender","type":"address","indexed":false,"internalType":"address"},{"name":"Value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"Data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"receivedCalled","inputs":[{"name":"Sender","type":"address","indexed":false,"internalType":"address"},{"name":"Value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101cf8061001c5f395ff3fe608060405236610044577f24feae88ede5c2d07f0ca617a259e25baf86481eafba06bc78af89772bc0b6b7333460405161003a9291906100da565b60405180910390a1005b7f7bf8121d238f1338d4842c396807cbe93f5a2396e2b3cad1639735997867b1f533345f36604051610079949392919061015b565b60405180910390a1005b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ac82610083565b9050919050565b6100bc816100a2565b82525050565b5f819050919050565b6100d4816100c2565b82525050565b5f6040820190506100ed5f8301856100b3565b6100fa60208301846100cb565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61013a8385610101565b9350610147838584610111565b6101508361011f565b840190509392505050565b5f60608201905061016e5f8301876100b3565b61017b60208301866100cb565b818103604083015261018e81848661012f565b90509594505050505056fea2646970667358221220d00ff86c686226b30196a4807061b0a124a8f118ca74a7bfcaa6408e1e942ebb64736f6c63430008220033","sourceMap":"58:677:65:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405236610044577f24feae88ede5c2d07f0ca617a259e25baf86481eafba06bc78af89772bc0b6b7333460405161003a9291906100da565b60405180910390a1005b7f7bf8121d238f1338d4842c396807cbe93f5a2396e2b3cad1639735997867b1f533345f36604051610079949392919061015b565b60405180910390a1005b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ac82610083565b9050919050565b6100bc816100a2565b82525050565b5f819050919050565b6100d4816100c2565b82525050565b5f6040820190506100ed5f8301856100b3565b6100fa60208301846100cb565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61013a8385610101565b9350610147838584610111565b6101508361011f565b840190509392505050565b5f60608201905061016e5f8301876100b3565b61017b60208301866100cb565b818103604083015261018e81848661012f565b90509594505050505056fea2646970667358221220d00ff86c686226b30196a4807061b0a124a8f118ca74a7bfcaa6408e1e942ebb64736f6c63430008220033","sourceMap":"58:677:65:-:0;;;;;;571:37;586:10;598:9;571:37;;;;;;;:::i;:::-;;;;;;;;58:677;;679:47;694:10;706:9;717:8;;679:47;;;;;;;;;:::i;:::-;;;;;;;;58:677;7:126:145;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;910:168::-;993:11;1027:6;1022:3;1015:19;1067:4;1062:3;1058:14;1043:29;;910:168;;;;:::o;1084:148::-;1182:6;1177:3;1172;1159:30;1223:1;1214:6;1209:3;1205:16;1198:27;1084:148;;;:::o;1238:102::-;1279:6;1330:2;1326:7;1321:2;1314:5;1310:14;1306:28;1296:38;;1238:102;;;:::o;1368:314::-;1464:3;1485:70;1548:6;1543:3;1485:70;:::i;:::-;1478:77;;1565:56;1614:6;1609:3;1602:5;1565:56;:::i;:::-;1646:29;1668:6;1646:29;:::i;:::-;1641:3;1637:39;1630:46;;1368:314;;;;;:::o;1688:549::-;1865:4;1903:2;1892:9;1888:18;1880:26;;1916:71;1984:1;1973:9;1969:17;1960:6;1916:71;:::i;:::-;1997:72;2065:2;2054:9;2050:18;2041:6;1997:72;:::i;:::-;2116:9;2110:4;2106:20;2101:2;2090:9;2086:18;2079:48;2144:86;2225:4;2216:6;2208;2144:86;:::i;:::-;2136:94;;1688:549;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"Sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"Data\",\"type\":\"bytes\"}],\"name\":\"fallbackCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"Sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Value\",\"type\":\"uint256\"}],\"name\":\"receivedCalled\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/19_Fallback/Fallback.sol\":\"Fallback\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/19_Fallback/Fallback.sol\":{\"keccak256\":\"0xa1fa08a3e44776bc90dc90c918ffa2acdad95d3512bf0110778856c444eb1ab6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f328d2bf836b93dd821aab1617a09be29f78065da55733f2a0c776831e112f3a\",\"dweb:/ipfs/QmaQAikPGKFgxbBTJJMdpxg9GMC8bWyebBLcKBpSgrruFv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"Sender","type":"address","indexed":false},{"internalType":"uint256","name":"Value","type":"uint256","indexed":false},{"internalType":"bytes","name":"Data","type":"bytes","indexed":false}],"type":"event","name":"fallbackCalled","anonymous":false},{"inputs":[{"internalType":"address","name":"Sender","type":"address","indexed":false},{"internalType":"uint256","name":"Value","type":"uint256","indexed":false}],"type":"event","name":"receivedCalled","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/19_Fallback/Fallback.sol":"Fallback"},"evmVersion":"prague","libraries":{}},"sources":{"src/19_Fallback/Fallback.sol":{"keccak256":"0xa1fa08a3e44776bc90dc90c918ffa2acdad95d3512bf0110778856c444eb1ab6","urls":["bzz-raw://f328d2bf836b93dd821aab1617a09be29f78065da55733f2a0c776831e112f3a","dweb:/ipfs/QmaQAikPGKFgxbBTJJMdpxg9GMC8bWyebBLcKBpSgrruFv"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"event","name":"fallbackCalled","inputs":[{"name":"Sender","type":"address","indexed":false,"internalType":"address"},{"name":"Value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"Data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"receivedCalled","inputs":[{"name":"Sender","type":"address","indexed":false,"internalType":"address"},{"name":"Value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101cf8061001c5f395ff3fe608060405236610044577f24feae88ede5c2d07f0ca617a259e25baf86481eafba06bc78af89772bc0b6b7333460405161003a9291906100da565b60405180910390a1005b7f7bf8121d238f1338d4842c396807cbe93f5a2396e2b3cad1639735997867b1f533345f36604051610079949392919061015b565b60405180910390a1005b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ac82610083565b9050919050565b6100bc816100a2565b82525050565b5f819050919050565b6100d4816100c2565b82525050565b5f6040820190506100ed5f8301856100b3565b6100fa60208301846100cb565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61013a8385610101565b9350610147838584610111565b6101508361011f565b840190509392505050565b5f60608201905061016e5f8301876100b3565b61017b60208301866100cb565b818103604083015261018e81848661012f565b90509594505050505056fea2646970667358221220d00ff86c686226b30196a4807061b0a124a8f118ca74a7bfcaa6408e1e942ebb64736f6c63430008220033","sourceMap":"58:677:61:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405236610044577f24feae88ede5c2d07f0ca617a259e25baf86481eafba06bc78af89772bc0b6b7333460405161003a9291906100da565b60405180910390a1005b7f7bf8121d238f1338d4842c396807cbe93f5a2396e2b3cad1639735997867b1f533345f36604051610079949392919061015b565b60405180910390a1005b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ac82610083565b9050919050565b6100bc816100a2565b82525050565b5f819050919050565b6100d4816100c2565b82525050565b5f6040820190506100ed5f8301856100b3565b6100fa60208301846100cb565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61013a8385610101565b9350610147838584610111565b6101508361011f565b840190509392505050565b5f60608201905061016e5f8301876100b3565b61017b60208301866100cb565b818103604083015261018e81848661012f565b90509594505050505056fea2646970667358221220d00ff86c686226b30196a4807061b0a124a8f118ca74a7bfcaa6408e1e942ebb64736f6c63430008220033","sourceMap":"58:677:61:-:0;;;;;;571:37;586:10;598:9;571:37;;;;;;;:::i;:::-;;;;;;;;58:677;;679:47;694:10;706:9;717:8;;679:47;;;;;;;;;:::i;:::-;;;;;;;;58:677;7:126:139;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;910:168::-;993:11;1027:6;1022:3;1015:19;1067:4;1062:3;1058:14;1043:29;;910:168;;;;:::o;1084:148::-;1182:6;1177:3;1172;1159:30;1223:1;1214:6;1209:3;1205:16;1198:27;1084:148;;;:::o;1238:102::-;1279:6;1330:2;1326:7;1321:2;1314:5;1310:14;1306:28;1296:38;;1238:102;;;:::o;1368:314::-;1464:3;1485:70;1548:6;1543:3;1485:70;:::i;:::-;1478:77;;1565:56;1614:6;1609:3;1602:5;1565:56;:::i;:::-;1646:29;1668:6;1646:29;:::i;:::-;1641:3;1637:39;1630:46;;1368:314;;;;;:::o;1688:549::-;1865:4;1903:2;1892:9;1888:18;1880:26;;1916:71;1984:1;1973:9;1969:17;1960:6;1916:71;:::i;:::-;1997:72;2065:2;2054:9;2050:18;2041:6;1997:72;:::i;:::-;2116:9;2110:4;2106:20;2101:2;2090:9;2086:18;2079:48;2144:86;2225:4;2216:6;2208;2144:86;:::i;:::-;2136:94;;1688:549;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"Sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"Data\",\"type\":\"bytes\"}],\"name\":\"fallbackCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"Sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Value\",\"type\":\"uint256\"}],\"name\":\"receivedCalled\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/19_Fallback/Fallback.sol\":\"Fallback\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/19_Fallback/Fallback.sol\":{\"keccak256\":\"0xa1fa08a3e44776bc90dc90c918ffa2acdad95d3512bf0110778856c444eb1ab6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f328d2bf836b93dd821aab1617a09be29f78065da55733f2a0c776831e112f3a\",\"dweb:/ipfs/QmaQAikPGKFgxbBTJJMdpxg9GMC8bWyebBLcKBpSgrruFv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"Sender","type":"address","indexed":false},{"internalType":"uint256","name":"Value","type":"uint256","indexed":false},{"internalType":"bytes","name":"Data","type":"bytes","indexed":false}],"type":"event","name":"fallbackCalled","anonymous":false},{"inputs":[{"internalType":"address","name":"Sender","type":"address","indexed":false},{"internalType":"uint256","name":"Value","type":"uint256","indexed":false}],"type":"event","name":"receivedCalled","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/19_Fallback/Fallback.sol":"Fallback"},"evmVersion":"prague","libraries":{}},"sources":{"src/19_Fallback/Fallback.sol":{"keccak256":"0xa1fa08a3e44776bc90dc90c918ffa2acdad95d3512bf0110778856c444eb1ab6","urls":["bzz-raw://f328d2bf836b93dd821aab1617a09be29f78065da55733f2a0c776831e112f3a","dweb:/ipfs/QmaQAikPGKFgxbBTJJMdpxg9GMC8bWyebBLcKBpSgrruFv"],"license":"MIT"}},"version":1},"id":61} \ No newline at end of file diff --git a/out/Faucet.sol/ERC20.json b/out/Faucet.sol/ERC20.json index 3bcefff6..fc0d0011 100644 --- a/out/Faucet.sol/ERC20.json +++ b/out/Faucet.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122065269085aebff5dc7fb0600480ad820e9b7fca4723947333ccedfc899118ca7464736f6c63430008220033","sourceMap":"109:1945:80:-:0;;;446:2;422:26;;;;;;;;;;;;;;;;;;;;471:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:5;536:4;:12;;;;;;:::i;:::-;;567:7;558:6;:16;;;;;;:::i;:::-;;471:110;;109:1945;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;109:1945:80:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122065269085aebff5dc7fb0600480ad820e9b7fca4723947333ccedfc899118ca7464736f6c63430008220033","sourceMap":"109:1945:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;281:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1228:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;422:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1881:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;141:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1636:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;643:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;344:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;949:207::-;1021:4;1070:6;1037:9;:21;1047:10;1037:21;;;;;;;;;;;;;;;:30;1059:7;1037:30;;;;;;;;;;;;;;;:39;;;;1112:7;1091:37;;1100:10;1091:37;;;1121:6;1091:37;;;;;;:::i;:::-;;;;;;;;1145:4;1138:11;;949:207;;;;:::o;281:35::-;;;;:::o;1228:335::-;1353:4;1402:6;1369:9;:17;1379:6;1369:17;;;;;;;;;;;;;;;:29;1387:10;1369:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1439:6;1418:9;:17;1428:6;1418:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1479:6;1455:9;:20;1465:9;1455:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1517:9;1500:35;;1509:6;1500:35;;;1528:6;1500:35;;;;;;:::i;:::-;;;;;;;;1552:4;1545:11;;1228:335;;;;;:::o;422:26::-;;;;;;;;;;;;;:::o;1881:170::-;1952:6;1927:9;:21;1937:10;1927:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1983:6;1968:11;;:21;;;;;;;:::i;:::-;;;;;;;;2033:1;2004:40;;2013:10;2004:40;;;2037:6;2004:40;;;;;;:::i;:::-;;;;;;;;1881:170;:::o;141:53::-;;;;;;;;;;;;;;;;;:::o;380:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1636:170::-;1707:6;1682:9;:21;1692:10;1682:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1738:6;1723:11;;:21;;;;;;;:::i;:::-;;;;;;;;1780:10;1759:40;;1776:1;1759:40;;;1792:6;1759:40;;;;;;:::i;:::-;;;;;;;;1636:170;:::o;643:244::-;718:4;759:6;734:9;:21;744:10;734:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;799:6;775:9;:20;785:9;775:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;841:9;820:39;;829:10;820:39;;;852:6;820:39;;;;;;:::i;:::-;;;;;;;;876:4;869:11;;643:244;;;;:::o;201:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/Faucet.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/Faucet.sol\":{\"keccak256\":\"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7\",\"dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh\"]},\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/Faucet.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/Faucet.sol":{"keccak256":"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36","urls":["bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7","dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh"],"license":"MIT"},"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x6080604052601260055f6101000a81548160ff021916908360ff16021790555034801561002a575f5ffd5b50604051611222380380611222833981810160405281019061004c91906101c0565b816003908161005b9190610457565b50806004908161006b9190610457565b505050610526565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100d28261008c565b810181811067ffffffffffffffff821117156100f1576100f061009c565b5b80604052505050565b5f610103610073565b905061010f82826100c9565b919050565b5f67ffffffffffffffff82111561012e5761012d61009c565b5b6101378261008c565b9050602081019050919050565b8281835e5f83830152505050565b5f61016461015f84610114565b6100fa565b9050828152602081018484840111156101805761017f610088565b5b61018b848285610144565b509392505050565b5f82601f8301126101a7576101a6610084565b5b81516101b7848260208601610152565b91505092915050565b5f5f604083850312156101d6576101d561007c565b5b5f83015167ffffffffffffffff8111156101f3576101f2610080565b5b6101ff85828601610193565b925050602083015167ffffffffffffffff8111156102205761021f610080565b5b61022c85828601610193565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028457607f821691505b60208210810361029757610296610240565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102be565b61030386836102be565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034761034261033d8461031b565b610324565b61031b565b9050919050565b5f819050919050565b6103608361032d565b61037461036c8261034e565b8484546102ca565b825550505050565b5f5f905090565b61038b61037c565b610396818484610357565b505050565b5f5b828110156103bc576103b15f828401610383565b60018101905061039d565b505050565b601f82111561040f578282111561040e576103db8161029d565b6103e4836102af565b6103ed856102af565b60208610156103fa575f90505b8083016104098284038261039b565b505050505b5b505050565b5f82821c905092915050565b5f61042f5f1984600802610414565b1980831691505092915050565b5f6104478383610420565b9150826002028217905092915050565b61046082610236565b67ffffffffffffffff8111156104795761047861009c565b5b610483825461026d565b61048e8282856103c1565b5f60209050601f8311600181146104bf575f84156104ad578287015190505b6104b7858261043c565b86555061051e565b601f1984166104cd8661029d565b5f5b828110156104f4578489015182556001820191506020850194506020810190506104cf565b86831015610511578489015161050d601f891682610420565b8355505b6001600288020188555050505b505050505050565b610cef806105335f395ff3fe608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122065269085aebff5dc7fb0600480ad820e9b7fca4723947333ccedfc899118ca7464736f6c63430008220033","sourceMap":"109:1945:74:-:0;;;446:2;422:26;;;;;;;;;;;;;;;;;;;;471:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:5;536:4;:12;;;;;;:::i;:::-;;567:7;558:6;:16;;;;;;:::i;:::-;;471:110;;109:1945;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;109:1945:74:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806395d89b41146101b1578063a0712d68146101cf578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f5ffd5b6100b361024b565b6040516100c09190610967565b60405180910390f35b6100e360048036038101906100de9190610a18565b6102d7565b6040516100f09190610a70565b60405180910390f35b6101016103c4565b60405161010e9190610a98565b60405180910390f35b610131600480360381019061012c9190610ab1565b6103ca565b60405161013e9190610a70565b60405180910390f35b61014f61056d565b60405161015c9190610b1c565b60405180910390f35b61017f600480360381019061017a9190610b35565b61057f565b005b61019b60048036038101906101969190610b60565b610651565b6040516101a89190610a98565b60405180910390f35b6101b9610665565b6040516101c69190610967565b60405180910390f35b6101e960048036038101906101e49190610b35565b6106f1565b005b61020560048036038101906102009190610a18565b6107c3565b6040516102129190610a70565b60405180910390f35b61023560048036038101906102309190610b8b565b6108d7565b6040516102429190610a98565b60405180910390f35b6003805461025890610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461028490610bf6565b80156102cf5780601f106102a6576101008083540402835291602001916102cf565b820191905f5260205f20905b8154815290600101906020018083116102b257829003601f168201915b505050505081565b5f8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103b29190610a98565b60405180910390a36001905092915050565b60025481565b5f8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104529190610c53565b92505081905550815f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a49190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161055a9190610a98565b60405180910390a3600190509392505050565b60055f9054906101000a900460ff1681565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105ca9190610c53565b925050819055508060025f8282546105e29190610c53565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106469190610a98565b60405180910390a350565b5f602052805f5260405f205f915090505481565b6004805461067290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461069e90610bf6565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b505050505081565b805f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461073c9190610c86565b925050819055508060025f8282546107549190610c86565b925050819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b89190610a98565b60405180910390a350565b5f815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461080f9190610c53565b92505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108619190610c86565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108c59190610a98565b60405180910390a36001905092915050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610939826108f7565b6109438185610901565b9350610953818560208601610911565b61095c8161091f565b840191505092915050565b5f6020820190508181035f83015261097f818461092f565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109b48261098b565b9050919050565b6109c4816109aa565b81146109ce575f5ffd5b50565b5f813590506109df816109bb565b92915050565b5f819050919050565b6109f7816109e5565b8114610a01575f5ffd5b50565b5f81359050610a12816109ee565b92915050565b5f5f60408385031215610a2e57610a2d610987565b5b5f610a3b858286016109d1565b9250506020610a4c85828601610a04565b9150509250929050565b5f8115159050919050565b610a6a81610a56565b82525050565b5f602082019050610a835f830184610a61565b92915050565b610a92816109e5565b82525050565b5f602082019050610aab5f830184610a89565b92915050565b5f5f5f60608486031215610ac857610ac7610987565b5b5f610ad5868287016109d1565b9350506020610ae6868287016109d1565b9250506040610af786828701610a04565b9150509250925092565b5f60ff82169050919050565b610b1681610b01565b82525050565b5f602082019050610b2f5f830184610b0d565b92915050565b5f60208284031215610b4a57610b49610987565b5b5f610b5784828501610a04565b91505092915050565b5f60208284031215610b7557610b74610987565b5b5f610b82848285016109d1565b91505092915050565b5f5f60408385031215610ba157610ba0610987565b5b5f610bae858286016109d1565b9250506020610bbf858286016109d1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610c0d57607f821691505b602082108103610c2057610c1f610bc9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c5d826109e5565b9150610c68836109e5565b9250828203905081811115610c8057610c7f610c26565b5b92915050565b5f610c90826109e5565b9150610c9b836109e5565b9250828201905080821115610cb357610cb2610c26565b5b9291505056fea264697066735822122065269085aebff5dc7fb0600480ad820e9b7fca4723947333ccedfc899118ca7464736f6c63430008220033","sourceMap":"109:1945:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;281:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1228:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;422:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1881:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;141:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1636:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;643:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;344:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;949:207::-;1021:4;1070:6;1037:9;:21;1047:10;1037:21;;;;;;;;;;;;;;;:30;1059:7;1037:30;;;;;;;;;;;;;;;:39;;;;1112:7;1091:37;;1100:10;1091:37;;;1121:6;1091:37;;;;;;:::i;:::-;;;;;;;;1145:4;1138:11;;949:207;;;;:::o;281:35::-;;;;:::o;1228:335::-;1353:4;1402:6;1369:9;:17;1379:6;1369:17;;;;;;;;;;;;;;;:29;1387:10;1369:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;1439:6;1418:9;:17;1428:6;1418:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;1479:6;1455:9;:20;1465:9;1455:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;1517:9;1500:35;;1509:6;1500:35;;;1528:6;1500:35;;;;;;:::i;:::-;;;;;;;;1552:4;1545:11;;1228:335;;;;;:::o;422:26::-;;;;;;;;;;;;;:::o;1881:170::-;1952:6;1927:9;:21;1937:10;1927:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1983:6;1968:11;;:21;;;;;;;:::i;:::-;;;;;;;;2033:1;2004:40;;2013:10;2004:40;;;2037:6;2004:40;;;;;;:::i;:::-;;;;;;;;1881:170;:::o;141:53::-;;;;;;;;;;;;;;;;;:::o;380:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1636:170::-;1707:6;1682:9;:21;1692:10;1682:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;1738:6;1723:11;;:21;;;;;;;:::i;:::-;;;;;;;;1780:10;1759:40;;1776:1;1759:40;;;1792:6;1759:40;;;;;;:::i;:::-;;;;;;;;1636:170;:::o;643:244::-;718:4;759:6;734:9;:21;744:10;734:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;799:6;775:9;:20;785:9;775:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;841:9;820:39;;829:10;820:39;;;852:6;820:39;;;;;;:::i;:::-;;;;;;;;876:4;869:11;;643:244;;;;:::o;201:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:180::-;6456:77;6453:1;6446:88;6553:4;6550:1;6543:15;6577:4;6574:1;6567:15;6594:194;6634:4;6654:20;6672:1;6654:20;:::i;:::-;6649:25;;6688:20;6706:1;6688:20;:::i;:::-;6683:25;;6732:1;6729;6725:9;6717:17;;6756:1;6750:4;6747:11;6744:37;;;6761:18;;:::i;:::-;6744:37;6594:194;;;;:::o;6794:191::-;6834:3;6853:20;6871:1;6853:20;:::i;:::-;6848:25;;6887:20;6905:1;6887:20;:::i;:::-;6882:25;;6930:1;6927;6923:9;6916:16;;6951:3;6948:1;6945:10;6942:36;;;6958:18;;:::i;:::-;6942:36;6794:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(uint256)":"a0712d68","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"}},\"stateVariables\":{\"allowance\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"balanceOf\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/Faucet.sol\":\"ERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/Faucet.sol\":{\"keccak256\":\"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7\",\"dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh\"]},\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/Faucet.sol":"ERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/Faucet.sol":{"keccak256":"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36","urls":["bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7","dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh"],"license":"MIT"},"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":74} \ No newline at end of file diff --git a/out/Faucet.sol/Faucet.json b/out/Faucet.sol/Faucet.json index 74690a69..ae207ffd 100644 --- a/out/Faucet.sol/Faucet.json +++ b/out/Faucet.sol/Faucet.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_tokenContract","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"amountAllowed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"SendToken","inputs":[{"name":"Receiver","type":"address","indexed":true,"internalType":"address"},{"name":"Amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405260645f55348015610013575f5ffd5b5060405161079c38038061079c833981810160405281019061003591906100d9565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610104565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a88261007f565b9050919050565b6100b88161009e565b81146100c2575f5ffd5b50565b5f815190506100d3816100af565b92915050565b5f602082840312156100ee576100ed61007b565b5b5f6100fb848285016100c5565b91505092915050565b61068b806101115f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063359cf2b71461004e57806355a373d6146100585780635e33dba9146100765780639ad2cd14146100a6575b5f5ffd5b6100566100c4565b005b610060610348565b60405161006d91906103ce565b60405180910390f35b610090600480360381019061008b9190610415565b61036d565b60405161009d919061045a565b60405180910390f35b6100ae61038a565b6040516100bb919061048b565b60405180910390f35b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561014e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610145906104fe565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f548173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ae91906103ce565b602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190610546565b101561022e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610225906105bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb335f546040518363ffffffff1660e01b815260040161026a9291906105d9565b6020604051808303815f875af1158015610286573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102aa919061062a565b50600160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f543373ffffffffffffffffffffffffffffffffffffffff167f916800025d85907d1e91e112659a8e7e77a17ea4de231b05f15bb381d3bfde6160405160405180910390a350565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103b88261038f565b9050919050565b6103c8816103ae565b82525050565b5f6020820190506103e15f8301846103bf565b92915050565b5f5ffd5b6103f4816103ae565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f6020828403121561042a576104296103e7565b5b5f61043784828501610401565b91505092915050565b5f8115159050919050565b61045481610440565b82525050565b5f60208201905061046d5f83018461044b565b92915050565b5f819050919050565b61048581610473565b82525050565b5f60208201905061049e5f83018461047c565b92915050565b5f82825260208201905092915050565b7f43616e27742052657175657374204d756c7469706c652054696d6573210000005f82015250565b5f6104e8601d836104a4565b91506104f3826104b4565b602082019050919050565b5f6020820190508181035f830152610515816104dc565b9050919050565b61052581610473565b811461052f575f5ffd5b50565b5f815190506105408161051c565b92915050565b5f6020828403121561055b5761055a6103e7565b5b5f61056884828501610532565b91505092915050565b7f46617563657420456d70747921000000000000000000000000000000000000005f82015250565b5f6105a5600d836104a4565b91506105b082610571565b602082019050919050565b5f6020820190508181035f8301526105d281610599565b9050919050565b5f6040820190506105ec5f8301856103bf565b6105f9602083018461047c565b9392505050565b61060981610440565b8114610613575f5ffd5b50565b5f8151905061062481610600565b92915050565b5f6020828403121561063f5761063e6103e7565b5b5f61064c84828501610616565b9150509291505056fea2646970667358221220930e40cb9807c7413e71534cef311c03e218fe7408c6ebe3d5b61931b8be4d5064736f6c63430008220033","sourceMap":"2089:1074:80:-:0;;;2143:3;2112:34;;2469:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2531:14;2515:13;;:30;;;;;;;;;;;;;;;;;;2469:105;2089:1074;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;2089:1074:80:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063359cf2b71461004e57806355a373d6146100585780635e33dba9146100765780639ad2cd14146100a6575b5f5ffd5b6100566100c4565b005b610060610348565b60405161006d91906103ce565b60405180910390f35b610090600480360381019061008b9190610415565b61036d565b60405161009d919061045a565b60405180910390f35b6100ae61038a565b6040516100bb919061048b565b60405180910390f35b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561014e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610145906104fe565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f548173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ae91906103ce565b602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190610546565b101561022e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610225906105bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb335f546040518363ffffffff1660e01b815260040161026a9291906105d9565b6020604051808303815f875af1158015610286573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102aa919061062a565b50600160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f543373ffffffffffffffffffffffffffffffffffffffff167f916800025d85907d1e91e112659a8e7e77a17ea4de231b05f15bb381d3bfde6160405160405180910390a350565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103b88261038f565b9050919050565b6103c8816103ae565b82525050565b5f6020820190506103e15f8301846103bf565b92915050565b5f5ffd5b6103f4816103ae565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f6020828403121561042a576104296103e7565b5b5f61043784828501610401565b91505092915050565b5f8115159050919050565b61045481610440565b82525050565b5f60208201905061046d5f83018461044b565b92915050565b5f819050919050565b61048581610473565b82525050565b5f60208201905061049e5f83018461047c565b92915050565b5f82825260208201905092915050565b7f43616e27742052657175657374204d756c7469706c652054696d6573210000005f82015250565b5f6104e8601d836104a4565b91506104f3826104b4565b602082019050919050565b5f6020820190508181035f830152610515816104dc565b9050919050565b61052581610473565b811461052f575f5ffd5b50565b5f815190506105408161051c565b92915050565b5f6020828403121561055b5761055a6103e7565b5b5f61056884828501610532565b91505092915050565b7f46617563657420456d70747921000000000000000000000000000000000000005f82015250565b5f6105a5600d836104a4565b91506105b082610571565b602082019050919050565b5f6020820190508181035f8301526105d281610599565b9050919050565b5f6040820190506105ec5f8301856103bf565b6105f9602083018461047c565b9392505050565b61060981610440565b8114610613575f5ffd5b50565b5f8151905061062481610600565b92915050565b5f6020828403121561063f5761063e6103e7565b5b5f61064c84828501610616565b9150509291505056fea2646970667358221220930e40cb9807c7413e71534cef311c03e218fe7408c6ebe3d5b61931b8be4d5064736f6c63430008220033","sourceMap":"2089:1074:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2612:549;;;:::i;:::-;;2181:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2238:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2112:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2612:549;2665:16;:28;2682:10;2665:28;;;;;;;;;;;;;;;;;;;;;;;;;2664:29;2656:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:12;2790:13;;;;;;;;;;;2768:36;;2884:13;;2850:5;:15;;;2874:4;2850:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;2842:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2945:5;:14;;;2960:10;2972:13;;2945:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3042:4;3011:16;:28;3028:10;3011:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;3115:13;;3103:10;3093:36;;;;;;;;;;;;2646:515;2612:549::o;2181:28::-;;;;;;;;;;;;;:::o;2238:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2112:34::-;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:90::-;1562:7;1605:5;1598:13;1591:21;1580:32;;1528:90;;;:::o;1624:109::-;1705:21;1720:5;1705:21;:::i;:::-;1700:3;1693:34;1624:109;;:::o;1739:210::-;1826:4;1864:2;1853:9;1849:18;1841:26;;1877:65;1939:1;1928:9;1924:17;1915:6;1877:65;:::i;:::-;1739:210;;;;:::o;1955:77::-;1992:7;2021:5;2010:16;;1955:77;;;:::o;2038:118::-;2125:24;2143:5;2125:24;:::i;:::-;2120:3;2113:37;2038:118;;:::o;2162:222::-;2255:4;2293:2;2282:9;2278:18;2270:26;;2306:71;2374:1;2363:9;2359:17;2350:6;2306:71;:::i;:::-;2162:222;;;;:::o;2390:169::-;2474:11;2508:6;2503:3;2496:19;2548:4;2543:3;2539:14;2524:29;;2390:169;;;;:::o;2565:179::-;2705:31;2701:1;2693:6;2689:14;2682:55;2565:179;:::o;2750:366::-;2892:3;2913:67;2977:2;2972:3;2913:67;:::i;:::-;2906:74;;2989:93;3078:3;2989:93;:::i;:::-;3107:2;3102:3;3098:12;3091:19;;2750:366;;;:::o;3122:419::-;3288:4;3326:2;3315:9;3311:18;3303:26;;3375:9;3369:4;3365:20;3361:1;3350:9;3346:17;3339:47;3403:131;3529:4;3403:131;:::i;:::-;3395:139;;3122:419;;;:::o;3547:122::-;3620:24;3638:5;3620:24;:::i;:::-;3613:5;3610:35;3600:63;;3659:1;3656;3649:12;3600:63;3547:122;:::o;3675:143::-;3732:5;3763:6;3757:13;3748:22;;3779:33;3806:5;3779:33;:::i;:::-;3675:143;;;;:::o;3824:351::-;3894:6;3943:2;3931:9;3922:7;3918:23;3914:32;3911:119;;;3949:79;;:::i;:::-;3911:119;4069:1;4094:64;4150:7;4141:6;4130:9;4126:22;4094:64;:::i;:::-;4084:74;;4040:128;3824:351;;;;:::o;4181:163::-;4321:15;4317:1;4309:6;4305:14;4298:39;4181:163;:::o;4350:366::-;4492:3;4513:67;4577:2;4572:3;4513:67;:::i;:::-;4506:74;;4589:93;4678:3;4589:93;:::i;:::-;4707:2;4702:3;4698:12;4691:19;;4350:366;;;:::o;4722:419::-;4888:4;4926:2;4915:9;4911:18;4903:26;;4975:9;4969:4;4965:20;4961:1;4950:9;4946:17;4939:47;5003:131;5129:4;5003:131;:::i;:::-;4995:139;;4722:419;;;:::o;5147:332::-;5268:4;5306:2;5295:9;5291:18;5283:26;;5319:71;5387:1;5376:9;5372:17;5363:6;5319:71;:::i;:::-;5400:72;5468:2;5457:9;5453:18;5444:6;5400:72;:::i;:::-;5147:332;;;;;:::o;5485:116::-;5555:21;5570:5;5555:21;:::i;:::-;5548:5;5545:32;5535:60;;5591:1;5588;5581:12;5535:60;5485:116;:::o;5607:137::-;5661:5;5692:6;5686:13;5677:22;;5708:30;5732:5;5708:30;:::i;:::-;5607:137;;;;:::o;5750:345::-;5817:6;5866:2;5854:9;5845:7;5841:23;5837:32;5834:119;;;5872:79;;:::i;:::-;5834:119;5992:1;6017:61;6070:7;6061:6;6050:9;6046:22;6017:61;:::i;:::-;6007:71;;5963:125;5750:345;;;;:::o","linkReferences":{}},"methodIdentifiers":{"amountAllowed()":"9ad2cd14","requestTokens()":"359cf2b7","requestedAddress(address)":"5e33dba9","tokenContract()":"55a373d6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"Receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"SendToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"amountAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"requestedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/Faucet.sol\":\"Faucet\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/Faucet.sol\":{\"keccak256\":\"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7\",\"dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh\"]},\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"Receiver","type":"address","indexed":true},{"internalType":"uint256","name":"Amount","type":"uint256","indexed":true}],"type":"event","name":"SendToken","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"amountAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"requestTokens"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"requestedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenContract","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/Faucet.sol":"Faucet"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/Faucet.sol":{"keccak256":"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36","urls":["bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7","dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh"],"license":"MIT"},"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_tokenContract","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"amountAllowed","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"SendToken","inputs":[{"name":"Receiver","type":"address","indexed":true,"internalType":"address"},{"name":"Amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405260645f55348015610013575f5ffd5b5060405161079c38038061079c833981810160405281019061003591906100d9565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610104565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a88261007f565b9050919050565b6100b88161009e565b81146100c2575f5ffd5b50565b5f815190506100d3816100af565b92915050565b5f602082840312156100ee576100ed61007b565b5b5f6100fb848285016100c5565b91505092915050565b61068b806101115f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063359cf2b71461004e57806355a373d6146100585780635e33dba9146100765780639ad2cd14146100a6575b5f5ffd5b6100566100c4565b005b610060610348565b60405161006d91906103ce565b60405180910390f35b610090600480360381019061008b9190610415565b61036d565b60405161009d919061045a565b60405180910390f35b6100ae61038a565b6040516100bb919061048b565b60405180910390f35b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561014e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610145906104fe565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f548173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ae91906103ce565b602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190610546565b101561022e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610225906105bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb335f546040518363ffffffff1660e01b815260040161026a9291906105d9565b6020604051808303815f875af1158015610286573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102aa919061062a565b50600160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f543373ffffffffffffffffffffffffffffffffffffffff167f916800025d85907d1e91e112659a8e7e77a17ea4de231b05f15bb381d3bfde6160405160405180910390a350565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103b88261038f565b9050919050565b6103c8816103ae565b82525050565b5f6020820190506103e15f8301846103bf565b92915050565b5f5ffd5b6103f4816103ae565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f6020828403121561042a576104296103e7565b5b5f61043784828501610401565b91505092915050565b5f8115159050919050565b61045481610440565b82525050565b5f60208201905061046d5f83018461044b565b92915050565b5f819050919050565b61048581610473565b82525050565b5f60208201905061049e5f83018461047c565b92915050565b5f82825260208201905092915050565b7f43616e27742052657175657374204d756c7469706c652054696d6573210000005f82015250565b5f6104e8601d836104a4565b91506104f3826104b4565b602082019050919050565b5f6020820190508181035f830152610515816104dc565b9050919050565b61052581610473565b811461052f575f5ffd5b50565b5f815190506105408161051c565b92915050565b5f6020828403121561055b5761055a6103e7565b5b5f61056884828501610532565b91505092915050565b7f46617563657420456d70747921000000000000000000000000000000000000005f82015250565b5f6105a5600d836104a4565b91506105b082610571565b602082019050919050565b5f6020820190508181035f8301526105d281610599565b9050919050565b5f6040820190506105ec5f8301856103bf565b6105f9602083018461047c565b9392505050565b61060981610440565b8114610613575f5ffd5b50565b5f8151905061062481610600565b92915050565b5f6020828403121561063f5761063e6103e7565b5b5f61064c84828501610616565b9150509291505056fea2646970667358221220930e40cb9807c7413e71534cef311c03e218fe7408c6ebe3d5b61931b8be4d5064736f6c63430008220033","sourceMap":"2089:1074:74:-:0;;;2143:3;2112:34;;2469:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2531:14;2515:13;;:30;;;;;;;;;;;;;;;;;;2469:105;2089:1074;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;2089:1074:74:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c8063359cf2b71461004e57806355a373d6146100585780635e33dba9146100765780639ad2cd14146100a6575b5f5ffd5b6100566100c4565b005b610060610348565b60405161006d91906103ce565b60405180910390f35b610090600480360381019061008b9190610415565b61036d565b60405161009d919061045a565b60405180910390f35b6100ae61038a565b6040516100bb919061048b565b60405180910390f35b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561014e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610145906104fe565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f548173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101ae91906103ce565b602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190610546565b101561022e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610225906105bb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb335f546040518363ffffffff1660e01b815260040161026a9291906105d9565b6020604051808303815f875af1158015610286573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102aa919061062a565b50600160025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f543373ffffffffffffffffffffffffffffffffffffffff167f916800025d85907d1e91e112659a8e7e77a17ea4de231b05f15bb381d3bfde6160405160405180910390a350565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103b88261038f565b9050919050565b6103c8816103ae565b82525050565b5f6020820190506103e15f8301846103bf565b92915050565b5f5ffd5b6103f4816103ae565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f6020828403121561042a576104296103e7565b5b5f61043784828501610401565b91505092915050565b5f8115159050919050565b61045481610440565b82525050565b5f60208201905061046d5f83018461044b565b92915050565b5f819050919050565b61048581610473565b82525050565b5f60208201905061049e5f83018461047c565b92915050565b5f82825260208201905092915050565b7f43616e27742052657175657374204d756c7469706c652054696d6573210000005f82015250565b5f6104e8601d836104a4565b91506104f3826104b4565b602082019050919050565b5f6020820190508181035f830152610515816104dc565b9050919050565b61052581610473565b811461052f575f5ffd5b50565b5f815190506105408161051c565b92915050565b5f6020828403121561055b5761055a6103e7565b5b5f61056884828501610532565b91505092915050565b7f46617563657420456d70747921000000000000000000000000000000000000005f82015250565b5f6105a5600d836104a4565b91506105b082610571565b602082019050919050565b5f6020820190508181035f8301526105d281610599565b9050919050565b5f6040820190506105ec5f8301856103bf565b6105f9602083018461047c565b9392505050565b61060981610440565b8114610613575f5ffd5b50565b5f8151905061062481610600565b92915050565b5f6020828403121561063f5761063e6103e7565b5b5f61064c84828501610616565b9150509291505056fea2646970667358221220930e40cb9807c7413e71534cef311c03e218fe7408c6ebe3d5b61931b8be4d5064736f6c63430008220033","sourceMap":"2089:1074:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2612:549;;;:::i;:::-;;2181:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2238:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2112:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2612:549;2665:16;:28;2682:10;2665:28;;;;;;;;;;;;;;;;;;;;;;;;;2664:29;2656:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:12;2790:13;;;;;;;;;;;2768:36;;2884:13;;2850:5;:15;;;2874:4;2850:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;2842:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2945:5;:14;;;2960:10;2972:13;;2945:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3042:4;3011:16;:28;3028:10;3011:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;3115:13;;3103:10;3093:36;;;;;;;;;;;;2646:515;2612:549::o;2181:28::-;;;;;;;;;;;;;:::o;2238:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2112:34::-;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:90::-;1562:7;1605:5;1598:13;1591:21;1580:32;;1528:90;;;:::o;1624:109::-;1705:21;1720:5;1705:21;:::i;:::-;1700:3;1693:34;1624:109;;:::o;1739:210::-;1826:4;1864:2;1853:9;1849:18;1841:26;;1877:65;1939:1;1928:9;1924:17;1915:6;1877:65;:::i;:::-;1739:210;;;;:::o;1955:77::-;1992:7;2021:5;2010:16;;1955:77;;;:::o;2038:118::-;2125:24;2143:5;2125:24;:::i;:::-;2120:3;2113:37;2038:118;;:::o;2162:222::-;2255:4;2293:2;2282:9;2278:18;2270:26;;2306:71;2374:1;2363:9;2359:17;2350:6;2306:71;:::i;:::-;2162:222;;;;:::o;2390:169::-;2474:11;2508:6;2503:3;2496:19;2548:4;2543:3;2539:14;2524:29;;2390:169;;;;:::o;2565:179::-;2705:31;2701:1;2693:6;2689:14;2682:55;2565:179;:::o;2750:366::-;2892:3;2913:67;2977:2;2972:3;2913:67;:::i;:::-;2906:74;;2989:93;3078:3;2989:93;:::i;:::-;3107:2;3102:3;3098:12;3091:19;;2750:366;;;:::o;3122:419::-;3288:4;3326:2;3315:9;3311:18;3303:26;;3375:9;3369:4;3365:20;3361:1;3350:9;3346:17;3339:47;3403:131;3529:4;3403:131;:::i;:::-;3395:139;;3122:419;;;:::o;3547:122::-;3620:24;3638:5;3620:24;:::i;:::-;3613:5;3610:35;3600:63;;3659:1;3656;3649:12;3600:63;3547:122;:::o;3675:143::-;3732:5;3763:6;3757:13;3748:22;;3779:33;3806:5;3779:33;:::i;:::-;3675:143;;;;:::o;3824:351::-;3894:6;3943:2;3931:9;3922:7;3918:23;3914:32;3911:119;;;3949:79;;:::i;:::-;3911:119;4069:1;4094:64;4150:7;4141:6;4130:9;4126:22;4094:64;:::i;:::-;4084:74;;4040:128;3824:351;;;;:::o;4181:163::-;4321:15;4317:1;4309:6;4305:14;4298:39;4181:163;:::o;4350:366::-;4492:3;4513:67;4577:2;4572:3;4513:67;:::i;:::-;4506:74;;4589:93;4678:3;4589:93;:::i;:::-;4707:2;4702:3;4698:12;4691:19;;4350:366;;;:::o;4722:419::-;4888:4;4926:2;4915:9;4911:18;4903:26;;4975:9;4969:4;4965:20;4961:1;4950:9;4946:17;4939:47;5003:131;5129:4;5003:131;:::i;:::-;4995:139;;4722:419;;;:::o;5147:332::-;5268:4;5306:2;5295:9;5291:18;5283:26;;5319:71;5387:1;5376:9;5372:17;5363:6;5319:71;:::i;:::-;5400:72;5468:2;5457:9;5453:18;5444:6;5400:72;:::i;:::-;5147:332;;;;;:::o;5485:116::-;5555:21;5570:5;5555:21;:::i;:::-;5548:5;5545:32;5535:60;;5591:1;5588;5581:12;5535:60;5485:116;:::o;5607:137::-;5661:5;5692:6;5686:13;5677:22;;5708:30;5732:5;5708:30;:::i;:::-;5607:137;;;;:::o;5750:345::-;5817:6;5866:2;5854:9;5845:7;5841:23;5837:32;5834:119;;;5872:79;;:::i;:::-;5834:119;5992:1;6017:61;6070:7;6061:6;6050:9;6046:22;6017:61;:::i;:::-;6007:71;;5963:125;5750:345;;;;:::o","linkReferences":{}},"methodIdentifiers":{"amountAllowed()":"9ad2cd14","requestTokens()":"359cf2b7","requestedAddress(address)":"5e33dba9","tokenContract()":"55a373d6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"Receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"SendToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"amountAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"requestedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/32_Faucet/Faucet.sol\":\"Faucet\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/32_Faucet/Faucet.sol\":{\"keccak256\":\"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7\",\"dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh\"]},\"src/32_Faucet/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"Receiver","type":"address","indexed":true},{"internalType":"uint256","name":"Amount","type":"uint256","indexed":true}],"type":"event","name":"SendToken","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"amountAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"requestTokens"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"requestedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tokenContract","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/32_Faucet/Faucet.sol":"Faucet"},"evmVersion":"prague","libraries":{}},"sources":{"src/32_Faucet/Faucet.sol":{"keccak256":"0x525d69d84effe7e28dc08c03218adf3aaeae1993c7d693777f64a05654686d36","urls":["bzz-raw://c119005a8de32c1674287930a1a7dff3835a006855e5ab53f894e984456d71d7","dweb:/ipfs/QmfYddgUp3fNX4KKwk9a39w3a9AQhs6SfkZi5WuQQvTBmh"],"license":"MIT"},"src/32_Faucet/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":74} \ No newline at end of file diff --git a/out/Frontrun.sol/FreeMint.json b/out/Frontrun.sol/FreeMint.json index 1119eb64..f5a9871d 100644 --- a/out/Frontrun.sol/FreeMint.json +++ b/out/Frontrun.sol/FreeMint.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600d81526020017f46726565204d696e74204e4654000000000000000000000000000000000000008152506040518060400160405280600881526020017f467265654d696e74000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b611de7806103cc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610246578063b88d4fde14610262578063c87b56dd1461027e578063e985e9c5146102ae576100e8565b80636352211e146101c857806370a08231146101f857806395d89b4114610228576100e8565b8063095ea7b3116100c6578063095ea7b31461016a5780631249c58b1461018657806323b872dd1461019057806342842e0e146101ac576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b6101066004803603810190610101919061161e565b6102de565b6040516101139190611663565b60405180910390f35b6101246103bf565b60405161013191906116ec565b60405180910390f35b610154600480360381019061014f919061173f565b61044e565b60405161016191906117a9565b60405180910390f35b610184600480360381019061017f91906117ec565b610469565b005b61018e61047f565b005b6101aa60048036038101906101a5919061182a565b6104a4565b005b6101c660048036038101906101c1919061182a565b6105a3565b005b6101e260048036038101906101dd919061173f565b6105c2565b6040516101ef91906117a9565b60405180910390f35b610212600480360381019061020d919061187a565b6105d3565b60405161021f91906118b4565b60405180910390f35b610230610689565b60405161023d91906116ec565b60405180910390f35b610260600480360381019061025b91906118f7565b610719565b005b61027c60048036038101906102779190611a61565b61072f565b005b6102986004803603810190610293919061173f565b610754565b6040516102a591906116ec565b60405180910390f35b6102c860048036038101906102c39190611ae1565b6107ba565b6040516102d59190611663565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103b857506103b782610848565b5b9050919050565b60605f80546103cd90611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f990611b4c565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f610458826108b1565b5061046282610937565b9050919050565b61047b8282610476610970565b610977565b5050565b61048b33600654610989565b60065f81548092919061049d90611ba9565b9190505550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610514575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161050b91906117a9565b60405180910390fd5b5f6105278383610522610970565b610a7c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461059d578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161059493929190611bf0565b60405180910390fd5b50505050565b6105bd83838360405180602001604052805f81525061072f565b505050565b5f6105cc826108b1565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610644575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161063b91906117a9565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461069890611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490611b4c565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b61072b610724610970565b8383610c87565b5050565b61073a8484846104a4565b61074e610745610970565b85858585610e60565b50505050565b606061075f826108b1565b505f61076961100c565b90505f8151116107875760405180602001604052805f8152506107b2565b8061079184611022565b6040516020016107a2929190611c5f565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108bc836110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361092e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161092591906118b4565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109848383836001611125565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109f091906117a9565b60405180910390fd5b5f610a0583835f610a7c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a77575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610a6e91906117a9565b60405180910390fd5b505050565b5f5f610a87846110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac857610ac78184866112e4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5357610b075f855f5f611125565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bd257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf7575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610cee91906117a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6757816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d5e91906117a9565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e539190611663565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611005578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ebe9493929190611cd4565b6020604051808303815f875af1925050508015610ef957506040513d601f19601f82011682018060405250810190610ef69190611d32565b60015b610f7a573d805f8114610f27576040519150601f19603f3d011682016040523d82523d5f602084013e610f2c565b606091505b505f815103610f7257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f6991906117a9565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461100357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ffa91906117a9565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611030846113a7565b0190505f8167ffffffffffffffff81111561104e5761104d61193d565b5b6040519080825280601f01601f1916602001820160405280156110805781602001600182028036833780820191505090505b5090505f82602083010190505b6001156110e1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816110d6576110d5611d5d565b5b0494505f850361108d575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061115d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561128f575f61116c846108b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111d657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e957506111e781846107ba565b155b1561122b57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161122291906117a9565b60405180910390fd5b811561128d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6112ef8383836114f8565b6113a2575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136357806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161135a91906118b4565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611399929190611d8a565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611403577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816113f9576113f8611d5d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611440576d04ee2d6d415b85acef8100000000838161143657611435611d5d565b5b0492506020810190505b662386f26fc10000831061146f57662386f26fc10000838161146557611464611d5d565b5b0492506010810190505b6305f5e1008310611498576305f5e100838161148e5761148d611d5d565b5b0492506008810190505b61271083106114bd5761271083816114b3576114b2611d5d565b5b0492506004810190505b606483106114e057606483816114d6576114d5611d5d565b5b0492506002810190505b600a83106114ef576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115af57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611570575061156f84846107ba565b5b806115ae57508273ffffffffffffffffffffffffffffffffffffffff1661159683610937565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115fd816115c9565b8114611607575f5ffd5b50565b5f81359050611618816115f4565b92915050565b5f60208284031215611633576116326115c1565b5b5f6116408482850161160a565b91505092915050565b5f8115159050919050565b61165d81611649565b82525050565b5f6020820190506116765f830184611654565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116be8261167c565b6116c88185611686565b93506116d8818560208601611696565b6116e1816116a4565b840191505092915050565b5f6020820190508181035f83015261170481846116b4565b905092915050565b5f819050919050565b61171e8161170c565b8114611728575f5ffd5b50565b5f8135905061173981611715565b92915050565b5f60208284031215611754576117536115c1565b5b5f6117618482850161172b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117938261176a565b9050919050565b6117a381611789565b82525050565b5f6020820190506117bc5f83018461179a565b92915050565b6117cb81611789565b81146117d5575f5ffd5b50565b5f813590506117e6816117c2565b92915050565b5f5f60408385031215611802576118016115c1565b5b5f61180f858286016117d8565b92505060206118208582860161172b565b9150509250929050565b5f5f5f60608486031215611841576118406115c1565b5b5f61184e868287016117d8565b935050602061185f868287016117d8565b92505060406118708682870161172b565b9150509250925092565b5f6020828403121561188f5761188e6115c1565b5b5f61189c848285016117d8565b91505092915050565b6118ae8161170c565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b6118d681611649565b81146118e0575f5ffd5b50565b5f813590506118f1816118cd565b92915050565b5f5f6040838503121561190d5761190c6115c1565b5b5f61191a858286016117d8565b925050602061192b858286016118e3565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611973826116a4565b810181811067ffffffffffffffff821117156119925761199161193d565b5b80604052505050565b5f6119a46115b8565b90506119b0828261196a565b919050565b5f67ffffffffffffffff8211156119cf576119ce61193d565b5b6119d8826116a4565b9050602081019050919050565b828183375f83830152505050565b5f611a05611a00846119b5565b61199b565b905082815260208101848484011115611a2157611a20611939565b5b611a2c8482856119e5565b509392505050565b5f82601f830112611a4857611a47611935565b5b8135611a588482602086016119f3565b91505092915050565b5f5f5f5f60808587031215611a7957611a786115c1565b5b5f611a86878288016117d8565b9450506020611a97878288016117d8565b9350506040611aa88782880161172b565b925050606085013567ffffffffffffffff811115611ac957611ac86115c5565b5b611ad587828801611a34565b91505092959194509250565b5f5f60408385031215611af757611af66115c1565b5b5f611b04858286016117d8565b9250506020611b15858286016117d8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6357607f821691505b602082108103611b7657611b75611b1f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bb38261170c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611be557611be4611b7c565b5b600182019050919050565b5f606082019050611c035f83018661179a565b611c1060208301856118a5565b611c1d604083018461179a565b949350505050565b5f81905092915050565b5f611c398261167c565b611c438185611c25565b9350611c53818560208601611696565b80840191505092915050565b5f611c6a8285611c2f565b9150611c768284611c2f565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ca682611c82565b611cb08185611c8c565b9350611cc0818560208601611696565b611cc9816116a4565b840191505092915050565b5f608082019050611ce75f83018761179a565b611cf4602083018661179a565b611d0160408301856118a5565b8181036060830152611d138184611c9c565b905095945050505050565b5f81519050611d2c816115f4565b92915050565b5f60208284031215611d4757611d466115c1565b5b5f611d5484828501611d1e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611d9d5f83018561179a565b611daa60208301846118a5565b939250505056fea2646970667358221220f77c9a9932798645dea61c5607d8d07d701c3e1ddd51c4f22aac82c333dafed064736f6c63430008220033","sourceMap":"172:301:137:-:0;;;291:51;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;172:301:137;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;172:301:137:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610246578063b88d4fde14610262578063c87b56dd1461027e578063e985e9c5146102ae576100e8565b80636352211e146101c857806370a08231146101f857806395d89b4114610228576100e8565b8063095ea7b3116100c6578063095ea7b31461016a5780631249c58b1461018657806323b872dd1461019057806342842e0e146101ac576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b6101066004803603810190610101919061161e565b6102de565b6040516101139190611663565b60405180910390f35b6101246103bf565b60405161013191906116ec565b60405180910390f35b610154600480360381019061014f919061173f565b61044e565b60405161016191906117a9565b60405180910390f35b610184600480360381019061017f91906117ec565b610469565b005b61018e61047f565b005b6101aa60048036038101906101a5919061182a565b6104a4565b005b6101c660048036038101906101c1919061182a565b6105a3565b005b6101e260048036038101906101dd919061173f565b6105c2565b6040516101ef91906117a9565b60405180910390f35b610212600480360381019061020d919061187a565b6105d3565b60405161021f91906118b4565b60405180910390f35b610230610689565b60405161023d91906116ec565b60405180910390f35b610260600480360381019061025b91906118f7565b610719565b005b61027c60048036038101906102779190611a61565b61072f565b005b6102986004803603810190610293919061173f565b610754565b6040516102a591906116ec565b60405180910390f35b6102c860048036038101906102c39190611ae1565b6107ba565b6040516102d59190611663565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103b857506103b782610848565b5b9050919050565b60605f80546103cd90611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f990611b4c565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f610458826108b1565b5061046282610937565b9050919050565b61047b8282610476610970565b610977565b5050565b61048b33600654610989565b60065f81548092919061049d90611ba9565b9190505550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610514575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161050b91906117a9565b60405180910390fd5b5f6105278383610522610970565b610a7c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461059d578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161059493929190611bf0565b60405180910390fd5b50505050565b6105bd83838360405180602001604052805f81525061072f565b505050565b5f6105cc826108b1565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610644575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161063b91906117a9565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461069890611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490611b4c565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b61072b610724610970565b8383610c87565b5050565b61073a8484846104a4565b61074e610745610970565b85858585610e60565b50505050565b606061075f826108b1565b505f61076961100c565b90505f8151116107875760405180602001604052805f8152506107b2565b8061079184611022565b6040516020016107a2929190611c5f565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108bc836110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361092e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161092591906118b4565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109848383836001611125565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109f091906117a9565b60405180910390fd5b5f610a0583835f610a7c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a77575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610a6e91906117a9565b60405180910390fd5b505050565b5f5f610a87846110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac857610ac78184866112e4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5357610b075f855f5f611125565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bd257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf7575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610cee91906117a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6757816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d5e91906117a9565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e539190611663565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611005578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ebe9493929190611cd4565b6020604051808303815f875af1925050508015610ef957506040513d601f19601f82011682018060405250810190610ef69190611d32565b60015b610f7a573d805f8114610f27576040519150601f19603f3d011682016040523d82523d5f602084013e610f2c565b606091505b505f815103610f7257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f6991906117a9565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461100357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ffa91906117a9565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611030846113a7565b0190505f8167ffffffffffffffff81111561104e5761104d61193d565b5b6040519080825280601f01601f1916602001820160405280156110805781602001600182028036833780820191505090505b5090505f82602083010190505b6001156110e1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816110d6576110d5611d5d565b5b0494505f850361108d575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061115d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561128f575f61116c846108b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111d657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e957506111e781846107ba565b155b1561122b57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161122291906117a9565b60405180910390fd5b811561128d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6112ef8383836114f8565b6113a2575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136357806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161135a91906118b4565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611399929190611d8a565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611403577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816113f9576113f8611d5d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611440576d04ee2d6d415b85acef8100000000838161143657611435611d5d565b5b0492506020810190505b662386f26fc10000831061146f57662386f26fc10000838161146557611464611d5d565b5b0492506010810190505b6305f5e1008310611498576305f5e100838161148e5761148d611d5d565b5b0492506008810190505b61271083106114bd5761271083816114b3576114b2611d5d565b5b0492506004810190505b606483106114e057606483816114d6576114d5611d5d565b5b0492506002810190505b600a83106114ef576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115af57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611570575061156f84846107ba565b5b806115ae57508273ffffffffffffffffffffffffffffffffffffffff1661159683610937565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115fd816115c9565b8114611607575f5ffd5b50565b5f81359050611618816115f4565b92915050565b5f60208284031215611633576116326115c1565b5b5f6116408482850161160a565b91505092915050565b5f8115159050919050565b61165d81611649565b82525050565b5f6020820190506116765f830184611654565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116be8261167c565b6116c88185611686565b93506116d8818560208601611696565b6116e1816116a4565b840191505092915050565b5f6020820190508181035f83015261170481846116b4565b905092915050565b5f819050919050565b61171e8161170c565b8114611728575f5ffd5b50565b5f8135905061173981611715565b92915050565b5f60208284031215611754576117536115c1565b5b5f6117618482850161172b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117938261176a565b9050919050565b6117a381611789565b82525050565b5f6020820190506117bc5f83018461179a565b92915050565b6117cb81611789565b81146117d5575f5ffd5b50565b5f813590506117e6816117c2565b92915050565b5f5f60408385031215611802576118016115c1565b5b5f61180f858286016117d8565b92505060206118208582860161172b565b9150509250929050565b5f5f5f60608486031215611841576118406115c1565b5b5f61184e868287016117d8565b935050602061185f868287016117d8565b92505060406118708682870161172b565b9150509250925092565b5f6020828403121561188f5761188e6115c1565b5b5f61189c848285016117d8565b91505092915050565b6118ae8161170c565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b6118d681611649565b81146118e0575f5ffd5b50565b5f813590506118f1816118cd565b92915050565b5f5f6040838503121561190d5761190c6115c1565b5b5f61191a858286016117d8565b925050602061192b858286016118e3565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611973826116a4565b810181811067ffffffffffffffff821117156119925761199161193d565b5b80604052505050565b5f6119a46115b8565b90506119b0828261196a565b919050565b5f67ffffffffffffffff8211156119cf576119ce61193d565b5b6119d8826116a4565b9050602081019050919050565b828183375f83830152505050565b5f611a05611a00846119b5565b61199b565b905082815260208101848484011115611a2157611a20611939565b5b611a2c8482856119e5565b509392505050565b5f82601f830112611a4857611a47611935565b5b8135611a588482602086016119f3565b91505092915050565b5f5f5f5f60808587031215611a7957611a786115c1565b5b5f611a86878288016117d8565b9450506020611a97878288016117d8565b9350506040611aa88782880161172b565b925050606085013567ffffffffffffffff811115611ac957611ac86115c5565b5b611ad587828801611a34565b91505092959194509250565b5f5f60408385031215611af757611af66115c1565b5b5f611b04858286016117d8565b9250506020611b15858286016117d8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6357607f821691505b602082108103611b7657611b75611b1f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bb38261170c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611be557611be4611b7c565b5b600182019050919050565b5f606082019050611c035f83018661179a565b611c1060208301856118a5565b611c1d604083018461179a565b949350505050565b5f81905092915050565b5f611c398261167c565b611c438185611c25565b9350611c53818560208601611696565b80840191505092915050565b5f611c6a8285611c2f565b9150611c768284611c2f565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ca682611c82565b611cb08185611c8c565b9350611cc0818560208601611696565b611cc9816116a4565b840191505092915050565b5f608082019050611ce75f83018761179a565b611cf4602083018661179a565b611d0160408301856118a5565b8181036060830152611d138184611c9c565b905095945050505050565b5f81519050611d2c816115f4565b92915050565b5f60208284031215611d4757611d466115c1565b5b5f611d5484828501611d1e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611d9d5f83018561179a565b611daa60208301846118a5565b939250505056fea2646970667358221220f77c9a9932798645dea61c5607d8d07d701c3e1ddd51c4f22aac82c333dafed064736f6c63430008220033","sourceMap":"172:301:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;368:103:137;;;:::i;:::-;;3852:578:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2103:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;368:103:137:-;403:30;409:10;421:11;;403:5;:30::i;:::-;451:11;;:13;;;;;;;;;:::i;:::-;;;;;;368:103::o;3852:578:25:-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;2103:118::-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;9624:327::-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;5378:115:25:-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;6047:272:25:-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:180::-;10926:77;10923:1;10916:88;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11064:233;11103:3;11126:24;11144:5;11126:24;:::i;:::-;11117:33;;11172:66;11165:5;11162:77;11159:103;;11242:18;;:::i;:::-;11159:103;11289:1;11282:5;11278:13;11271:20;;11064:233;;;:::o;11303:442::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11584:72;11652:2;11641:9;11637:18;11628:6;11584:72;:::i;:::-;11666;11734:2;11723:9;11719:18;11710:6;11666:72;:::i;:::-;11303:442;;;;;;:::o;11751:148::-;11853:11;11890:3;11875:18;;11751:148;;;;:::o;11905:390::-;12011:3;12039:39;12072:5;12039:39;:::i;:::-;12094:89;12176:6;12171:3;12094:89;:::i;:::-;12087:96;;12192:65;12250:6;12245:3;12238:4;12231:5;12227:16;12192:65;:::i;:::-;12282:6;12277:3;12273:16;12266:23;;12015:280;11905:390;;;;:::o;12301:435::-;12481:3;12503:95;12594:3;12585:6;12503:95;:::i;:::-;12496:102;;12615:95;12706:3;12697:6;12615:95;:::i;:::-;12608:102;;12727:3;12720:10;;12301:435;;;;;:::o;12742:98::-;12793:6;12827:5;12821:12;12811:22;;12742:98;;;:::o;12846:168::-;12929:11;12963:6;12958:3;12951:19;13003:4;12998:3;12994:14;12979:29;;12846:168;;;;:::o;13020:373::-;13106:3;13134:38;13166:5;13134:38;:::i;:::-;13188:70;13251:6;13246:3;13188:70;:::i;:::-;13181:77;;13267:65;13325:6;13320:3;13313:4;13306:5;13302:16;13267:65;:::i;:::-;13357:29;13379:6;13357:29;:::i;:::-;13352:3;13348:39;13341:46;;13110:283;13020:373;;;;:::o;13399:640::-;13594:4;13632:3;13621:9;13617:19;13609:27;;13646:71;13714:1;13703:9;13699:17;13690:6;13646:71;:::i;:::-;13727:72;13795:2;13784:9;13780:18;13771:6;13727:72;:::i;:::-;13809;13877:2;13866:9;13862:18;13853:6;13809:72;:::i;:::-;13928:9;13922:4;13918:20;13913:2;13902:9;13898:18;13891:48;13956:76;14027:4;14018:6;13956:76;:::i;:::-;13948:84;;13399:640;;;;;;;:::o;14045:141::-;14101:5;14132:6;14126:13;14117:22;;14148:32;14174:5;14148:32;:::i;:::-;14045:141;;;;:::o;14192:349::-;14261:6;14310:2;14298:9;14289:7;14285:23;14281:32;14278:119;;;14316:79;;:::i;:::-;14278:119;14436:1;14461:63;14516:7;14507:6;14496:9;14492:22;14461:63;:::i;:::-;14451:73;;14407:127;14192:349;;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:332;14854:4;14892:2;14881:9;14877:18;14869:26;;14905:71;14973:1;14962:9;14958:17;14949:6;14905:71;:::i;:::-;14986:72;15054:2;15043:9;15039:18;15030:6;14986:72;:::i;:::-;14733:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint()":"1249c58b","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S11_Frontrun/Frontrun.sol\":\"FreeMint\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S11_Frontrun/Frontrun.sol\":{\"keccak256\":\"0x7893ef0fdec8ebc391557a367acf3b099edbc4fc8e38cceb106c4faa31d68beb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2bf1a7dc86a69f6f9bbd565275fd7ab5a42ca3f77e811e7f25957d4015c1a39\",\"dweb:/ipfs/QmSr7UwxiqEigrpsrov8HvsNTuwiM2aCf83r4wbi6KKqNK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S11_Frontrun/Frontrun.sol":"FreeMint"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S11_Frontrun/Frontrun.sol":{"keccak256":"0x7893ef0fdec8ebc391557a367acf3b099edbc4fc8e38cceb106c4faa31d68beb","urls":["bzz-raw://d2bf1a7dc86a69f6f9bbd565275fd7ab5a42ca3f77e811e7f25957d4015c1a39","dweb:/ipfs/QmSr7UwxiqEigrpsrov8HvsNTuwiM2aCf83r4wbi6KKqNK"],"license":"MIT"}},"version":1},"id":137} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600d81526020017f46726565204d696e74204e4654000000000000000000000000000000000000008152506040518060400160405280600881526020017f467265654d696e74000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b611de7806103cc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610246578063b88d4fde14610262578063c87b56dd1461027e578063e985e9c5146102ae576100e8565b80636352211e146101c857806370a08231146101f857806395d89b4114610228576100e8565b8063095ea7b3116100c6578063095ea7b31461016a5780631249c58b1461018657806323b872dd1461019057806342842e0e146101ac576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b6101066004803603810190610101919061161e565b6102de565b6040516101139190611663565b60405180910390f35b6101246103bf565b60405161013191906116ec565b60405180910390f35b610154600480360381019061014f919061173f565b61044e565b60405161016191906117a9565b60405180910390f35b610184600480360381019061017f91906117ec565b610469565b005b61018e61047f565b005b6101aa60048036038101906101a5919061182a565b6104a4565b005b6101c660048036038101906101c1919061182a565b6105a3565b005b6101e260048036038101906101dd919061173f565b6105c2565b6040516101ef91906117a9565b60405180910390f35b610212600480360381019061020d919061187a565b6105d3565b60405161021f91906118b4565b60405180910390f35b610230610689565b60405161023d91906116ec565b60405180910390f35b610260600480360381019061025b91906118f7565b610719565b005b61027c60048036038101906102779190611a61565b61072f565b005b6102986004803603810190610293919061173f565b610754565b6040516102a591906116ec565b60405180910390f35b6102c860048036038101906102c39190611ae1565b6107ba565b6040516102d59190611663565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103b857506103b782610848565b5b9050919050565b60605f80546103cd90611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f990611b4c565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f610458826108b1565b5061046282610937565b9050919050565b61047b8282610476610970565b610977565b5050565b61048b33600654610989565b60065f81548092919061049d90611ba9565b9190505550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610514575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161050b91906117a9565b60405180910390fd5b5f6105278383610522610970565b610a7c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461059d578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161059493929190611bf0565b60405180910390fd5b50505050565b6105bd83838360405180602001604052805f81525061072f565b505050565b5f6105cc826108b1565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610644575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161063b91906117a9565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461069890611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490611b4c565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b61072b610724610970565b8383610c87565b5050565b61073a8484846104a4565b61074e610745610970565b85858585610e60565b50505050565b606061075f826108b1565b505f61076961100c565b90505f8151116107875760405180602001604052805f8152506107b2565b8061079184611022565b6040516020016107a2929190611c5f565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108bc836110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361092e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161092591906118b4565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109848383836001611125565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109f091906117a9565b60405180910390fd5b5f610a0583835f610a7c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a77575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610a6e91906117a9565b60405180910390fd5b505050565b5f5f610a87846110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac857610ac78184866112e4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5357610b075f855f5f611125565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bd257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf7575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610cee91906117a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6757816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d5e91906117a9565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e539190611663565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611005578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ebe9493929190611cd4565b6020604051808303815f875af1925050508015610ef957506040513d601f19601f82011682018060405250810190610ef69190611d32565b60015b610f7a573d805f8114610f27576040519150601f19603f3d011682016040523d82523d5f602084013e610f2c565b606091505b505f815103610f7257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f6991906117a9565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461100357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ffa91906117a9565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611030846113a7565b0190505f8167ffffffffffffffff81111561104e5761104d61193d565b5b6040519080825280601f01601f1916602001820160405280156110805781602001600182028036833780820191505090505b5090505f82602083010190505b6001156110e1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816110d6576110d5611d5d565b5b0494505f850361108d575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061115d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561128f575f61116c846108b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111d657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e957506111e781846107ba565b155b1561122b57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161122291906117a9565b60405180910390fd5b811561128d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6112ef8383836114f8565b6113a2575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136357806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161135a91906118b4565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611399929190611d8a565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611403577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816113f9576113f8611d5d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611440576d04ee2d6d415b85acef8100000000838161143657611435611d5d565b5b0492506020810190505b662386f26fc10000831061146f57662386f26fc10000838161146557611464611d5d565b5b0492506010810190505b6305f5e1008310611498576305f5e100838161148e5761148d611d5d565b5b0492506008810190505b61271083106114bd5761271083816114b3576114b2611d5d565b5b0492506004810190505b606483106114e057606483816114d6576114d5611d5d565b5b0492506002810190505b600a83106114ef576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115af57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611570575061156f84846107ba565b5b806115ae57508273ffffffffffffffffffffffffffffffffffffffff1661159683610937565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115fd816115c9565b8114611607575f5ffd5b50565b5f81359050611618816115f4565b92915050565b5f60208284031215611633576116326115c1565b5b5f6116408482850161160a565b91505092915050565b5f8115159050919050565b61165d81611649565b82525050565b5f6020820190506116765f830184611654565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116be8261167c565b6116c88185611686565b93506116d8818560208601611696565b6116e1816116a4565b840191505092915050565b5f6020820190508181035f83015261170481846116b4565b905092915050565b5f819050919050565b61171e8161170c565b8114611728575f5ffd5b50565b5f8135905061173981611715565b92915050565b5f60208284031215611754576117536115c1565b5b5f6117618482850161172b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117938261176a565b9050919050565b6117a381611789565b82525050565b5f6020820190506117bc5f83018461179a565b92915050565b6117cb81611789565b81146117d5575f5ffd5b50565b5f813590506117e6816117c2565b92915050565b5f5f60408385031215611802576118016115c1565b5b5f61180f858286016117d8565b92505060206118208582860161172b565b9150509250929050565b5f5f5f60608486031215611841576118406115c1565b5b5f61184e868287016117d8565b935050602061185f868287016117d8565b92505060406118708682870161172b565b9150509250925092565b5f6020828403121561188f5761188e6115c1565b5b5f61189c848285016117d8565b91505092915050565b6118ae8161170c565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b6118d681611649565b81146118e0575f5ffd5b50565b5f813590506118f1816118cd565b92915050565b5f5f6040838503121561190d5761190c6115c1565b5b5f61191a858286016117d8565b925050602061192b858286016118e3565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611973826116a4565b810181811067ffffffffffffffff821117156119925761199161193d565b5b80604052505050565b5f6119a46115b8565b90506119b0828261196a565b919050565b5f67ffffffffffffffff8211156119cf576119ce61193d565b5b6119d8826116a4565b9050602081019050919050565b828183375f83830152505050565b5f611a05611a00846119b5565b61199b565b905082815260208101848484011115611a2157611a20611939565b5b611a2c8482856119e5565b509392505050565b5f82601f830112611a4857611a47611935565b5b8135611a588482602086016119f3565b91505092915050565b5f5f5f5f60808587031215611a7957611a786115c1565b5b5f611a86878288016117d8565b9450506020611a97878288016117d8565b9350506040611aa88782880161172b565b925050606085013567ffffffffffffffff811115611ac957611ac86115c5565b5b611ad587828801611a34565b91505092959194509250565b5f5f60408385031215611af757611af66115c1565b5b5f611b04858286016117d8565b9250506020611b15858286016117d8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6357607f821691505b602082108103611b7657611b75611b1f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bb38261170c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611be557611be4611b7c565b5b600182019050919050565b5f606082019050611c035f83018661179a565b611c1060208301856118a5565b611c1d604083018461179a565b949350505050565b5f81905092915050565b5f611c398261167c565b611c438185611c25565b9350611c53818560208601611696565b80840191505092915050565b5f611c6a8285611c2f565b9150611c768284611c2f565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ca682611c82565b611cb08185611c8c565b9350611cc0818560208601611696565b611cc9816116a4565b840191505092915050565b5f608082019050611ce75f83018761179a565b611cf4602083018661179a565b611d0160408301856118a5565b8181036060830152611d138184611c9c565b905095945050505050565b5f81519050611d2c816115f4565b92915050565b5f60208284031215611d4757611d466115c1565b5b5f611d5484828501611d1e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611d9d5f83018561179a565b611daa60208301846118a5565b939250505056fea2646970667358221220f77c9a9932798645dea61c5607d8d07d701c3e1ddd51c4f22aac82c333dafed064736f6c63430008220033","sourceMap":"172:301:131:-:0;;;291:51;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;172:301:131;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;172:301:131:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c80636352211e1161008a578063a22cb46511610064578063a22cb46514610246578063b88d4fde14610262578063c87b56dd1461027e578063e985e9c5146102ae576100e8565b80636352211e146101c857806370a08231146101f857806395d89b4114610228576100e8565b8063095ea7b3116100c6578063095ea7b31461016a5780631249c58b1461018657806323b872dd1461019057806342842e0e146101ac576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b6101066004803603810190610101919061161e565b6102de565b6040516101139190611663565b60405180910390f35b6101246103bf565b60405161013191906116ec565b60405180910390f35b610154600480360381019061014f919061173f565b61044e565b60405161016191906117a9565b60405180910390f35b610184600480360381019061017f91906117ec565b610469565b005b61018e61047f565b005b6101aa60048036038101906101a5919061182a565b6104a4565b005b6101c660048036038101906101c1919061182a565b6105a3565b005b6101e260048036038101906101dd919061173f565b6105c2565b6040516101ef91906117a9565b60405180910390f35b610212600480360381019061020d919061187a565b6105d3565b60405161021f91906118b4565b60405180910390f35b610230610689565b60405161023d91906116ec565b60405180910390f35b610260600480360381019061025b91906118f7565b610719565b005b61027c60048036038101906102779190611a61565b61072f565b005b6102986004803603810190610293919061173f565b610754565b6040516102a591906116ec565b60405180910390f35b6102c860048036038101906102c39190611ae1565b6107ba565b6040516102d59190611663565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103b857506103b782610848565b5b9050919050565b60605f80546103cd90611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546103f990611b4c565b80156104445780601f1061041b57610100808354040283529160200191610444565b820191905f5260205f20905b81548152906001019060200180831161042757829003601f168201915b5050505050905090565b5f610458826108b1565b5061046282610937565b9050919050565b61047b8282610476610970565b610977565b5050565b61048b33600654610989565b60065f81548092919061049d90611ba9565b9190505550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610514575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161050b91906117a9565b60405180910390fd5b5f6105278383610522610970565b610a7c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461059d578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161059493929190611bf0565b60405180910390fd5b50505050565b6105bd83838360405180602001604052805f81525061072f565b505050565b5f6105cc826108b1565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610644575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161063b91906117a9565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461069890611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490611b4c565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b5050505050905090565b61072b610724610970565b8383610c87565b5050565b61073a8484846104a4565b61074e610745610970565b85858585610e60565b50505050565b606061075f826108b1565b505f61076961100c565b90505f8151116107875760405180602001604052805f8152506107b2565b8061079184611022565b6040516020016107a2929190611c5f565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108bc836110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361092e57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161092591906118b4565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109848383836001611125565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016109f091906117a9565b60405180910390fd5b5f610a0583835f610a7c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a77575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401610a6e91906117a9565b60405180910390fd5b505050565b5f5f610a87846110ec565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac857610ac78184866112e4565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b5357610b075f855f5f611125565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bd257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf7575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610cee91906117a9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d6757816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d5e91906117a9565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e539190611663565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611005578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ebe9493929190611cd4565b6020604051808303815f875af1925050508015610ef957506040513d601f19601f82011682018060405250810190610ef69190611d32565b60015b610f7a573d805f8114610f27576040519150601f19603f3d011682016040523d82523d5f602084013e610f2c565b606091505b505f815103610f7257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f6991906117a9565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461100357836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ffa91906117a9565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611030846113a7565b0190505f8167ffffffffffffffff81111561104e5761104d61193d565b5b6040519080825280601f01601f1916602001820160405280156110805781602001600182028036833780820191505090505b5090505f82602083010190505b6001156110e1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816110d6576110d5611d5d565b5b0494505f850361108d575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061115d57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561128f575f61116c846108b1565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111d657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e957506111e781846107ba565b155b1561122b57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161122291906117a9565b60405180910390fd5b811561128d57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6112ef8383836114f8565b6113a2575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136357806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161135a91906118b4565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611399929190611d8a565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611403577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816113f9576113f8611d5d565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611440576d04ee2d6d415b85acef8100000000838161143657611435611d5d565b5b0492506020810190505b662386f26fc10000831061146f57662386f26fc10000838161146557611464611d5d565b5b0492506010810190505b6305f5e1008310611498576305f5e100838161148e5761148d611d5d565b5b0492506008810190505b61271083106114bd5761271083816114b3576114b2611d5d565b5b0492506004810190505b606483106114e057606483816114d6576114d5611d5d565b5b0492506002810190505b600a83106114ef576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115af57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611570575061156f84846107ba565b5b806115ae57508273ffffffffffffffffffffffffffffffffffffffff1661159683610937565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6115fd816115c9565b8114611607575f5ffd5b50565b5f81359050611618816115f4565b92915050565b5f60208284031215611633576116326115c1565b5b5f6116408482850161160a565b91505092915050565b5f8115159050919050565b61165d81611649565b82525050565b5f6020820190506116765f830184611654565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116be8261167c565b6116c88185611686565b93506116d8818560208601611696565b6116e1816116a4565b840191505092915050565b5f6020820190508181035f83015261170481846116b4565b905092915050565b5f819050919050565b61171e8161170c565b8114611728575f5ffd5b50565b5f8135905061173981611715565b92915050565b5f60208284031215611754576117536115c1565b5b5f6117618482850161172b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117938261176a565b9050919050565b6117a381611789565b82525050565b5f6020820190506117bc5f83018461179a565b92915050565b6117cb81611789565b81146117d5575f5ffd5b50565b5f813590506117e6816117c2565b92915050565b5f5f60408385031215611802576118016115c1565b5b5f61180f858286016117d8565b92505060206118208582860161172b565b9150509250929050565b5f5f5f60608486031215611841576118406115c1565b5b5f61184e868287016117d8565b935050602061185f868287016117d8565b92505060406118708682870161172b565b9150509250925092565b5f6020828403121561188f5761188e6115c1565b5b5f61189c848285016117d8565b91505092915050565b6118ae8161170c565b82525050565b5f6020820190506118c75f8301846118a5565b92915050565b6118d681611649565b81146118e0575f5ffd5b50565b5f813590506118f1816118cd565b92915050565b5f5f6040838503121561190d5761190c6115c1565b5b5f61191a858286016117d8565b925050602061192b858286016118e3565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611973826116a4565b810181811067ffffffffffffffff821117156119925761199161193d565b5b80604052505050565b5f6119a46115b8565b90506119b0828261196a565b919050565b5f67ffffffffffffffff8211156119cf576119ce61193d565b5b6119d8826116a4565b9050602081019050919050565b828183375f83830152505050565b5f611a05611a00846119b5565b61199b565b905082815260208101848484011115611a2157611a20611939565b5b611a2c8482856119e5565b509392505050565b5f82601f830112611a4857611a47611935565b5b8135611a588482602086016119f3565b91505092915050565b5f5f5f5f60808587031215611a7957611a786115c1565b5b5f611a86878288016117d8565b9450506020611a97878288016117d8565b9350506040611aa88782880161172b565b925050606085013567ffffffffffffffff811115611ac957611ac86115c5565b5b611ad587828801611a34565b91505092959194509250565b5f5f60408385031215611af757611af66115c1565b5b5f611b04858286016117d8565b9250506020611b15858286016117d8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6357607f821691505b602082108103611b7657611b75611b1f565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611bb38261170c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611be557611be4611b7c565b5b600182019050919050565b5f606082019050611c035f83018661179a565b611c1060208301856118a5565b611c1d604083018461179a565b949350505050565b5f81905092915050565b5f611c398261167c565b611c438185611c25565b9350611c53818560208601611696565b80840191505092915050565b5f611c6a8285611c2f565b9150611c768284611c2f565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ca682611c82565b611cb08185611c8c565b9350611cc0818560208601611696565b611cc9816116a4565b840191505092915050565b5f608082019050611ce75f83018761179a565b611cf4602083018661179a565b611d0160408301856118a5565b8181036060830152611d138184611c9c565b905095945050505050565b5f81519050611d2c816115f4565b92915050565b5f60208284031215611d4757611d466115c1565b5b5f611d5484828501611d1e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611d9d5f83018561179a565b611daa60208301846118a5565b939250505056fea2646970667358221220f77c9a9932798645dea61c5607d8d07d701c3e1ddd51c4f22aac82c333dafed064736f6c63430008220033","sourceMap":"172:301:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;368:103:131;;;:::i;:::-;;3852:578:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2103:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;368:103:131:-;403:30;409:10;421:11;;403:5;:30::i;:::-;451:11;;:13;;;;;;;;;:::i;:::-;;;;;;368:103::o;3852:578:25:-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;2103:118::-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;9624:327::-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;5378:115:25:-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;6047:272:25:-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:180::-;10926:77;10923:1;10916:88;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11064:233;11103:3;11126:24;11144:5;11126:24;:::i;:::-;11117:33;;11172:66;11165:5;11162:77;11159:103;;11242:18;;:::i;:::-;11159:103;11289:1;11282:5;11278:13;11271:20;;11064:233;;;:::o;11303:442::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11584:72;11652:2;11641:9;11637:18;11628:6;11584:72;:::i;:::-;11666;11734:2;11723:9;11719:18;11710:6;11666:72;:::i;:::-;11303:442;;;;;;:::o;11751:148::-;11853:11;11890:3;11875:18;;11751:148;;;;:::o;11905:390::-;12011:3;12039:39;12072:5;12039:39;:::i;:::-;12094:89;12176:6;12171:3;12094:89;:::i;:::-;12087:96;;12192:65;12250:6;12245:3;12238:4;12231:5;12227:16;12192:65;:::i;:::-;12282:6;12277:3;12273:16;12266:23;;12015:280;11905:390;;;;:::o;12301:435::-;12481:3;12503:95;12594:3;12585:6;12503:95;:::i;:::-;12496:102;;12615:95;12706:3;12697:6;12615:95;:::i;:::-;12608:102;;12727:3;12720:10;;12301:435;;;;;:::o;12742:98::-;12793:6;12827:5;12821:12;12811:22;;12742:98;;;:::o;12846:168::-;12929:11;12963:6;12958:3;12951:19;13003:4;12998:3;12994:14;12979:29;;12846:168;;;;:::o;13020:373::-;13106:3;13134:38;13166:5;13134:38;:::i;:::-;13188:70;13251:6;13246:3;13188:70;:::i;:::-;13181:77;;13267:65;13325:6;13320:3;13313:4;13306:5;13302:16;13267:65;:::i;:::-;13357:29;13379:6;13357:29;:::i;:::-;13352:3;13348:39;13341:46;;13110:283;13020:373;;;;:::o;13399:640::-;13594:4;13632:3;13621:9;13617:19;13609:27;;13646:71;13714:1;13703:9;13699:17;13690:6;13646:71;:::i;:::-;13727:72;13795:2;13784:9;13780:18;13771:6;13727:72;:::i;:::-;13809;13877:2;13866:9;13862:18;13853:6;13809:72;:::i;:::-;13928:9;13922:4;13918:20;13913:2;13902:9;13898:18;13891:48;13956:76;14027:4;14018:6;13956:76;:::i;:::-;13948:84;;13399:640;;;;;;;:::o;14045:141::-;14101:5;14132:6;14126:13;14117:22;;14148:32;14174:5;14148:32;:::i;:::-;14045:141;;;;:::o;14192:349::-;14261:6;14310:2;14298:9;14289:7;14285:23;14281:32;14278:119;;;14316:79;;:::i;:::-;14278:119;14436:1;14461:63;14516:7;14507:6;14496:9;14492:22;14461:63;:::i;:::-;14451:73;;14407:127;14192:349;;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:332;14854:4;14892:2;14881:9;14877:18;14869:26;;14905:71;14973:1;14962:9;14958:17;14949:6;14905:71;:::i;:::-;14986:72;15054:2;15043:9;15039:18;15030:6;14986:72;:::i;:::-;14733:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint()":"1249c58b","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S11_Frontrun/Frontrun.sol\":\"FreeMint\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S11_Frontrun/Frontrun.sol\":{\"keccak256\":\"0x7893ef0fdec8ebc391557a367acf3b099edbc4fc8e38cceb106c4faa31d68beb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2bf1a7dc86a69f6f9bbd565275fd7ab5a42ca3f77e811e7f25957d4015c1a39\",\"dweb:/ipfs/QmSr7UwxiqEigrpsrov8HvsNTuwiM2aCf83r4wbi6KKqNK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S11_Frontrun/Frontrun.sol":"FreeMint"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S11_Frontrun/Frontrun.sol":{"keccak256":"0x7893ef0fdec8ebc391557a367acf3b099edbc4fc8e38cceb106c4faa31d68beb","urls":["bzz-raw://d2bf1a7dc86a69f6f9bbd565275fd7ab5a42ca3f77e811e7f25957d4015c1a39","dweb:/ipfs/QmSr7UwxiqEigrpsrov8HvsNTuwiM2aCf83r4wbi6KKqNK"],"license":"MIT"}},"version":1},"id":131} \ No newline at end of file diff --git a/out/Function.sol/FunctionTypes.json b/out/Function.sol/FunctionTypes.json index 484739b1..68e72b0d 100644 --- a/out/Function.sol/FunctionTypes.json +++ b/out/Function.sol/FunctionTypes.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"add","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addPure","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"new_number","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"addView","inputs":[],"outputs":[{"name":"new_number","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minusCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"minusPayable","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260055f556102f6806100155f395ff3fe608060405260043610610054575f3560e01c8063303810a6146100585780634f2be91f146100765780637032c4f21461008c57806380b4ea08146100c85780638381f58a146100de578063b262eb7f14610108575b5f5ffd5b610060610132565b60405161006d91906101bb565b60405180910390f35b348015610081575f5ffd5b5061008a610141565b005b348015610097575f5ffd5b506100b260048036038101906100ad9190610202565b610156565b6040516100bf91906101bb565b60405180910390f35b3480156100d3575f5ffd5b506100dc61016b565b005b3480156100e9575f5ffd5b506100f2610175565b6040516100ff91906101bb565b60405180910390f35b348015610113575f5ffd5b5061011c61017a565b60405161012991906101bb565b60405180910390f35b5f61013b61018e565b47905090565b60015f5461014f919061025a565b5f81905550565b5f600182610164919061025a565b9050919050565b61017361018e565b565b5f5481565b5f60015f54610189919061025a565b905090565b60015f5461019c919061028d565b5f81905550565b5f819050919050565b6101b5816101a3565b82525050565b5f6020820190506101ce5f8301846101ac565b92915050565b5f5ffd5b6101e1816101a3565b81146101eb575f5ffd5b50565b5f813590506101fc816101d8565b92915050565b5f60208284031215610217576102166101d4565b5b5f610224848285016101ee565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610264826101a3565b915061026f836101a3565b92508282019050808211156102875761028661022d565b5b92915050565b5f610297826101a3565b91506102a2836101a3565b92508282039050818111156102ba576102b961022d565b5b9291505056fea264697066735822122027b04442f85ad232ca43bc3c49e8fd25149c2b32a891f2831f02f9aabd68113164736f6c63430008220033","sourceMap":"57:982:46:-:0;;;109:1;85:25;;57:982;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610054575f3560e01c8063303810a6146100585780634f2be91f146100765780637032c4f21461008c57806380b4ea08146100c85780638381f58a146100de578063b262eb7f14610108575b5f5ffd5b610060610132565b60405161006d91906101bb565b60405180910390f35b348015610081575f5ffd5b5061008a610141565b005b348015610097575f5ffd5b506100b260048036038101906100ad9190610202565b610156565b6040516100bf91906101bb565b60405180910390f35b3480156100d3575f5ffd5b506100dc61016b565b005b3480156100e9575f5ffd5b506100f2610175565b6040516100ff91906101bb565b60405180910390f35b348015610113575f5ffd5b5061011c61017a565b60405161012991906101bb565b60405180910390f35b5f61013b61018e565b47905090565b60015f5461014f919061025a565b5f81905550565b5f600182610164919061025a565b9050919050565b61017361018e565b565b5f5481565b5f60015f54610189919061025a565b905090565b60015f5461019c919061028d565b5f81905550565b5f819050919050565b6101b5816101a3565b82525050565b5f6020820190506101ce5f8301846101ac565b92915050565b5f5ffd5b6101e1816101a3565b81146101eb575f5ffd5b50565b5f813590506101fc816101d8565b92915050565b5f60208284031215610217576102166101d4565b5b5f610224848285016101ee565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610264826101a3565b915061026f836101a3565b92508282019050808211156102875761028661022d565b5b92915050565b5f610297826101a3565b91506102a2836101a3565b92508282039050818111156102ba576102b961022d565b5b9291505056fea264697066735822122027b04442f85ad232ca43bc3c49e8fd25149c2b32a891f2831f02f9aabd68113164736f6c63430008220033","sourceMap":"57:982:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;902:135;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;296:59;;;;;;;;;;;;;:::i;:::-;;387:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;786:54;;;;;;;;;;;;;:::i;:::-;;85:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;531:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;902:135;951:15;978:7;:5;:7::i;:::-;1009:21;999:31;;902:135;:::o;296:59::-;347:1;338:6;;:10;;;;:::i;:::-;329:6;:19;;;;296:59::o;387:114::-;443:18;493:1;485:7;:9;;;;:::i;:::-;472:22;;387:114;;;:::o;786:54::-;826:7;:5;:7::i;:::-;786:54::o;85:25::-;;;;:::o;531:101::-;572:18;624:1;615:6;;:10;;;;:::i;:::-;602:23;;531:101;:::o;668:62::-;722:1;713:6;;:10;;;;:::i;:::-;704:6;:19;;;;668:62::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:180::-;1425:77;1422:1;1415:88;1522:4;1519:1;1512:15;1546:4;1543:1;1536:15;1563:191;1603:3;1622:20;1640:1;1622:20;:::i;:::-;1617:25;;1656:20;1674:1;1656:20;:::i;:::-;1651:25;;1699:1;1696;1692:9;1685:16;;1720:3;1717:1;1714:10;1711:36;;;1727:18;;:::i;:::-;1711:36;1563:191;;;;:::o;1760:194::-;1800:4;1820:20;1838:1;1820:20;:::i;:::-;1815:25;;1854:20;1872:1;1854:20;:::i;:::-;1849:25;;1898:1;1895;1891:9;1883:17;;1922:1;1916:4;1913:11;1910:37;;;1927:18;;:::i;:::-;1910:37;1760:194;;;;:::o","linkReferences":{}},"methodIdentifiers":{"add()":"4f2be91f","addPure(uint256)":"7032c4f2","addView()":"b262eb7f","minusCall()":"80b4ea08","minusPayable()":"303810a6","number()":"8381f58a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"add\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"addPure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"new_number\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addView\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"new_number\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minusCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minusPayable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/03_Function/Function.sol\":\"FunctionTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/03_Function/Function.sol\":{\"keccak256\":\"0x6769677965f54c011fd7cae3899a84c5af1bb1c460a2b74c4d07272eb889031b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02c055c58ac8f0dec906d78d220054a0c889c4b4833fb414b3d7090c07b617e9\",\"dweb:/ipfs/QmbNvrGSRdFtt6Ppx7ENhvHuEteNhT45CiKZEHNrQLpBMV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"add"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addPure","outputs":[{"internalType":"uint256","name":"new_number","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"addView","outputs":[{"internalType":"uint256","name":"new_number","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"minusCall"},{"inputs":[],"stateMutability":"payable","type":"function","name":"minusPayable","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/03_Function/Function.sol":"FunctionTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/03_Function/Function.sol":{"keccak256":"0x6769677965f54c011fd7cae3899a84c5af1bb1c460a2b74c4d07272eb889031b","urls":["bzz-raw://02c055c58ac8f0dec906d78d220054a0c889c4b4833fb414b3d7090c07b617e9","dweb:/ipfs/QmbNvrGSRdFtt6Ppx7ENhvHuEteNhT45CiKZEHNrQLpBMV"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"add","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addPure","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"new_number","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"addView","inputs":[],"outputs":[{"name":"new_number","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minusCall","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"minusPayable","inputs":[],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260055f556102f6806100155f395ff3fe608060405260043610610054575f3560e01c8063303810a6146100585780634f2be91f146100765780637032c4f21461008c57806380b4ea08146100c85780638381f58a146100de578063b262eb7f14610108575b5f5ffd5b610060610132565b60405161006d91906101bb565b60405180910390f35b348015610081575f5ffd5b5061008a610141565b005b348015610097575f5ffd5b506100b260048036038101906100ad9190610202565b610156565b6040516100bf91906101bb565b60405180910390f35b3480156100d3575f5ffd5b506100dc61016b565b005b3480156100e9575f5ffd5b506100f2610175565b6040516100ff91906101bb565b60405180910390f35b348015610113575f5ffd5b5061011c61017a565b60405161012991906101bb565b60405180910390f35b5f61013b61018e565b47905090565b60015f5461014f919061025a565b5f81905550565b5f600182610164919061025a565b9050919050565b61017361018e565b565b5f5481565b5f60015f54610189919061025a565b905090565b60015f5461019c919061028d565b5f81905550565b5f819050919050565b6101b5816101a3565b82525050565b5f6020820190506101ce5f8301846101ac565b92915050565b5f5ffd5b6101e1816101a3565b81146101eb575f5ffd5b50565b5f813590506101fc816101d8565b92915050565b5f60208284031215610217576102166101d4565b5b5f610224848285016101ee565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610264826101a3565b915061026f836101a3565b92508282019050808211156102875761028661022d565b5b92915050565b5f610297826101a3565b91506102a2836101a3565b92508282039050818111156102ba576102b961022d565b5b9291505056fea264697066735822122027b04442f85ad232ca43bc3c49e8fd25149c2b32a891f2831f02f9aabd68113164736f6c63430008220033","sourceMap":"57:982:46:-:0;;;109:1;85:25;;57:982;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610054575f3560e01c8063303810a6146100585780634f2be91f146100765780637032c4f21461008c57806380b4ea08146100c85780638381f58a146100de578063b262eb7f14610108575b5f5ffd5b610060610132565b60405161006d91906101bb565b60405180910390f35b348015610081575f5ffd5b5061008a610141565b005b348015610097575f5ffd5b506100b260048036038101906100ad9190610202565b610156565b6040516100bf91906101bb565b60405180910390f35b3480156100d3575f5ffd5b506100dc61016b565b005b3480156100e9575f5ffd5b506100f2610175565b6040516100ff91906101bb565b60405180910390f35b348015610113575f5ffd5b5061011c61017a565b60405161012991906101bb565b60405180910390f35b5f61013b61018e565b47905090565b60015f5461014f919061025a565b5f81905550565b5f600182610164919061025a565b9050919050565b61017361018e565b565b5f5481565b5f60015f54610189919061025a565b905090565b60015f5461019c919061028d565b5f81905550565b5f819050919050565b6101b5816101a3565b82525050565b5f6020820190506101ce5f8301846101ac565b92915050565b5f5ffd5b6101e1816101a3565b81146101eb575f5ffd5b50565b5f813590506101fc816101d8565b92915050565b5f60208284031215610217576102166101d4565b5b5f610224848285016101ee565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610264826101a3565b915061026f836101a3565b92508282019050808211156102875761028661022d565b5b92915050565b5f610297826101a3565b91506102a2836101a3565b92508282039050818111156102ba576102b961022d565b5b9291505056fea264697066735822122027b04442f85ad232ca43bc3c49e8fd25149c2b32a891f2831f02f9aabd68113164736f6c63430008220033","sourceMap":"57:982:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;902:135;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;296:59;;;;;;;;;;;;;:::i;:::-;;387:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;786:54;;;;;;;;;;;;;:::i;:::-;;85:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;531:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;902:135;951:15;978:7;:5;:7::i;:::-;1009:21;999:31;;902:135;:::o;296:59::-;347:1;338:6;;:10;;;;:::i;:::-;329:6;:19;;;;296:59::o;387:114::-;443:18;493:1;485:7;:9;;;;:::i;:::-;472:22;;387:114;;;:::o;786:54::-;826:7;:5;:7::i;:::-;786:54::o;85:25::-;;;;:::o;531:101::-;572:18;624:1;615:6;;:10;;;;:::i;:::-;602:23;;531:101;:::o;668:62::-;722:1;713:6;;:10;;;;:::i;:::-;704:6;:19;;;;668:62::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:180::-;1425:77;1422:1;1415:88;1522:4;1519:1;1512:15;1546:4;1543:1;1536:15;1563:191;1603:3;1622:20;1640:1;1622:20;:::i;:::-;1617:25;;1656:20;1674:1;1656:20;:::i;:::-;1651:25;;1699:1;1696;1692:9;1685:16;;1720:3;1717:1;1714:10;1711:36;;;1727:18;;:::i;:::-;1711:36;1563:191;;;;:::o;1760:194::-;1800:4;1820:20;1838:1;1820:20;:::i;:::-;1815:25;;1854:20;1872:1;1854:20;:::i;:::-;1849:25;;1898:1;1895;1891:9;1883:17;;1922:1;1916:4;1913:11;1910:37;;;1927:18;;:::i;:::-;1910:37;1760:194;;;;:::o","linkReferences":{}},"methodIdentifiers":{"add()":"4f2be91f","addPure(uint256)":"7032c4f2","addView()":"b262eb7f","minusCall()":"80b4ea08","minusPayable()":"303810a6","number()":"8381f58a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"add\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"addPure\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"new_number\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addView\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"new_number\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minusCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minusPayable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"number\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/03_Function/Function.sol\":\"FunctionTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/03_Function/Function.sol\":{\"keccak256\":\"0x6769677965f54c011fd7cae3899a84c5af1bb1c460a2b74c4d07272eb889031b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02c055c58ac8f0dec906d78d220054a0c889c4b4833fb414b3d7090c07b617e9\",\"dweb:/ipfs/QmbNvrGSRdFtt6Ppx7ENhvHuEteNhT45CiKZEHNrQLpBMV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"add"},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addPure","outputs":[{"internalType":"uint256","name":"new_number","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"addView","outputs":[{"internalType":"uint256","name":"new_number","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"minusCall"},{"inputs":[],"stateMutability":"payable","type":"function","name":"minusPayable","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/03_Function/Function.sol":"FunctionTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/03_Function/Function.sol":{"keccak256":"0x6769677965f54c011fd7cae3899a84c5af1bb1c460a2b74c4d07272eb889031b","urls":["bzz-raw://02c055c58ac8f0dec906d78d220054a0c889c4b4833fb414b3d7090c07b617e9","dweb:/ipfs/QmbNvrGSRdFtt6Ppx7ENhvHuEteNhT45CiKZEHNrQLpBMV"],"license":"MIT"}},"version":1},"id":46} \ No newline at end of file diff --git a/out/Hash.sol/Hash.json b/out/Hash.sol/Hash.json index 05083dac..2446c996 100644 --- a/out/Hash.sol/Hash.json +++ b/out/Hash.sol/Hash.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"hash","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"},{"name":"_string","type":"string","internalType":"string"},{"name":"_addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"strong","inputs":[{"name":"string1","type":"string","internalType":"string"},{"name":"string2","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"weak","inputs":[{"name":"string1","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040516020016011906088565b604051602081830303815290604052805190602001205f553480156033575f5ffd5b50609a565b5f81905092915050565b7f30784141000000000000000000000000000000000000000000000000000000005f82015250565b5f60746004836038565b9150607d826042565b600482019050919050565b5f609082606a565b9150819050919050565b610634806100a75f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806310be181c146100435780634f6b068d14610073578063d6abfc7b146100a3575b5f5ffd5b61005d600480360381019061005891906102df565b6100d3565b60405161006a919061036f565b60405180910390f35b61008d60048036038101906100889190610415565b61012b565b60405161009a9190610499565b60405180910390f35b6100bd60048036038101906100b891906104b2565b610160565b6040516100ca919061036f565b60405180910390f35b5f816040516020016100e5919061054b565b604051602081830303815290604052805190602001208360405160200161010c919061054b565b6040516020818303038152906040528051906020012014905092915050565b5f838383604051602001610141939291906105c6565b6040516020818303038152906040528051906020012090509392505050565b5f5f5482604051602001610174919061054b565b60405160208183030381529060405280519060200120149050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f1826101ab565b810181811067ffffffffffffffff821117156102105761020f6101bb565b5b80604052505050565b5f610222610192565b905061022e82826101e8565b919050565b5f67ffffffffffffffff82111561024d5761024c6101bb565b5b610256826101ab565b9050602081019050919050565b828183375f83830152505050565b5f61028361027e84610233565b610219565b90508281526020810184848401111561029f5761029e6101a7565b5b6102aa848285610263565b509392505050565b5f82601f8301126102c6576102c56101a3565b5b81356102d6848260208601610271565b91505092915050565b5f5f604083850312156102f5576102f461019b565b5b5f83013567ffffffffffffffff8111156103125761031161019f565b5b61031e858286016102b2565b925050602083013567ffffffffffffffff81111561033f5761033e61019f565b5b61034b858286016102b2565b9150509250929050565b5f8115159050919050565b61036981610355565b82525050565b5f6020820190506103825f830184610360565b92915050565b5f819050919050565b61039a81610388565b81146103a4575f5ffd5b50565b5f813590506103b581610391565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e4826103bb565b9050919050565b6103f4816103da565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f5f5f6060848603121561042c5761042b61019b565b5b5f610439868287016103a7565b935050602084013567ffffffffffffffff81111561045a5761045961019f565b5b610466868287016102b2565b925050604061047786828701610401565b9150509250925092565b5f819050919050565b61049381610481565b82525050565b5f6020820190506104ac5f83018461048a565b92915050565b5f602082840312156104c7576104c661019b565b5b5f82013567ffffffffffffffff8111156104e4576104e361019f565b5b6104f0848285016102b2565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610525826104f9565b61052f8185610503565b935061053f81856020860161050d565b80840191505092915050565b5f610556828461051b565b915081905092915050565b5f819050919050565b61057b61057682610388565b610561565b82525050565b5f8160601b9050919050565b5f61059782610581565b9050919050565b5f6105a88261058d565b9050919050565b6105c06105bb826103da565b61059e565b82525050565b5f6105d1828661056a565b6020820191506105e1828561051b565b91506105ed82846105af565b60148201915081905094935050505056fea26469706673582212202b10a997b0008def492681cb95220e53346ad05395c568ba9bb7e16ec30253ec64736f6c63430008220033","sourceMap":"58:711:75:-:0;;;102:24;;;;;;;:::i;:::-;;;;;;;;;;;;;92:35;;;;;;77:50;;58:711;;;;;;;;;;;;7:148:145;109:11;146:3;131:18;;7:148;;;;:::o;161:154::-;301:6;297:1;289:6;285:14;278:30;161:154;:::o;321:400::-;481:3;502:84;584:1;579:3;502:84;:::i;:::-;495:91;;595:93;684:3;595:93;:::i;:::-;713:1;708:3;704:11;697:18;;321:400;;;:::o;727:381::-;912:3;934:148;1078:3;934:148;:::i;:::-;927:155;;1099:3;1092:10;;727:381;;;:::o;58:711:75:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806310be181c146100435780634f6b068d14610073578063d6abfc7b146100a3575b5f5ffd5b61005d600480360381019061005891906102df565b6100d3565b60405161006a919061036f565b60405180910390f35b61008d60048036038101906100889190610415565b61012b565b60405161009a9190610499565b60405180910390f35b6100bd60048036038101906100b891906104b2565b610160565b6040516100ca919061036f565b60405180910390f35b5f816040516020016100e5919061054b565b604051602081830303815290604052805190602001208360405160200161010c919061054b565b6040516020818303038152906040528051906020012014905092915050565b5f838383604051602001610141939291906105c6565b6040516020818303038152906040528051906020012090509392505050565b5f5f5482604051602001610174919061054b565b60405160208183030381529060405280519060200120149050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f1826101ab565b810181811067ffffffffffffffff821117156102105761020f6101bb565b5b80604052505050565b5f610222610192565b905061022e82826101e8565b919050565b5f67ffffffffffffffff82111561024d5761024c6101bb565b5b610256826101ab565b9050602081019050919050565b828183375f83830152505050565b5f61028361027e84610233565b610219565b90508281526020810184848401111561029f5761029e6101a7565b5b6102aa848285610263565b509392505050565b5f82601f8301126102c6576102c56101a3565b5b81356102d6848260208601610271565b91505092915050565b5f5f604083850312156102f5576102f461019b565b5b5f83013567ffffffffffffffff8111156103125761031161019f565b5b61031e858286016102b2565b925050602083013567ffffffffffffffff81111561033f5761033e61019f565b5b61034b858286016102b2565b9150509250929050565b5f8115159050919050565b61036981610355565b82525050565b5f6020820190506103825f830184610360565b92915050565b5f819050919050565b61039a81610388565b81146103a4575f5ffd5b50565b5f813590506103b581610391565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e4826103bb565b9050919050565b6103f4816103da565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f5f5f6060848603121561042c5761042b61019b565b5b5f610439868287016103a7565b935050602084013567ffffffffffffffff81111561045a5761045961019f565b5b610466868287016102b2565b925050604061047786828701610401565b9150509250925092565b5f819050919050565b61049381610481565b82525050565b5f6020820190506104ac5f83018461048a565b92915050565b5f602082840312156104c7576104c661019b565b5b5f82013567ffffffffffffffff8111156104e4576104e361019f565b5b6104f0848285016102b2565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610525826104f9565b61052f8185610503565b935061053f81856020860161050d565b80840191505092915050565b5f610556828461051b565b915081905092915050565b5f819050919050565b61057b61057682610388565b610561565b82525050565b5f8160601b9050919050565b5f61059782610581565b9050919050565b5f6105a88261058d565b9050919050565b6105c06105bb826103da565b61059e565b82525050565b5f6105d1828661056a565b6020820191506105e1828561051b565b91506105ed82846105af565b60148201915081905094935050505056fea26469706673582212202b10a997b0008def492681cb95220e53346ad05395c568ba9bb7e16ec30253ec64736f6c63430008220033","sourceMap":"58:711:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;558:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;160:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;385:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;558:209;662:4;751:7;734:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;724:36;;;;;;711:7;694:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;684:36;;;;;;:76;677:83;;558:209;;;;:::o;160:196::-;274:7;327:4;333:7;342:5;310:38;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;300:49;;;;;;293:56;;160:196;;;;;:::o;385:144::-;456:4;518;;505:7;488:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;478:36;;;;;;:44;471:51;;385:144;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:148::-;1708:6;1703:3;1698;1685:30;1749:1;1740:6;1735:3;1731:16;1724:27;1610:148;;;:::o;1764:425::-;1842:5;1867:66;1883:49;1925:6;1883:49;:::i;:::-;1867:66;:::i;:::-;1858:75;;1956:6;1949:5;1942:21;1994:4;1987:5;1983:16;2032:3;2023:6;2018:3;2014:16;2011:25;2008:112;;;2039:79;;:::i;:::-;2008:112;2129:54;2176:6;2171:3;2166;2129:54;:::i;:::-;1848:341;1764:425;;;;;:::o;2209:340::-;2265:5;2314:3;2307:4;2299:6;2295:17;2291:27;2281:122;;2322:79;;:::i;:::-;2281:122;2439:6;2426:20;2464:79;2539:3;2531:6;2524:4;2516:6;2512:17;2464:79;:::i;:::-;2455:88;;2271:278;2209:340;;;;:::o;2555:834::-;2643:6;2651;2700:2;2688:9;2679:7;2675:23;2671:32;2668:119;;;2706:79;;:::i;:::-;2668:119;2854:1;2843:9;2839:17;2826:31;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3011:63;3066:7;3057:6;3046:9;3042:22;3011:63;:::i;:::-;3001:73;;2797:287;3151:2;3140:9;3136:18;3123:32;3182:18;3174:6;3171:30;3168:117;;;3204:79;;:::i;:::-;3168:117;3309:63;3364:7;3355:6;3344:9;3340:22;3309:63;:::i;:::-;3299:73;;3094:288;2555:834;;;;;:::o;3395:90::-;3429:7;3472:5;3465:13;3458:21;3447:32;;3395:90;;;:::o;3491:109::-;3572:21;3587:5;3572:21;:::i;:::-;3567:3;3560:34;3491:109;;:::o;3606:210::-;3693:4;3731:2;3720:9;3716:18;3708:26;;3744:65;3806:1;3795:9;3791:17;3782:6;3744:65;:::i;:::-;3606:210;;;;:::o;3822:77::-;3859:7;3888:5;3877:16;;3822:77;;;:::o;3905:122::-;3978:24;3996:5;3978:24;:::i;:::-;3971:5;3968:35;3958:63;;4017:1;4014;4007:12;3958:63;3905:122;:::o;4033:139::-;4079:5;4117:6;4104:20;4095:29;;4133:33;4160:5;4133:33;:::i;:::-;4033:139;;;;:::o;4178:126::-;4215:7;4255:42;4248:5;4244:54;4233:65;;4178:126;;;:::o;4310:96::-;4347:7;4376:24;4394:5;4376:24;:::i;:::-;4365:35;;4310:96;;;:::o;4412:122::-;4485:24;4503:5;4485:24;:::i;:::-;4478:5;4475:35;4465:63;;4524:1;4521;4514:12;4465:63;4412:122;:::o;4540:139::-;4586:5;4624:6;4611:20;4602:29;;4640:33;4667:5;4640:33;:::i;:::-;4540:139;;;;:::o;4685:799::-;4772:6;4780;4788;4837:2;4825:9;4816:7;4812:23;4808:32;4805:119;;;4843:79;;:::i;:::-;4805:119;4963:1;4988:53;5033:7;5024:6;5013:9;5009:22;4988:53;:::i;:::-;4978:63;;4934:117;5118:2;5107:9;5103:18;5090:32;5149:18;5141:6;5138:30;5135:117;;;5171:79;;:::i;:::-;5135:117;5276:63;5331:7;5322:6;5311:9;5307:22;5276:63;:::i;:::-;5266:73;;5061:288;5388:2;5414:53;5459:7;5450:6;5439:9;5435:22;5414:53;:::i;:::-;5404:63;;5359:118;4685:799;;;;;:::o;5490:77::-;5527:7;5556:5;5545:16;;5490:77;;;:::o;5573:118::-;5660:24;5678:5;5660:24;:::i;:::-;5655:3;5648:37;5573:118;;:::o;5697:222::-;5790:4;5828:2;5817:9;5813:18;5805:26;;5841:71;5909:1;5898:9;5894:17;5885:6;5841:71;:::i;:::-;5697:222;;;;:::o;5925:509::-;5994:6;6043:2;6031:9;6022:7;6018:23;6014:32;6011:119;;;6049:79;;:::i;:::-;6011:119;6197:1;6186:9;6182:17;6169:31;6227:18;6219:6;6216:30;6213:117;;;6249:79;;:::i;:::-;6213:117;6354:63;6409:7;6400:6;6389:9;6385:22;6354:63;:::i;:::-;6344:73;;6140:287;5925:509;;;;:::o;6440:99::-;6492:6;6526:5;6520:12;6510:22;;6440:99;;;:::o;6545:148::-;6647:11;6684:3;6669:18;;6545:148;;;;:::o;6699:139::-;6788:6;6783:3;6778;6772:23;6829:1;6820:6;6815:3;6811:16;6804:27;6699:139;;;:::o;6844:390::-;6950:3;6978:39;7011:5;6978:39;:::i;:::-;7033:89;7115:6;7110:3;7033:89;:::i;:::-;7026:96;;7131:65;7189:6;7184:3;7177:4;7170:5;7166:16;7131:65;:::i;:::-;7221:6;7216:3;7212:16;7205:23;;6954:280;6844:390;;;;:::o;7240:275::-;7372:3;7394:95;7485:3;7476:6;7394:95;:::i;:::-;7387:102;;7506:3;7499:10;;7240:275;;;;:::o;7521:79::-;7560:7;7589:5;7578:16;;7521:79;;;:::o;7606:157::-;7711:45;7731:24;7749:5;7731:24;:::i;:::-;7711:45;:::i;:::-;7706:3;7699:58;7606:157;;:::o;7769:94::-;7802:8;7850:5;7846:2;7842:14;7821:35;;7769:94;;;:::o;7869:::-;7908:7;7937:20;7951:5;7937:20;:::i;:::-;7926:31;;7869:94;;;:::o;7969:100::-;8008:7;8037:26;8057:5;8037:26;:::i;:::-;8026:37;;7969:100;;;:::o;8075:157::-;8180:45;8200:24;8218:5;8200:24;:::i;:::-;8180:45;:::i;:::-;8175:3;8168:58;8075:157;;:::o;8238:557::-;8426:3;8441:75;8512:3;8503:6;8441:75;:::i;:::-;8541:2;8536:3;8532:12;8525:19;;8561:95;8652:3;8643:6;8561:95;:::i;:::-;8554:102;;8666:75;8737:3;8728:6;8666:75;:::i;:::-;8766:2;8761:3;8757:12;8750:19;;8786:3;8779:10;;8238:557;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"hash(uint256,string,address)":"4f6b068d","strong(string,string)":"10be181c","weak(string)":"d6abfc7b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_string\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"string1\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"string2\",\"type\":\"string\"}],\"name\":\"strong\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"string1\",\"type\":\"string\"}],\"name\":\"weak\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/28_Hash/Hash.sol\":\"Hash\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/28_Hash/Hash.sol\":{\"keccak256\":\"0x70a6c49a827ea7fa2af34e3abe424be1127da2882c5baf286b1468835812b430\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49b94ee5f3351a6c5da9f32a9bcca4253838a6eb60592eac1c8f97522290cf7a\",\"dweb:/ipfs/QmetYnrgZREqohEK4ELRmN5eu6dAZ7kLPDxij3VSDAwRoW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"string","name":"_string","type":"string"},{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"pure","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"string1","type":"string"},{"internalType":"string","name":"string2","type":"string"}],"stateMutability":"pure","type":"function","name":"strong","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"string1","type":"string"}],"stateMutability":"view","type":"function","name":"weak","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/28_Hash/Hash.sol":"Hash"},"evmVersion":"prague","libraries":{}},"sources":{"src/28_Hash/Hash.sol":{"keccak256":"0x70a6c49a827ea7fa2af34e3abe424be1127da2882c5baf286b1468835812b430","urls":["bzz-raw://49b94ee5f3351a6c5da9f32a9bcca4253838a6eb60592eac1c8f97522290cf7a","dweb:/ipfs/QmetYnrgZREqohEK4ELRmN5eu6dAZ7kLPDxij3VSDAwRoW"],"license":"MIT"}},"version":1},"id":75} \ No newline at end of file +{"abi":[{"type":"function","name":"hash","inputs":[{"name":"_num","type":"uint256","internalType":"uint256"},{"name":"_string","type":"string","internalType":"string"},{"name":"_addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"strong","inputs":[{"name":"string1","type":"string","internalType":"string"},{"name":"string2","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"weak","inputs":[{"name":"string1","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040516020016011906088565b604051602081830303815290604052805190602001205f553480156033575f5ffd5b50609a565b5f81905092915050565b7f30784141000000000000000000000000000000000000000000000000000000005f82015250565b5f60746004836038565b9150607d826042565b600482019050919050565b5f609082606a565b9150819050919050565b610634806100a75f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806310be181c146100435780634f6b068d14610073578063d6abfc7b146100a3575b5f5ffd5b61005d600480360381019061005891906102df565b6100d3565b60405161006a919061036f565b60405180910390f35b61008d60048036038101906100889190610415565b61012b565b60405161009a9190610499565b60405180910390f35b6100bd60048036038101906100b891906104b2565b610160565b6040516100ca919061036f565b60405180910390f35b5f816040516020016100e5919061054b565b604051602081830303815290604052805190602001208360405160200161010c919061054b565b6040516020818303038152906040528051906020012014905092915050565b5f838383604051602001610141939291906105c6565b6040516020818303038152906040528051906020012090509392505050565b5f5f5482604051602001610174919061054b565b60405160208183030381529060405280519060200120149050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f1826101ab565b810181811067ffffffffffffffff821117156102105761020f6101bb565b5b80604052505050565b5f610222610192565b905061022e82826101e8565b919050565b5f67ffffffffffffffff82111561024d5761024c6101bb565b5b610256826101ab565b9050602081019050919050565b828183375f83830152505050565b5f61028361027e84610233565b610219565b90508281526020810184848401111561029f5761029e6101a7565b5b6102aa848285610263565b509392505050565b5f82601f8301126102c6576102c56101a3565b5b81356102d6848260208601610271565b91505092915050565b5f5f604083850312156102f5576102f461019b565b5b5f83013567ffffffffffffffff8111156103125761031161019f565b5b61031e858286016102b2565b925050602083013567ffffffffffffffff81111561033f5761033e61019f565b5b61034b858286016102b2565b9150509250929050565b5f8115159050919050565b61036981610355565b82525050565b5f6020820190506103825f830184610360565b92915050565b5f819050919050565b61039a81610388565b81146103a4575f5ffd5b50565b5f813590506103b581610391565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e4826103bb565b9050919050565b6103f4816103da565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f5f5f6060848603121561042c5761042b61019b565b5b5f610439868287016103a7565b935050602084013567ffffffffffffffff81111561045a5761045961019f565b5b610466868287016102b2565b925050604061047786828701610401565b9150509250925092565b5f819050919050565b61049381610481565b82525050565b5f6020820190506104ac5f83018461048a565b92915050565b5f602082840312156104c7576104c661019b565b5b5f82013567ffffffffffffffff8111156104e4576104e361019f565b5b6104f0848285016102b2565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610525826104f9565b61052f8185610503565b935061053f81856020860161050d565b80840191505092915050565b5f610556828461051b565b915081905092915050565b5f819050919050565b61057b61057682610388565b610561565b82525050565b5f8160601b9050919050565b5f61059782610581565b9050919050565b5f6105a88261058d565b9050919050565b6105c06105bb826103da565b61059e565b82525050565b5f6105d1828661056a565b6020820191506105e1828561051b565b91506105ed82846105af565b60148201915081905094935050505056fea26469706673582212202b10a997b0008def492681cb95220e53346ad05395c568ba9bb7e16ec30253ec64736f6c63430008220033","sourceMap":"58:711:69:-:0;;;102:24;;;;;;;:::i;:::-;;;;;;;;;;;;;92:35;;;;;;77:50;;58:711;;;;;;;;;;;;7:148:139;109:11;146:3;131:18;;7:148;;;;:::o;161:154::-;301:6;297:1;289:6;285:14;278:30;161:154;:::o;321:400::-;481:3;502:84;584:1;579:3;502:84;:::i;:::-;495:91;;595:93;684:3;595:93;:::i;:::-;713:1;708:3;704:11;697:18;;321:400;;;:::o;727:381::-;912:3;934:148;1078:3;934:148;:::i;:::-;927:155;;1099:3;1092:10;;727:381;;;:::o;58:711:69:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806310be181c146100435780634f6b068d14610073578063d6abfc7b146100a3575b5f5ffd5b61005d600480360381019061005891906102df565b6100d3565b60405161006a919061036f565b60405180910390f35b61008d60048036038101906100889190610415565b61012b565b60405161009a9190610499565b60405180910390f35b6100bd60048036038101906100b891906104b2565b610160565b6040516100ca919061036f565b60405180910390f35b5f816040516020016100e5919061054b565b604051602081830303815290604052805190602001208360405160200161010c919061054b565b6040516020818303038152906040528051906020012014905092915050565b5f838383604051602001610141939291906105c6565b6040516020818303038152906040528051906020012090509392505050565b5f5f5482604051602001610174919061054b565b60405160208183030381529060405280519060200120149050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f1826101ab565b810181811067ffffffffffffffff821117156102105761020f6101bb565b5b80604052505050565b5f610222610192565b905061022e82826101e8565b919050565b5f67ffffffffffffffff82111561024d5761024c6101bb565b5b610256826101ab565b9050602081019050919050565b828183375f83830152505050565b5f61028361027e84610233565b610219565b90508281526020810184848401111561029f5761029e6101a7565b5b6102aa848285610263565b509392505050565b5f82601f8301126102c6576102c56101a3565b5b81356102d6848260208601610271565b91505092915050565b5f5f604083850312156102f5576102f461019b565b5b5f83013567ffffffffffffffff8111156103125761031161019f565b5b61031e858286016102b2565b925050602083013567ffffffffffffffff81111561033f5761033e61019f565b5b61034b858286016102b2565b9150509250929050565b5f8115159050919050565b61036981610355565b82525050565b5f6020820190506103825f830184610360565b92915050565b5f819050919050565b61039a81610388565b81146103a4575f5ffd5b50565b5f813590506103b581610391565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e4826103bb565b9050919050565b6103f4816103da565b81146103fe575f5ffd5b50565b5f8135905061040f816103eb565b92915050565b5f5f5f6060848603121561042c5761042b61019b565b5b5f610439868287016103a7565b935050602084013567ffffffffffffffff81111561045a5761045961019f565b5b610466868287016102b2565b925050604061047786828701610401565b9150509250925092565b5f819050919050565b61049381610481565b82525050565b5f6020820190506104ac5f83018461048a565b92915050565b5f602082840312156104c7576104c661019b565b5b5f82013567ffffffffffffffff8111156104e4576104e361019f565b5b6104f0848285016102b2565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610525826104f9565b61052f8185610503565b935061053f81856020860161050d565b80840191505092915050565b5f610556828461051b565b915081905092915050565b5f819050919050565b61057b61057682610388565b610561565b82525050565b5f8160601b9050919050565b5f61059782610581565b9050919050565b5f6105a88261058d565b9050919050565b6105c06105bb826103da565b61059e565b82525050565b5f6105d1828661056a565b6020820191506105e1828561051b565b91506105ed82846105af565b60148201915081905094935050505056fea26469706673582212202b10a997b0008def492681cb95220e53346ad05395c568ba9bb7e16ec30253ec64736f6c63430008220033","sourceMap":"58:711:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;558:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;160:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;385:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;558:209;662:4;751:7;734:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;724:36;;;;;;711:7;694:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;684:36;;;;;;:76;677:83;;558:209;;;;:::o;160:196::-;274:7;327:4;333:7;342:5;310:38;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;300:49;;;;;;293:56;;160:196;;;;;:::o;385:144::-;456:4;518;;505:7;488:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;478:36;;;;;;:44;471:51;;385:144;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:148::-;1708:6;1703:3;1698;1685:30;1749:1;1740:6;1735:3;1731:16;1724:27;1610:148;;;:::o;1764:425::-;1842:5;1867:66;1883:49;1925:6;1883:49;:::i;:::-;1867:66;:::i;:::-;1858:75;;1956:6;1949:5;1942:21;1994:4;1987:5;1983:16;2032:3;2023:6;2018:3;2014:16;2011:25;2008:112;;;2039:79;;:::i;:::-;2008:112;2129:54;2176:6;2171:3;2166;2129:54;:::i;:::-;1848:341;1764:425;;;;;:::o;2209:340::-;2265:5;2314:3;2307:4;2299:6;2295:17;2291:27;2281:122;;2322:79;;:::i;:::-;2281:122;2439:6;2426:20;2464:79;2539:3;2531:6;2524:4;2516:6;2512:17;2464:79;:::i;:::-;2455:88;;2271:278;2209:340;;;;:::o;2555:834::-;2643:6;2651;2700:2;2688:9;2679:7;2675:23;2671:32;2668:119;;;2706:79;;:::i;:::-;2668:119;2854:1;2843:9;2839:17;2826:31;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3011:63;3066:7;3057:6;3046:9;3042:22;3011:63;:::i;:::-;3001:73;;2797:287;3151:2;3140:9;3136:18;3123:32;3182:18;3174:6;3171:30;3168:117;;;3204:79;;:::i;:::-;3168:117;3309:63;3364:7;3355:6;3344:9;3340:22;3309:63;:::i;:::-;3299:73;;3094:288;2555:834;;;;;:::o;3395:90::-;3429:7;3472:5;3465:13;3458:21;3447:32;;3395:90;;;:::o;3491:109::-;3572:21;3587:5;3572:21;:::i;:::-;3567:3;3560:34;3491:109;;:::o;3606:210::-;3693:4;3731:2;3720:9;3716:18;3708:26;;3744:65;3806:1;3795:9;3791:17;3782:6;3744:65;:::i;:::-;3606:210;;;;:::o;3822:77::-;3859:7;3888:5;3877:16;;3822:77;;;:::o;3905:122::-;3978:24;3996:5;3978:24;:::i;:::-;3971:5;3968:35;3958:63;;4017:1;4014;4007:12;3958:63;3905:122;:::o;4033:139::-;4079:5;4117:6;4104:20;4095:29;;4133:33;4160:5;4133:33;:::i;:::-;4033:139;;;;:::o;4178:126::-;4215:7;4255:42;4248:5;4244:54;4233:65;;4178:126;;;:::o;4310:96::-;4347:7;4376:24;4394:5;4376:24;:::i;:::-;4365:35;;4310:96;;;:::o;4412:122::-;4485:24;4503:5;4485:24;:::i;:::-;4478:5;4475:35;4465:63;;4524:1;4521;4514:12;4465:63;4412:122;:::o;4540:139::-;4586:5;4624:6;4611:20;4602:29;;4640:33;4667:5;4640:33;:::i;:::-;4540:139;;;;:::o;4685:799::-;4772:6;4780;4788;4837:2;4825:9;4816:7;4812:23;4808:32;4805:119;;;4843:79;;:::i;:::-;4805:119;4963:1;4988:53;5033:7;5024:6;5013:9;5009:22;4988:53;:::i;:::-;4978:63;;4934:117;5118:2;5107:9;5103:18;5090:32;5149:18;5141:6;5138:30;5135:117;;;5171:79;;:::i;:::-;5135:117;5276:63;5331:7;5322:6;5311:9;5307:22;5276:63;:::i;:::-;5266:73;;5061:288;5388:2;5414:53;5459:7;5450:6;5439:9;5435:22;5414:53;:::i;:::-;5404:63;;5359:118;4685:799;;;;;:::o;5490:77::-;5527:7;5556:5;5545:16;;5490:77;;;:::o;5573:118::-;5660:24;5678:5;5660:24;:::i;:::-;5655:3;5648:37;5573:118;;:::o;5697:222::-;5790:4;5828:2;5817:9;5813:18;5805:26;;5841:71;5909:1;5898:9;5894:17;5885:6;5841:71;:::i;:::-;5697:222;;;;:::o;5925:509::-;5994:6;6043:2;6031:9;6022:7;6018:23;6014:32;6011:119;;;6049:79;;:::i;:::-;6011:119;6197:1;6186:9;6182:17;6169:31;6227:18;6219:6;6216:30;6213:117;;;6249:79;;:::i;:::-;6213:117;6354:63;6409:7;6400:6;6389:9;6385:22;6354:63;:::i;:::-;6344:73;;6140:287;5925:509;;;;:::o;6440:99::-;6492:6;6526:5;6520:12;6510:22;;6440:99;;;:::o;6545:148::-;6647:11;6684:3;6669:18;;6545:148;;;;:::o;6699:139::-;6788:6;6783:3;6778;6772:23;6829:1;6820:6;6815:3;6811:16;6804:27;6699:139;;;:::o;6844:390::-;6950:3;6978:39;7011:5;6978:39;:::i;:::-;7033:89;7115:6;7110:3;7033:89;:::i;:::-;7026:96;;7131:65;7189:6;7184:3;7177:4;7170:5;7166:16;7131:65;:::i;:::-;7221:6;7216:3;7212:16;7205:23;;6954:280;6844:390;;;;:::o;7240:275::-;7372:3;7394:95;7485:3;7476:6;7394:95;:::i;:::-;7387:102;;7506:3;7499:10;;7240:275;;;;:::o;7521:79::-;7560:7;7589:5;7578:16;;7521:79;;;:::o;7606:157::-;7711:45;7731:24;7749:5;7731:24;:::i;:::-;7711:45;:::i;:::-;7706:3;7699:58;7606:157;;:::o;7769:94::-;7802:8;7850:5;7846:2;7842:14;7821:35;;7769:94;;;:::o;7869:::-;7908:7;7937:20;7951:5;7937:20;:::i;:::-;7926:31;;7869:94;;;:::o;7969:100::-;8008:7;8037:26;8057:5;8037:26;:::i;:::-;8026:37;;7969:100;;;:::o;8075:157::-;8180:45;8200:24;8218:5;8200:24;:::i;:::-;8180:45;:::i;:::-;8175:3;8168:58;8075:157;;:::o;8238:557::-;8426:3;8441:75;8512:3;8503:6;8441:75;:::i;:::-;8541:2;8536:3;8532:12;8525:19;;8561:95;8652:3;8643:6;8561:95;:::i;:::-;8554:102;;8666:75;8737:3;8728:6;8666:75;:::i;:::-;8766:2;8761:3;8757:12;8750:19;;8786:3;8779:10;;8238:557;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"hash(uint256,string,address)":"4f6b068d","strong(string,string)":"10be181c","weak(string)":"d6abfc7b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_num\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_string\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"string1\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"string2\",\"type\":\"string\"}],\"name\":\"strong\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"string1\",\"type\":\"string\"}],\"name\":\"weak\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/28_Hash/Hash.sol\":\"Hash\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/28_Hash/Hash.sol\":{\"keccak256\":\"0x70a6c49a827ea7fa2af34e3abe424be1127da2882c5baf286b1468835812b430\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49b94ee5f3351a6c5da9f32a9bcca4253838a6eb60592eac1c8f97522290cf7a\",\"dweb:/ipfs/QmetYnrgZREqohEK4ELRmN5eu6dAZ7kLPDxij3VSDAwRoW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"},{"internalType":"string","name":"_string","type":"string"},{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"pure","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"string1","type":"string"},{"internalType":"string","name":"string2","type":"string"}],"stateMutability":"pure","type":"function","name":"strong","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"string1","type":"string"}],"stateMutability":"view","type":"function","name":"weak","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/28_Hash/Hash.sol":"Hash"},"evmVersion":"prague","libraries":{}},"sources":{"src/28_Hash/Hash.sol":{"keccak256":"0x70a6c49a827ea7fa2af34e3abe424be1127da2882c5baf286b1468835812b430","urls":["bzz-raw://49b94ee5f3351a6c5da9f32a9bcca4253838a6eb60592eac1c8f97522290cf7a","dweb:/ipfs/QmetYnrgZREqohEK4ELRmN5eu6dAZ7kLPDxij3VSDAwRoW"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file diff --git a/out/HelloWeb3.sol/HelloWeb3.json b/out/HelloWeb3.sol/HelloWeb3.json index ff5dc547..b144bfa1 100644 --- a/out/HelloWeb3.sol/HelloWeb3.json +++ b/out/HelloWeb3.sol/HelloWeb3.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_string","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060400160405280600b81526020017f48656c6c6f2057656233210000000000000000000000000000000000000000008152505f908161004791906102a7565b50348015610053575f5ffd5b50610376565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d457607f821691505b6020821081036100e7576100e6610090565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010e565b610153868361010e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019761019261018d8461016b565b610174565b61016b565b9050919050565b5f819050919050565b6101b08361017d565b6101c46101bc8261019e565b84845461011a565b825550505050565b5f5f905090565b6101db6101cc565b6101e68184846101a7565b505050565b5f5b8281101561020c576102015f8284016101d3565b6001810190506101ed565b505050565b601f82111561025f578282111561025e5761022b816100ed565b610234836100ff565b61023d856100ff565b602086101561024a575f90505b808301610259828403826101eb565b505050505b5b505050565b5f82821c905092915050565b5f61027f5f1984600802610264565b1980831691505092915050565b5f6102978383610270565b9150826002028217905092915050565b6102b082610059565b67ffffffffffffffff8111156102c9576102c8610063565b5b6102d382546100bd565b6102de828285610211565b5f60209050601f83116001811461030f575f84156102fd578287015190505b610307858261028c565b86555061036e565b601f19841661031d866100ed565b5f5b828110156103445784890151825560018201915060208501945060208101905061031f565b86831015610361578489015161035d601f891682610270565b8355505b6001600288020188555050505b505050505050565b6101f9806103835f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80639b267f091461002d575b5f5ffd5b61003561004b565b6040516100429190610146565b60405180910390f35b5f805461005790610193565b80601f016020809104026020016040519081016040528092919081815260200182805461008390610193565b80156100ce5780601f106100a5576101008083540402835291602001916100ce565b820191905f5260205f20905b8154815290600101906020018083116100b157829003601f168201915b505050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610118826100d6565b61012281856100e0565b93506101328185602086016100f0565b61013b816100fe565b840191505092915050565b5f6020820190508181035f83015261015e818461010e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101aa57607f821691505b6020821081036101bd576101bc610166565b5b5091905056fea2646970667358221220d44307577f7ea3339ad359ab6aef20564b980fc09211719f64fc018eaef7c90b64736f6c63430008220033","sourceMap":"57:64:44:-:0;;;81:37;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;57:64;;;;;;;;;;;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;57:64:44:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80639b267f091461002d575b5f5ffd5b61003561004b565b6040516100429190610146565b60405180910390f35b5f805461005790610193565b80601f016020809104026020016040519081016040528092919081815260200182805461008390610193565b80156100ce5780601f106100a5576101008083540402835291602001916100ce565b820191905f5260205f20905b8154815290600101906020018083116100b157829003601f168201915b505050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610118826100d6565b61012281856100e0565b93506101328185602086016100f0565b61013b816100fe565b840191505092915050565b5f6020820190508181035f83015261015e818461010e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101aa57607f821691505b6020821081036101bd576101bc610166565b5b5091905056fea2646970667358221220d44307577f7ea3339ad359ab6aef20564b980fc09211719f64fc018eaef7c90b64736f6c63430008220033","sourceMap":"57:64:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;81:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:180::-;1290:77;1287:1;1280:88;1387:4;1384:1;1377:15;1411:4;1408:1;1401:15;1428:320;1472:6;1509:1;1503:4;1499:12;1489:22;;1556:1;1550:4;1546:12;1577:18;1567:81;;1633:4;1625:6;1621:17;1611:27;;1567:81;1695:2;1687:6;1684:14;1664:18;1661:38;1658:84;;1714:18;;:::i;:::-;1658:84;1479:269;1428:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"_string()":"9b267f09"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_string\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/01_HelloWeb3/HelloWeb3.sol\":\"HelloWeb3\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/01_HelloWeb3/HelloWeb3.sol\":{\"keccak256\":\"0x960083aec2240c32bad037aa20e3cbff78def00e58e588a2f3676ed74164303c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2b17fc7e91a5d5676af150050ac341eccf650482ad952be9737edb586d353c0\",\"dweb:/ipfs/QmPmXVVmQ7MFPZupbLzGJQz2uUNRKxZMRPwYQ8WAZiyHoU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_string","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/01_HelloWeb3/HelloWeb3.sol":"HelloWeb3"},"evmVersion":"prague","libraries":{}},"sources":{"src/01_HelloWeb3/HelloWeb3.sol":{"keccak256":"0x960083aec2240c32bad037aa20e3cbff78def00e58e588a2f3676ed74164303c","urls":["bzz-raw://b2b17fc7e91a5d5676af150050ac341eccf650482ad952be9737edb586d353c0","dweb:/ipfs/QmPmXVVmQ7MFPZupbLzGJQz2uUNRKxZMRPwYQ8WAZiyHoU"],"license":"MIT"}},"version":1},"id":44} \ No newline at end of file +{"abi":[{"type":"function","name":"_string","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040526040518060400160405280600b81526020017f48656c6c6f2057656233210000000000000000000000000000000000000000008152505f908161004791906102a7565b50348015610053575f5ffd5b50610376565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100d457607f821691505b6020821081036100e7576100e6610090565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261010e565b610153868361010e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019761019261018d8461016b565b610174565b61016b565b9050919050565b5f819050919050565b6101b08361017d565b6101c46101bc8261019e565b84845461011a565b825550505050565b5f5f905090565b6101db6101cc565b6101e68184846101a7565b505050565b5f5b8281101561020c576102015f8284016101d3565b6001810190506101ed565b505050565b601f82111561025f578282111561025e5761022b816100ed565b610234836100ff565b61023d856100ff565b602086101561024a575f90505b808301610259828403826101eb565b505050505b5b505050565b5f82821c905092915050565b5f61027f5f1984600802610264565b1980831691505092915050565b5f6102978383610270565b9150826002028217905092915050565b6102b082610059565b67ffffffffffffffff8111156102c9576102c8610063565b5b6102d382546100bd565b6102de828285610211565b5f60209050601f83116001811461030f575f84156102fd578287015190505b610307858261028c565b86555061036e565b601f19841661031d866100ed565b5f5b828110156103445784890151825560018201915060208501945060208101905061031f565b86831015610361578489015161035d601f891682610270565b8355505b6001600288020188555050505b505050505050565b6101f9806103835f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80639b267f091461002d575b5f5ffd5b61003561004b565b6040516100429190610146565b60405180910390f35b5f805461005790610193565b80601f016020809104026020016040519081016040528092919081815260200182805461008390610193565b80156100ce5780601f106100a5576101008083540402835291602001916100ce565b820191905f5260205f20905b8154815290600101906020018083116100b157829003601f168201915b505050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610118826100d6565b61012281856100e0565b93506101328185602086016100f0565b61013b816100fe565b840191505092915050565b5f6020820190508181035f83015261015e818461010e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101aa57607f821691505b6020821081036101bd576101bc610166565b5b5091905056fea2646970667358221220d44307577f7ea3339ad359ab6aef20564b980fc09211719f64fc018eaef7c90b64736f6c63430008220033","sourceMap":"57:64:44:-:0;;;81:37;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;57:64;;;;;;;;;;;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;57:64:44:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80639b267f091461002d575b5f5ffd5b61003561004b565b6040516100429190610146565b60405180910390f35b5f805461005790610193565b80601f016020809104026020016040519081016040528092919081815260200182805461008390610193565b80156100ce5780601f106100a5576101008083540402835291602001916100ce565b820191905f5260205f20905b8154815290600101906020018083116100b157829003601f168201915b505050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610118826100d6565b61012281856100e0565b93506101328185602086016100f0565b61013b816100fe565b840191505092915050565b5f6020820190508181035f83015261015e818461010e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101aa57607f821691505b6020821081036101bd576101bc610166565b5b5091905056fea2646970667358221220d44307577f7ea3339ad359ab6aef20564b980fc09211719f64fc018eaef7c90b64736f6c63430008220033","sourceMap":"57:64:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;81:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:180::-;1290:77;1287:1;1280:88;1387:4;1384:1;1377:15;1411:4;1408:1;1401:15;1428:320;1472:6;1509:1;1503:4;1499:12;1489:22;;1556:1;1550:4;1546:12;1577:18;1567:81;;1633:4;1625:6;1621:17;1611:27;;1567:81;1695:2;1687:6;1684:14;1664:18;1661:38;1658:84;;1714:18;;:::i;:::-;1658:84;1479:269;1428:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"_string()":"9b267f09"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_string\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/01_HelloWeb3/HelloWeb3.sol\":\"HelloWeb3\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/01_HelloWeb3/HelloWeb3.sol\":{\"keccak256\":\"0x960083aec2240c32bad037aa20e3cbff78def00e58e588a2f3676ed74164303c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2b17fc7e91a5d5676af150050ac341eccf650482ad952be9737edb586d353c0\",\"dweb:/ipfs/QmPmXVVmQ7MFPZupbLzGJQz2uUNRKxZMRPwYQ8WAZiyHoU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_string","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/01_HelloWeb3/HelloWeb3.sol":"HelloWeb3"},"evmVersion":"prague","libraries":{}},"sources":{"src/01_HelloWeb3/HelloWeb3.sol":{"keccak256":"0x960083aec2240c32bad037aa20e3cbff78def00e58e588a2f3676ed74164303c","urls":["bzz-raw://b2b17fc7e91a5d5676af150050ac341eccf650482ad952be9737edb586d353c0","dweb:/ipfs/QmPmXVVmQ7MFPZupbLzGJQz2uUNRKxZMRPwYQ8WAZiyHoU"],"license":"MIT"}},"version":1},"id":44} \ No newline at end of file diff --git a/out/Honeypot.sol/HoneyPot.json b/out/Honeypot.sol/HoneyPot.json index dae01da3..c344ea76 100644 --- a/out/Honeypot.sol/HoneyPot.json +++ b/out/Honeypot.sol/HoneyPot.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pair","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600881526020017f486f6e6579506f740000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5069205869750000000000000000000000000000000000000000000000000000815250816003908161008c9190610548565b50806004908161009c9190610548565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101069190610656565b60405180910390fd5b61011e8161023760201b60201c565b505f735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f90505f3090505f73b4fbf271143f4fbf7b91a5ded31805e42b2208d690505f5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061018f578284610192565b83835b915091505f82826040516020016101aa9291906106b4565b60405160208183030381529060405280519060200120905085816040516020016101d59291906107a6565b604051602081830303815290604052805190602001205f1c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506107e7565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061037557607f821691505b60208210810361038857610387610331565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103af565b6103f486836103af565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61043861043361042e8461040c565b610415565b61040c565b9050919050565b5f819050919050565b6104518361041e565b61046561045d8261043f565b8484546103bb565b825550505050565b5f5f905090565b61047c61046d565b610487818484610448565b505050565b5f5b828110156104ad576104a25f828401610474565b60018101905061048e565b505050565b601f82111561050057828211156104ff576104cc8161038e565b6104d5836103a0565b6104de856103a0565b60208610156104eb575f90505b8083016104fa8284038261048c565b505050505b5b505050565b5f82821c905092915050565b5f6105205f1984600802610505565b1980831691505092915050565b5f6105388383610511565b9150826002028217905092915050565b610551826102fa565b67ffffffffffffffff81111561056a57610569610304565b5b610574825461035e565b61057f8282856104b2565b5f60209050601f8311600181146105b0575f841561059e578287015190505b6105a8858261052d565b86555061060f565b601f1984166105be8661038e565b5f5b828110156105e5578489015182556001820191506020850194506020810190506105c0565b8683101561060257848901516105fe601f891682610511565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61064082610617565b9050919050565b61065081610636565b82525050565b5f6020820190506106695f830184610647565b92915050565b5f8160601b9050919050565b5f6106858261066f565b9050919050565b5f6106968261067b565b9050919050565b6106ae6106a982610636565b61068c565b82525050565b5f6106bf828561069d565b6014820191506106cf828461069d565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61071d6001836106df565b9150610728826106e9565b600182019050919050565b5f819050919050565b5f819050919050565b61075661075182610733565b61073c565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f6107906020836106df565b915061079b8261075c565b602082019050919050565b5f6107b082610711565b91506107bc828561069d565b6014820191506107cc8284610745565b6020820191506107db82610784565b91508190509392505050565b6112bc806107f45f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8aa1b3111610064578063a8aa1b3114610238578063a9059cbb14610256578063dd62ed3e14610286578063f2fde38b146102b6576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806395d89b411461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d2565b6040516101019190610ecd565b60405180910390f35b610124600480360381019061011f9190610f7e565b610362565b6040516101319190610fd6565b60405180910390f35b610142610384565b60405161014f9190610ffe565b60405180910390f35b610172600480360381019061016d9190611017565b61038d565b60405161017f9190610fd6565b60405180910390f35b6101906103bb565b60405161019d9190611082565b60405180910390f35b6101c060048036038101906101bb9190610f7e565b6103c3565b005b6101dc60048036038101906101d7919061109b565b6103d9565b6040516101e99190610ffe565b60405180910390f35b6101fa61041e565b005b610204610431565b60405161021191906110d5565b60405180910390f35b610222610459565b60405161022f9190610ecd565b60405180910390f35b6102406104e9565b60405161024d91906110d5565b60405180910390f35b610270600480360381019061026b9190610f7e565b61050e565b60405161027d9190610fd6565b60405180910390f35b6102a0600480360381019061029b91906110ee565b610530565b6040516102ad9190610ffe565b60405180910390f35b6102d060048036038101906102cb919061109b565b6105b2565b005b6060600380546102e190611159565b80601f016020809104026020016040519081016040528092919081815260200182805461030d90611159565b80156103585780601f1061032f57610100808354040283529160200191610358565b820191905f5260205f20905b81548152906001019060200180831161033b57829003601f168201915b5050505050905090565b5f5f61036c610636565b905061037981858561063d565b600191505092915050565b5f600254905090565b5f5f610397610636565b90506103a485828561064f565b6103af8585856106e2565b60019150509392505050565b5f6012905090565b6103cb6107d2565b6103d58282610859565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104266107d2565b61042f5f6108d8565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461046890611159565b80601f016020809104026020016040519081016040528092919081815260200182805461049490611159565b80156104df5780601f106104b6576101008083540402835291602001916104df565b820191905f5260205f20905b8154815290600101906020018083116104c257829003601f168201915b5050505050905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610518610636565b90506105258185856106e2565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6105ba6107d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361062a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062191906110d5565b60405180910390fd5b610633816108d8565b50565b5f33905090565b61064a838383600161099b565b505050565b5f61065a8484610530565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106dc57818110156106cd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106c493929190611189565b60405180910390fd5b6106db84848484035f61099b565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610752575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074991906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b991906110d5565b60405180910390fd5b6107cd838383610b6a565b505050565b6107da610636565b73ffffffffffffffffffffffffffffffffffffffff166107f8610431565b73ffffffffffffffffffffffffffffffffffffffff16146108575761081b610636565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161084e91906110d5565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108c091906110d5565b60405180910390fd5b6108d45f8383610b6a565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a0b575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a0291906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a7291906110d5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b64578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5b9190610ffe565b60405180910390a35b50505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c3457610bc6610431565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611208565b60405180910390fd5b5b610c3f838383610c44565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c94578060025f828254610c889190611253565b92505081905550610d62565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d1d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d1493929190611189565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da9578060025f8282540392505081905550610df3565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e509190610ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9f82610e5d565b610ea98185610e67565b9350610eb9818560208601610e77565b610ec281610e85565b840191505092915050565b5f6020820190508181035f830152610ee58184610e95565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f1a82610ef1565b9050919050565b610f2a81610f10565b8114610f34575f5ffd5b50565b5f81359050610f4581610f21565b92915050565b5f819050919050565b610f5d81610f4b565b8114610f67575f5ffd5b50565b5f81359050610f7881610f54565b92915050565b5f5f60408385031215610f9457610f93610eed565b5b5f610fa185828601610f37565b9250506020610fb285828601610f6a565b9150509250929050565b5f8115159050919050565b610fd081610fbc565b82525050565b5f602082019050610fe95f830184610fc7565b92915050565b610ff881610f4b565b82525050565b5f6020820190506110115f830184610fef565b92915050565b5f5f5f6060848603121561102e5761102d610eed565b5b5f61103b86828701610f37565b935050602061104c86828701610f37565b925050604061105d86828701610f6a565b9150509250925092565b5f60ff82169050919050565b61107c81611067565b82525050565b5f6020820190506110955f830184611073565b92915050565b5f602082840312156110b0576110af610eed565b5b5f6110bd84828501610f37565b91505092915050565b6110cf81610f10565b82525050565b5f6020820190506110e85f8301846110c6565b92915050565b5f5f6040838503121561110457611103610eed565b5b5f61111185828601610f37565b925050602061112285828601610f37565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061117057607f821691505b6020821081036111835761118261112c565b5b50919050565b5f60608201905061119c5f8301866110c6565b6111a96020830185610fef565b6111b66040830184610fef565b949350505050565b7f43616e206e6f74205472616e73666572000000000000000000000000000000005f82015250565b5f6111f2601083610e67565b91506111fd826111be565b602082019050919050565b5f6020820190508181035f83015261121f816111e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125d82610f4b565b915061126883610f4b565b92508282019050808211156112805761127f611226565b5b9291505056fea26469706673582212208401c369d090c794cc58806d5418b9a65b290a2a41d6c3f9073eaece6d573d3564736f6c63430008220033","sourceMap":"220:1391:136:-:0;;;340:755;;;;;;;;;;390:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;411:15:136::2;429:42;411:60;;510:14;535:4;510:30;;572:14;589:42;572:59;;658:14;674;701:6;692:15;;:6;:15;;;:53;;730:6;738;692:53;;;711:6;719;692:53;657:88;;;;791:12;833:6;841;816:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;806:43;;;;;;791:58;;974:7;991:4;931:153;;;;;;;;;:::i;:::-;;;;;;;;;;;;;921:164;;;;;;916:170;;893:4;;:195;;;;;;;;;;;;;;;;;;401:694;;;;;;220:1391:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;6051:94::-;6084:8;6132:5;6128:2;6124:14;6103:35;;6051:94;;;:::o;6151:::-;6190:7;6219:20;6233:5;6219:20;:::i;:::-;6208:31;;6151:94;;;:::o;6251:100::-;6290:7;6319:26;6339:5;6319:26;:::i;:::-;6308:37;;6251:100;;;:::o;6357:157::-;6462:45;6482:24;6500:5;6482:24;:::i;:::-;6462:45;:::i;:::-;6457:3;6450:58;6357:157;;:::o;6520:397::-;6660:3;6675:75;6746:3;6737:6;6675:75;:::i;:::-;6775:2;6770:3;6766:12;6759:19;;6788:75;6859:3;6850:6;6788:75;:::i;:::-;6888:2;6883:3;6879:12;6872:19;;6908:3;6901:10;;6520:397;;;;;:::o;6923:148::-;7025:11;7062:3;7047:18;;6923:148;;;;:::o;7077:214::-;7217:66;7213:1;7205:6;7201:14;7194:90;7077:214;:::o;7297:400::-;7457:3;7478:84;7560:1;7555:3;7478:84;:::i;:::-;7471:91;;7571:93;7660:3;7571:93;:::i;:::-;7689:1;7684:3;7680:11;7673:18;;7297:400;;;:::o;7703:77::-;7740:7;7769:5;7758:16;;7703:77;;;:::o;7786:79::-;7825:7;7854:5;7843:16;;7786:79;;;:::o;7871:157::-;7976:45;7996:24;8014:5;7996:24;:::i;:::-;7976:45;:::i;:::-;7971:3;7964:58;7871:157;;:::o;8034:214::-;8174:66;8170:1;8162:6;8158:14;8151:90;8034:214;:::o;8254:402::-;8414:3;8435:85;8517:2;8512:3;8435:85;:::i;:::-;8428:92;;8529:93;8618:3;8529:93;:::i;:::-;8647:2;8642:3;8638:12;8631:19;;8254:402;;;:::o;8662:929::-;9004:3;9026:148;9170:3;9026:148;:::i;:::-;9019:155;;9184:75;9255:3;9246:6;9184:75;:::i;:::-;9284:2;9279:3;9275:12;9268:19;;9297:75;9368:3;9359:6;9297:75;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9417:148;9561:3;9417:148;:::i;:::-;9410:155;;9582:3;9575:10;;8662:929;;;;;:::o;220:1391:136:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8aa1b3111610064578063a8aa1b3114610238578063a9059cbb14610256578063dd62ed3e14610286578063f2fde38b146102b6576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806395d89b411461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d2565b6040516101019190610ecd565b60405180910390f35b610124600480360381019061011f9190610f7e565b610362565b6040516101319190610fd6565b60405180910390f35b610142610384565b60405161014f9190610ffe565b60405180910390f35b610172600480360381019061016d9190611017565b61038d565b60405161017f9190610fd6565b60405180910390f35b6101906103bb565b60405161019d9190611082565b60405180910390f35b6101c060048036038101906101bb9190610f7e565b6103c3565b005b6101dc60048036038101906101d7919061109b565b6103d9565b6040516101e99190610ffe565b60405180910390f35b6101fa61041e565b005b610204610431565b60405161021191906110d5565b60405180910390f35b610222610459565b60405161022f9190610ecd565b60405180910390f35b6102406104e9565b60405161024d91906110d5565b60405180910390f35b610270600480360381019061026b9190610f7e565b61050e565b60405161027d9190610fd6565b60405180910390f35b6102a0600480360381019061029b91906110ee565b610530565b6040516102ad9190610ffe565b60405180910390f35b6102d060048036038101906102cb919061109b565b6105b2565b005b6060600380546102e190611159565b80601f016020809104026020016040519081016040528092919081815260200182805461030d90611159565b80156103585780601f1061032f57610100808354040283529160200191610358565b820191905f5260205f20905b81548152906001019060200180831161033b57829003601f168201915b5050505050905090565b5f5f61036c610636565b905061037981858561063d565b600191505092915050565b5f600254905090565b5f5f610397610636565b90506103a485828561064f565b6103af8585856106e2565b60019150509392505050565b5f6012905090565b6103cb6107d2565b6103d58282610859565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104266107d2565b61042f5f6108d8565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461046890611159565b80601f016020809104026020016040519081016040528092919081815260200182805461049490611159565b80156104df5780601f106104b6576101008083540402835291602001916104df565b820191905f5260205f20905b8154815290600101906020018083116104c257829003601f168201915b5050505050905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610518610636565b90506105258185856106e2565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6105ba6107d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361062a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062191906110d5565b60405180910390fd5b610633816108d8565b50565b5f33905090565b61064a838383600161099b565b505050565b5f61065a8484610530565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106dc57818110156106cd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106c493929190611189565b60405180910390fd5b6106db84848484035f61099b565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610752575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074991906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b991906110d5565b60405180910390fd5b6107cd838383610b6a565b505050565b6107da610636565b73ffffffffffffffffffffffffffffffffffffffff166107f8610431565b73ffffffffffffffffffffffffffffffffffffffff16146108575761081b610636565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161084e91906110d5565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108c091906110d5565b60405180910390fd5b6108d45f8383610b6a565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a0b575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a0291906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a7291906110d5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b64578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5b9190610ffe565b60405180910390a35b50505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c3457610bc6610431565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611208565b60405180910390fd5b5b610c3f838383610c44565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c94578060025f828254610c889190611253565b92505081905550610d62565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d1d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d1493929190611189565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da9578060025f8282540392505081905550610df3565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e509190610ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9f82610e5d565b610ea98185610e67565b9350610eb9818560208601610e77565b610ec281610e85565b840191505092915050565b5f6020820190508181035f830152610ee58184610e95565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f1a82610ef1565b9050919050565b610f2a81610f10565b8114610f34575f5ffd5b50565b5f81359050610f4581610f21565b92915050565b5f819050919050565b610f5d81610f4b565b8114610f67575f5ffd5b50565b5f81359050610f7881610f54565b92915050565b5f5f60408385031215610f9457610f93610eed565b5b5f610fa185828601610f37565b9250506020610fb285828601610f6a565b9150509250929050565b5f8115159050919050565b610fd081610fbc565b82525050565b5f602082019050610fe95f830184610fc7565b92915050565b610ff881610f4b565b82525050565b5f6020820190506110115f830184610fef565b92915050565b5f5f5f6060848603121561102e5761102d610eed565b5b5f61103b86828701610f37565b935050602061104c86828701610f37565b925050604061105d86828701610f6a565b9150509250925092565b5f60ff82169050919050565b61107c81611067565b82525050565b5f6020820190506110955f830184611073565b92915050565b5f602082840312156110b0576110af610eed565b5b5f6110bd84828501610f37565b91505092915050565b6110cf81610f10565b82525050565b5f6020820190506110e85f8301846110c6565b92915050565b5f5f6040838503121561110457611103610eed565b5b5f61111185828601610f37565b925050602061112285828601610f37565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061117057607f821691505b6020821081036111835761118261112c565b5b50919050565b5f60608201905061119c5f8301866110c6565b6111a96020830185610fef565b6111b66040830184610fef565b949350505050565b7f43616e206e6f74205472616e73666572000000000000000000000000000000005f82015250565b5f6111f2601083610e67565b91506111fd826111be565b602082019050919050565b5f6020820190508181035f83015261121f816111e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125d82610f4b565b915061126883610f4b565b92508282019050808211156112805761127f611226565b5b9291505056fea26469706673582212208401c369d090c794cc58806d5418b9a65b290a2a41d6c3f9073eaece6d573d3564736f6c63430008220033","sourceMap":"220:1391:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1177:90:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;262:19:136;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;1177:90:136:-;1531:13:19;:11;:13::i;:::-;1243:17:136::1;1249:2;1253:6;1243:5;:17::i;:::-;1177:90:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;262:19:136:-;;;;;;;;;;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;1375:234:136:-;1498:4;;;;;;;;;;;1492:10;;:2;:10;;;1489:77;;1529:7;:5;:7::i;:::-;1521:15;;:4;:15;;;1513:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;1489:77;1573:31;1587:4;1593:2;1597:6;1573:13;:31::i;:::-;1375:234;;;:::o;5912:1107:22:-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:166::-;7013:18;7009:1;7001:6;6997:14;6990:42;6873:166;:::o;7045:366::-;7187:3;7208:67;7272:2;7267:3;7208:67;:::i;:::-;7201:74;;7284:93;7373:3;7284:93;:::i;:::-;7402:2;7397:3;7393:12;7386:19;;7045:366;;;:::o;7417:419::-;7583:4;7621:2;7610:9;7606:18;7598:26;;7670:9;7664:4;7660:20;7656:1;7645:9;7641:17;7634:47;7698:131;7824:4;7698:131;:::i;:::-;7690:139;;7417:419;;;:::o;7842:180::-;7890:77;7887:1;7880:88;7987:4;7984:1;7977:15;8011:4;8008:1;8001:15;8028:191;8068:3;8087:20;8105:1;8087:20;:::i;:::-;8082:25;;8121:20;8139:1;8121:20;:::i;:::-;8116:25;;8164:1;8161;8157:9;8150:16;;8185:3;8182:1;8179:10;8176:36;;;8192:18;;:::i;:::-;8176:36;8028:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","pair()":"a8aa1b31","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{\"mint(address,uint256)\":{\"notice\":\"\\u94f8\\u9020\\u51fd\\u6570\\uff0c\\u53ea\\u6709\\u5408\\u7ea6\\u6240\\u6709\\u8005\\u53ef\\u4ee5\\u8c03\\u7528\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S10_Honeypot/Honeypot.sol\":\"HoneyPot\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S10_Honeypot/Honeypot.sol\":{\"keccak256\":\"0xa9df98dc1abaf2950a2d2c57c3e5057b2e8c703c3a30bc8cd25da4b8286013e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://448d9dc0ff7eef7dcb16fe5eb42cf220213e30d6749433a5e5daef291fb5b5eb\",\"dweb:/ipfs/QmTopoXdvCHsBCjAngR3fc6tW8knmMXyT1ZtWZWCiC39xc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{"mint(address,uint256)":{"notice":"铸造函数,只有合约所有者可以调用"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S10_Honeypot/Honeypot.sol":"HoneyPot"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S10_Honeypot/Honeypot.sol":{"keccak256":"0xa9df98dc1abaf2950a2d2c57c3e5057b2e8c703c3a30bc8cd25da4b8286013e7","urls":["bzz-raw://448d9dc0ff7eef7dcb16fe5eb42cf220213e30d6749433a5e5daef291fb5b5eb","dweb:/ipfs/QmTopoXdvCHsBCjAngR3fc6tW8knmMXyT1ZtWZWCiC39xc"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pair","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"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":"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50336040518060400160405280600881526020017f486f6e6579506f740000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5069205869750000000000000000000000000000000000000000000000000000815250816003908161008c9190610548565b50806004908161009c9190610548565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101069190610656565b60405180910390fd5b61011e8161023760201b60201c565b505f735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f90505f3090505f73b4fbf271143f4fbf7b91a5ded31805e42b2208d690505f5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061018f578284610192565b83835b915091505f82826040516020016101aa9291906106b4565b60405160208183030381529060405280519060200120905085816040516020016101d59291906107a6565b604051602081830303815290604052805190602001205f1c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506107e7565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061037557607f821691505b60208210810361038857610387610331565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826103af565b6103f486836103af565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61043861043361042e8461040c565b610415565b61040c565b9050919050565b5f819050919050565b6104518361041e565b61046561045d8261043f565b8484546103bb565b825550505050565b5f5f905090565b61047c61046d565b610487818484610448565b505050565b5f5b828110156104ad576104a25f828401610474565b60018101905061048e565b505050565b601f82111561050057828211156104ff576104cc8161038e565b6104d5836103a0565b6104de856103a0565b60208610156104eb575f90505b8083016104fa8284038261048c565b505050505b5b505050565b5f82821c905092915050565b5f6105205f1984600802610505565b1980831691505092915050565b5f6105388383610511565b9150826002028217905092915050565b610551826102fa565b67ffffffffffffffff81111561056a57610569610304565b5b610574825461035e565b61057f8282856104b2565b5f60209050601f8311600181146105b0575f841561059e578287015190505b6105a8858261052d565b86555061060f565b601f1984166105be8661038e565b5f5b828110156105e5578489015182556001820191506020850194506020810190506105c0565b8683101561060257848901516105fe601f891682610511565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61064082610617565b9050919050565b61065081610636565b82525050565b5f6020820190506106695f830184610647565b92915050565b5f8160601b9050919050565b5f6106858261066f565b9050919050565b5f6106968261067b565b9050919050565b6106ae6106a982610636565b61068c565b82525050565b5f6106bf828561069d565b6014820191506106cf828461069d565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61071d6001836106df565b9150610728826106e9565b600182019050919050565b5f819050919050565b5f819050919050565b61075661075182610733565b61073c565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f6107906020836106df565b915061079b8261075c565b602082019050919050565b5f6107b082610711565b91506107bc828561069d565b6014820191506107cc8284610745565b6020820191506107db82610784565b91508190509392505050565b6112bc806107f45f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8aa1b3111610064578063a8aa1b3114610238578063a9059cbb14610256578063dd62ed3e14610286578063f2fde38b146102b6576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806395d89b411461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d2565b6040516101019190610ecd565b60405180910390f35b610124600480360381019061011f9190610f7e565b610362565b6040516101319190610fd6565b60405180910390f35b610142610384565b60405161014f9190610ffe565b60405180910390f35b610172600480360381019061016d9190611017565b61038d565b60405161017f9190610fd6565b60405180910390f35b6101906103bb565b60405161019d9190611082565b60405180910390f35b6101c060048036038101906101bb9190610f7e565b6103c3565b005b6101dc60048036038101906101d7919061109b565b6103d9565b6040516101e99190610ffe565b60405180910390f35b6101fa61041e565b005b610204610431565b60405161021191906110d5565b60405180910390f35b610222610459565b60405161022f9190610ecd565b60405180910390f35b6102406104e9565b60405161024d91906110d5565b60405180910390f35b610270600480360381019061026b9190610f7e565b61050e565b60405161027d9190610fd6565b60405180910390f35b6102a0600480360381019061029b91906110ee565b610530565b6040516102ad9190610ffe565b60405180910390f35b6102d060048036038101906102cb919061109b565b6105b2565b005b6060600380546102e190611159565b80601f016020809104026020016040519081016040528092919081815260200182805461030d90611159565b80156103585780601f1061032f57610100808354040283529160200191610358565b820191905f5260205f20905b81548152906001019060200180831161033b57829003601f168201915b5050505050905090565b5f5f61036c610636565b905061037981858561063d565b600191505092915050565b5f600254905090565b5f5f610397610636565b90506103a485828561064f565b6103af8585856106e2565b60019150509392505050565b5f6012905090565b6103cb6107d2565b6103d58282610859565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104266107d2565b61042f5f6108d8565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461046890611159565b80601f016020809104026020016040519081016040528092919081815260200182805461049490611159565b80156104df5780601f106104b6576101008083540402835291602001916104df565b820191905f5260205f20905b8154815290600101906020018083116104c257829003601f168201915b5050505050905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610518610636565b90506105258185856106e2565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6105ba6107d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361062a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062191906110d5565b60405180910390fd5b610633816108d8565b50565b5f33905090565b61064a838383600161099b565b505050565b5f61065a8484610530565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106dc57818110156106cd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106c493929190611189565b60405180910390fd5b6106db84848484035f61099b565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610752575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074991906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b991906110d5565b60405180910390fd5b6107cd838383610b6a565b505050565b6107da610636565b73ffffffffffffffffffffffffffffffffffffffff166107f8610431565b73ffffffffffffffffffffffffffffffffffffffff16146108575761081b610636565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161084e91906110d5565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108c091906110d5565b60405180910390fd5b6108d45f8383610b6a565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a0b575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a0291906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a7291906110d5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b64578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5b9190610ffe565b60405180910390a35b50505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c3457610bc6610431565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611208565b60405180910390fd5b5b610c3f838383610c44565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c94578060025f828254610c889190611253565b92505081905550610d62565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d1d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d1493929190611189565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da9578060025f8282540392505081905550610df3565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e509190610ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9f82610e5d565b610ea98185610e67565b9350610eb9818560208601610e77565b610ec281610e85565b840191505092915050565b5f6020820190508181035f830152610ee58184610e95565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f1a82610ef1565b9050919050565b610f2a81610f10565b8114610f34575f5ffd5b50565b5f81359050610f4581610f21565b92915050565b5f819050919050565b610f5d81610f4b565b8114610f67575f5ffd5b50565b5f81359050610f7881610f54565b92915050565b5f5f60408385031215610f9457610f93610eed565b5b5f610fa185828601610f37565b9250506020610fb285828601610f6a565b9150509250929050565b5f8115159050919050565b610fd081610fbc565b82525050565b5f602082019050610fe95f830184610fc7565b92915050565b610ff881610f4b565b82525050565b5f6020820190506110115f830184610fef565b92915050565b5f5f5f6060848603121561102e5761102d610eed565b5b5f61103b86828701610f37565b935050602061104c86828701610f37565b925050604061105d86828701610f6a565b9150509250925092565b5f60ff82169050919050565b61107c81611067565b82525050565b5f6020820190506110955f830184611073565b92915050565b5f602082840312156110b0576110af610eed565b5b5f6110bd84828501610f37565b91505092915050565b6110cf81610f10565b82525050565b5f6020820190506110e85f8301846110c6565b92915050565b5f5f6040838503121561110457611103610eed565b5b5f61111185828601610f37565b925050602061112285828601610f37565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061117057607f821691505b6020821081036111835761118261112c565b5b50919050565b5f60608201905061119c5f8301866110c6565b6111a96020830185610fef565b6111b66040830184610fef565b949350505050565b7f43616e206e6f74205472616e73666572000000000000000000000000000000005f82015250565b5f6111f2601083610e67565b91506111fd826111be565b602082019050919050565b5f6020820190508181035f83015261121f816111e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125d82610f4b565b915061126883610f4b565b92508282019050808211156112805761127f611226565b5b9291505056fea26469706673582212208401c369d090c794cc58806d5418b9a65b290a2a41d6c3f9073eaece6d573d3564736f6c63430008220033","sourceMap":"220:1391:130:-:0;;;340:755;;;;;;;;;;390:10;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;1297:1:19;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;411:15:130::2;429:42;411:60;;510:14;535:4;510:30;;572:14;589:42;572:59;;658:14;674;701:6;692:15;;:6;:15;;;:53;;730:6;738;692:53;;;711:6;719;692:53;657:88;;;;791:12;833:6;841;816:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;806:43;;;;;;791:58;;974:7;991:4;931:153;;;;;;;;;:::i;:::-;;;;;;;;;;;;;921:164;;;;;;916:170;;893:4;;:195;;;;;;;;;;;;;;;;;;401:694;;;;;;220:1391:::0;;2912:187:19;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;5465:126::-;5502:7;5542:42;5535:5;5531:54;5520:65;;5465:126;;;:::o;5597:96::-;5634:7;5663:24;5681:5;5663:24;:::i;:::-;5652:35;;5597:96;;;:::o;5699:118::-;5786:24;5804:5;5786:24;:::i;:::-;5781:3;5774:37;5699:118;;:::o;5823:222::-;5916:4;5954:2;5943:9;5939:18;5931:26;;5967:71;6035:1;6024:9;6020:17;6011:6;5967:71;:::i;:::-;5823:222;;;;:::o;6051:94::-;6084:8;6132:5;6128:2;6124:14;6103:35;;6051:94;;;:::o;6151:::-;6190:7;6219:20;6233:5;6219:20;:::i;:::-;6208:31;;6151:94;;;:::o;6251:100::-;6290:7;6319:26;6339:5;6319:26;:::i;:::-;6308:37;;6251:100;;;:::o;6357:157::-;6462:45;6482:24;6500:5;6482:24;:::i;:::-;6462:45;:::i;:::-;6457:3;6450:58;6357:157;;:::o;6520:397::-;6660:3;6675:75;6746:3;6737:6;6675:75;:::i;:::-;6775:2;6770:3;6766:12;6759:19;;6788:75;6859:3;6850:6;6788:75;:::i;:::-;6888:2;6883:3;6879:12;6872:19;;6908:3;6901:10;;6520:397;;;;;:::o;6923:148::-;7025:11;7062:3;7047:18;;6923:148;;;;:::o;7077:214::-;7217:66;7213:1;7205:6;7201:14;7194:90;7077:214;:::o;7297:400::-;7457:3;7478:84;7560:1;7555:3;7478:84;:::i;:::-;7471:91;;7571:93;7660:3;7571:93;:::i;:::-;7689:1;7684:3;7680:11;7673:18;;7297:400;;;:::o;7703:77::-;7740:7;7769:5;7758:16;;7703:77;;;:::o;7786:79::-;7825:7;7854:5;7843:16;;7786:79;;;:::o;7871:157::-;7976:45;7996:24;8014:5;7996:24;:::i;:::-;7976:45;:::i;:::-;7971:3;7964:58;7871:157;;:::o;8034:214::-;8174:66;8170:1;8162:6;8158:14;8151:90;8034:214;:::o;8254:402::-;8414:3;8435:85;8517:2;8512:3;8435:85;:::i;:::-;8428:92;;8529:93;8618:3;8529:93;:::i;:::-;8647:2;8642:3;8638:12;8631:19;;8254:402;;;:::o;8662:929::-;9004:3;9026:148;9170:3;9026:148;:::i;:::-;9019:155;;9184:75;9255:3;9246:6;9184:75;:::i;:::-;9284:2;9279:3;9275:12;9268:19;;9297:75;9368:3;9359:6;9297:75;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9417:148;9561:3;9417:148;:::i;:::-;9410:155;;9582:3;9575:10;;8662:929;;;;;:::o;220:1391:130:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c8063715018a61161008a578063a8aa1b3111610064578063a8aa1b3114610238578063a9059cbb14610256578063dd62ed3e14610286578063f2fde38b146102b6576100e8565b8063715018a6146101f25780638da5cb5b146101fc57806395d89b411461021a576100e8565b806323b872dd116100c657806323b872dd14610158578063313ce5671461018857806340c10f19146101a657806370a08231146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f5ffd5b6100f46102d2565b6040516101019190610ecd565b60405180910390f35b610124600480360381019061011f9190610f7e565b610362565b6040516101319190610fd6565b60405180910390f35b610142610384565b60405161014f9190610ffe565b60405180910390f35b610172600480360381019061016d9190611017565b61038d565b60405161017f9190610fd6565b60405180910390f35b6101906103bb565b60405161019d9190611082565b60405180910390f35b6101c060048036038101906101bb9190610f7e565b6103c3565b005b6101dc60048036038101906101d7919061109b565b6103d9565b6040516101e99190610ffe565b60405180910390f35b6101fa61041e565b005b610204610431565b60405161021191906110d5565b60405180910390f35b610222610459565b60405161022f9190610ecd565b60405180910390f35b6102406104e9565b60405161024d91906110d5565b60405180910390f35b610270600480360381019061026b9190610f7e565b61050e565b60405161027d9190610fd6565b60405180910390f35b6102a0600480360381019061029b91906110ee565b610530565b6040516102ad9190610ffe565b60405180910390f35b6102d060048036038101906102cb919061109b565b6105b2565b005b6060600380546102e190611159565b80601f016020809104026020016040519081016040528092919081815260200182805461030d90611159565b80156103585780601f1061032f57610100808354040283529160200191610358565b820191905f5260205f20905b81548152906001019060200180831161033b57829003601f168201915b5050505050905090565b5f5f61036c610636565b905061037981858561063d565b600191505092915050565b5f600254905090565b5f5f610397610636565b90506103a485828561064f565b6103af8585856106e2565b60019150509392505050565b5f6012905090565b6103cb6107d2565b6103d58282610859565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104266107d2565b61042f5f6108d8565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461046890611159565b80601f016020809104026020016040519081016040528092919081815260200182805461049490611159565b80156104df5780601f106104b6576101008083540402835291602001916104df565b820191905f5260205f20905b8154815290600101906020018083116104c257829003601f168201915b5050505050905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610518610636565b90506105258185856106e2565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6105ba6107d2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361062a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062191906110d5565b60405180910390fd5b610633816108d8565b50565b5f33905090565b61064a838383600161099b565b505050565b5f61065a8484610530565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106dc57818110156106cd578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106c493929190611189565b60405180910390fd5b6106db84848484035f61099b565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610752575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074991906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107b991906110d5565b60405180910390fd5b6107cd838383610b6a565b505050565b6107da610636565b73ffffffffffffffffffffffffffffffffffffffff166107f8610431565b73ffffffffffffffffffffffffffffffffffffffff16146108575761081b610636565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161084e91906110d5565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108c091906110d5565b60405180910390fd5b6108d45f8383610b6a565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a0b575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a0291906110d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a7291906110d5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b64578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b5b9190610ffe565b60405180910390a35b50505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c3457610bc6610431565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611208565b60405180910390fd5b5b610c3f838383610c44565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c94578060025f828254610c889190611253565b92505081905550610d62565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d1d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d1493929190611189565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da9578060025f8282540392505081905550610df3565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e509190610ffe565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610e9f82610e5d565b610ea98185610e67565b9350610eb9818560208601610e77565b610ec281610e85565b840191505092915050565b5f6020820190508181035f830152610ee58184610e95565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f1a82610ef1565b9050919050565b610f2a81610f10565b8114610f34575f5ffd5b50565b5f81359050610f4581610f21565b92915050565b5f819050919050565b610f5d81610f4b565b8114610f67575f5ffd5b50565b5f81359050610f7881610f54565b92915050565b5f5f60408385031215610f9457610f93610eed565b5b5f610fa185828601610f37565b9250506020610fb285828601610f6a565b9150509250929050565b5f8115159050919050565b610fd081610fbc565b82525050565b5f602082019050610fe95f830184610fc7565b92915050565b610ff881610f4b565b82525050565b5f6020820190506110115f830184610fef565b92915050565b5f5f5f6060848603121561102e5761102d610eed565b5b5f61103b86828701610f37565b935050602061104c86828701610f37565b925050604061105d86828701610f6a565b9150509250925092565b5f60ff82169050919050565b61107c81611067565b82525050565b5f6020820190506110955f830184611073565b92915050565b5f602082840312156110b0576110af610eed565b5b5f6110bd84828501610f37565b91505092915050565b6110cf81610f10565b82525050565b5f6020820190506110e85f8301846110c6565b92915050565b5f5f6040838503121561110457611103610eed565b5b5f61111185828601610f37565b925050602061112285828601610f37565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061117057607f821691505b6020821081036111835761118261112c565b5b50919050565b5f60608201905061119c5f8301866110c6565b6111a96020830185610fef565b6111b66040830184610fef565b949350505050565b7f43616e206e6f74205472616e73666572000000000000000000000000000000005f82015250565b5f6111f2601083610e67565b91506111fd826111be565b602082019050919050565b5f6020820190508181035f83015261121f816111e6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125d82610f4b565b915061126883610f4b565b92508282019050808211156112805761127f611226565b5b9291505056fea26469706673582212208401c369d090c794cc58806d5418b9a65b290a2a41d6c3f9073eaece6d573d3564736f6c63430008220033","sourceMap":"220:1391:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1177:90:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:101:19;;;:::i;:::-;;1638:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;262:19:130;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;1177:90:130:-;1531:13:19;:11;:13::i;:::-;1243:17:130::1;1249:2;1253:6;1243:5;:17::i;:::-;1177:90:::0;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2293:101:19:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1638:85::-;1684:7;1710:6;;;;;;;;;;;1703:13;;1638:85;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;262:19:130:-;;;;;;;;;;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;2543:215:19:-;1531:13;:11;:13::i;:::-;2647:1:::1;2627:22;;:8;:22;;::::0;2623:91:::1;;2700:1;2672:31;;;;;;;;;;;:::i;:::-;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;1796:162:19:-;1866:12;:10;:12::i;:::-;1855:23;;:7;:5;:7::i;:::-;:23;;;1851:101;;1928:12;:10;:12::i;:::-;1901:40;;;;;;;;;;;:::i;:::-;;;;;;;;1851:101;1796:162::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;2912:187:19:-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;9607:432:22:-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;1375:234:130:-;1498:4;;;;;;;;;;;1492:10;;:2;:10;;;1489:77;;1529:7;:5;:7::i;:::-;1521:15;;:4;:15;;;1513:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;1489:77;1573:31;1587:4;1593:2;1597:6;1573:13;:31::i;:::-;1375:234;;;:::o;5912:1107:22:-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:442::-;6574:4;6612:2;6601:9;6597:18;6589:26;;6625:71;6693:1;6682:9;6678:17;6669:6;6625:71;:::i;:::-;6706:72;6774:2;6763:9;6759:18;6750:6;6706:72;:::i;:::-;6788;6856:2;6845:9;6841:18;6832:6;6788:72;:::i;:::-;6425:442;;;;;;:::o;6873:166::-;7013:18;7009:1;7001:6;6997:14;6990:42;6873:166;:::o;7045:366::-;7187:3;7208:67;7272:2;7267:3;7208:67;:::i;:::-;7201:74;;7284:93;7373:3;7284:93;:::i;:::-;7402:2;7397:3;7393:12;7386:19;;7045:366;;;:::o;7417:419::-;7583:4;7621:2;7610:9;7606:18;7598:26;;7670:9;7664:4;7660:20;7656:1;7645:9;7641:17;7634:47;7698:131;7824:4;7698:131;:::i;:::-;7690:139;;7417:419;;;:::o;7842:180::-;7890:77;7887:1;7880:88;7987:4;7984:1;7977:15;8011:4;8008:1;8001:15;8028:191;8068:3;8087:20;8105:1;8087:20;:::i;:::-;8082:25;;8121:20;8139:1;8121:20;:::i;:::-;8116:25;;8164:1;8161;8157:9;8150:16;;8185:3;8182:1;8179:10;8176:36;;;8192:18;;:::i;:::-;8176:36;8028:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","pair()":"a8aa1b31","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"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\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}],\"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.\"}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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.\"},\"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\":{\"mint(address,uint256)\":{\"notice\":\"\\u94f8\\u9020\\u51fd\\u6570\\uff0c\\u53ea\\u6709\\u5408\\u7ea6\\u6240\\u6709\\u8005\\u53ef\\u4ee5\\u8c03\\u7528\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S10_Honeypot/Honeypot.sol\":\"HoneyPot\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S10_Honeypot/Honeypot.sol\":{\"keccak256\":\"0xa9df98dc1abaf2950a2d2c57c3e5057b2e8c703c3a30bc8cd25da4b8286013e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://448d9dc0ff7eef7dcb16fe5eb42cf220213e30d6749433a5e5daef291fb5b5eb\",\"dweb:/ipfs/QmTopoXdvCHsBCjAngR3fc6tW8knmMXyT1ZtWZWCiC39xc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"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."},"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":{"mint(address,uint256)":{"notice":"铸造函数,只有合约所有者可以调用"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S10_Honeypot/Honeypot.sol":"HoneyPot"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S10_Honeypot/Honeypot.sol":{"keccak256":"0xa9df98dc1abaf2950a2d2c57c3e5057b2e8c703c3a30bc8cd25da4b8286013e7","urls":["bzz-raw://448d9dc0ff7eef7dcb16fe5eb42cf220213e30d6749433a5e5daef291fb5b5eb","dweb:/ipfs/QmTopoXdvCHsBCjAngR3fc6tW8knmMXyT1ZtWZWCiC39xc"],"license":"MIT"}},"version":1},"id":130} \ No newline at end of file diff --git a/out/IERC1155.sol/IERC1155.json b/out/IERC1155.sol/IERC1155.json index c3e3a1a8..5ef278ec 100644 --- a/out/IERC1155.sol/IERC1155.json +++ b/out/IERC1155.sol/IERC1155.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u6807\\u51c6\\u7684\\u63a5\\u53e3\\u5408\\u7ea6\\uff0c\\u5b9e\\u73b0\\u4e86EIP1155\\u7684\\u529f\\u80fd \\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c\\u8fd4\\u56de`account`\\u62e5\\u6709\\u7684`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684\\u6301\\u4ed3\\u91cf\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c`accounts`\\u548c`ids`\\u6570\\u7ec4\\u7684\\u957f\\u5ea6\\u8981\\u60f3\\u7b49\\u3002\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u67e5\\u8be2\\uff0c\\u5982\\u679c\\u6388\\u6743\\u5730\\u5740`operator`\\u88ab`account`\\u6388\\u6743\\uff0c\\u5219\\u8fd4\\u56de`true` \\u89c1 {setApprovalForAll}\\u51fd\\u6570.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26 \\u91ca\\u653e{TransferBatch}\\u4e8b\\u4ef6 \\u8981\\u6c42\\uff1a - `ids`\\u548c`amounts`\\u957f\\u5ea6\\u76f8\\u7b49 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155BatchReceived`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u7ed9`to`. \\u91ca\\u653e{TransferSingle}\\u4e8b\\u4ef6. \\u8981\\u6c42: - \\u5982\\u679c\\u8c03\\u7528\\u8005\\u4e0d\\u662f`from`\\u5730\\u5740\\u800c\\u662f\\u6388\\u6743\\u5730\\u5740\\uff0c\\u5219\\u9700\\u8981\\u5f97\\u5230`from`\\u7684\\u6388\\u6743 - `from`\\u5730\\u5740\\u5fc5\\u987b\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155Received`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u5c06\\u8c03\\u7528\\u8005\\u7684\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u5730\\u5740\\u3002 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询,返回`account`拥有的`id`种类的代币的持仓量"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询,`accounts`和`ids`数组的长度要想等。"},"isApprovedForAll(address,address)":{"details":"批量授权查询,如果授权地址`operator`被`account`授权,则返回`true` 见 {setApprovalForAll}函数."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账 释放{TransferBatch}事件 要求: - `ids`和`amounts`长度相等 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155BatchReceived`方法,并返回相应的值"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位`id`种类的代币从`from`转账给`to`. 释放{TransferSingle}事件. 要求: - 如果调用者不是`from`地址而是授权地址,则需要得到`from`的授权 - `from`地址必须有足够的持仓 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155Received`方法,并返回相应的值"},"setApprovalForAll(address,bool)":{"details":"批量授权,将调用者的代币授权给`operator`地址。 释放{ApprovalForAll}事件."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155.sol":"IERC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u6807\\u51c6\\u7684\\u63a5\\u53e3\\u5408\\u7ea6\\uff0c\\u5b9e\\u73b0\\u4e86EIP1155\\u7684\\u529f\\u80fd \\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c\\u8fd4\\u56de`account`\\u62e5\\u6709\\u7684`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684\\u6301\\u4ed3\\u91cf\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c`accounts`\\u548c`ids`\\u6570\\u7ec4\\u7684\\u957f\\u5ea6\\u8981\\u60f3\\u7b49\\u3002\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u67e5\\u8be2\\uff0c\\u5982\\u679c\\u6388\\u6743\\u5730\\u5740`operator`\\u88ab`account`\\u6388\\u6743\\uff0c\\u5219\\u8fd4\\u56de`true` \\u89c1 {setApprovalForAll}\\u51fd\\u6570.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26 \\u91ca\\u653e{TransferBatch}\\u4e8b\\u4ef6 \\u8981\\u6c42\\uff1a - `ids`\\u548c`amounts`\\u957f\\u5ea6\\u76f8\\u7b49 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155BatchReceived`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u7ed9`to`. \\u91ca\\u653e{TransferSingle}\\u4e8b\\u4ef6. \\u8981\\u6c42: - \\u5982\\u679c\\u8c03\\u7528\\u8005\\u4e0d\\u662f`from`\\u5730\\u5740\\u800c\\u662f\\u6388\\u6743\\u5730\\u5740\\uff0c\\u5219\\u9700\\u8981\\u5f97\\u5230`from`\\u7684\\u6388\\u6743 - `from`\\u5730\\u5740\\u5fc5\\u987b\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155Received`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u5c06\\u8c03\\u7528\\u8005\\u7684\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u5730\\u5740\\u3002 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询,返回`account`拥有的`id`种类的代币的持仓量"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询,`accounts`和`ids`数组的长度要想等。"},"isApprovedForAll(address,address)":{"details":"批量授权查询,如果授权地址`operator`被`account`授权,则返回`true` 见 {setApprovalForAll}函数."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账 释放{TransferBatch}事件 要求: - `ids`和`amounts`长度相等 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155BatchReceived`方法,并返回相应的值"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位`id`种类的代币从`from`转账给`to`. 释放{TransferSingle}事件. 要求: - 如果调用者不是`from`地址而是授权地址,则需要得到`from`的授权 - `from`地址必须有足够的持仓 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155Received`方法,并返回相应的值"},"setApprovalForAll(address,bool)":{"details":"批量授权,将调用者的代币授权给`operator`地址。 释放{ApprovalForAll}事件."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155.sol":"IERC1155"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file diff --git a/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json b/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json index f8a947cf..eedb6f43 100644 --- a/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +++ b/out/IERC1155MetadataURI.sol/IERC1155MetadataURI.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u7684\\u53ef\\u9009\\u63a5\\u53e3\\uff0c\\u52a0\\u5165\\u4e86uri()\\u51fd\\u6570\\u67e5\\u8be2\\u5143\\u6570\\u636e\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c\\u8fd4\\u56de`account`\\u62e5\\u6709\\u7684`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684\\u6301\\u4ed3\\u91cf\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c`accounts`\\u548c`ids`\\u6570\\u7ec4\\u7684\\u957f\\u5ea6\\u8981\\u60f3\\u7b49\\u3002\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u67e5\\u8be2\\uff0c\\u5982\\u679c\\u6388\\u6743\\u5730\\u5740`operator`\\u88ab`account`\\u6388\\u6743\\uff0c\\u5219\\u8fd4\\u56de`true` \\u89c1 {setApprovalForAll}\\u51fd\\u6570.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26 \\u91ca\\u653e{TransferBatch}\\u4e8b\\u4ef6 \\u8981\\u6c42\\uff1a - `ids`\\u548c`amounts`\\u957f\\u5ea6\\u76f8\\u7b49 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155BatchReceived`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u7ed9`to`. \\u91ca\\u653e{TransferSingle}\\u4e8b\\u4ef6. \\u8981\\u6c42: - \\u5982\\u679c\\u8c03\\u7528\\u8005\\u4e0d\\u662f`from`\\u5730\\u5740\\u800c\\u662f\\u6388\\u6743\\u5730\\u5740\\uff0c\\u5219\\u9700\\u8981\\u5f97\\u5230`from`\\u7684\\u6388\\u6743 - `from`\\u5730\\u5740\\u5fc5\\u987b\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155Received`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u5c06\\u8c03\\u7528\\u8005\\u7684\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u5730\\u5740\\u3002 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u7b2c`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684URI\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询,返回`account`拥有的`id`种类的代币的持仓量"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询,`accounts`和`ids`数组的长度要想等。"},"isApprovedForAll(address,address)":{"details":"批量授权查询,如果授权地址`operator`被`account`授权,则返回`true` 见 {setApprovalForAll}函数."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账 释放{TransferBatch}事件 要求: - `ids`和`amounts`长度相等 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155BatchReceived`方法,并返回相应的值"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位`id`种类的代币从`from`转账给`to`. 释放{TransferSingle}事件. 要求: - 如果调用者不是`from`地址而是授权地址,则需要得到`from`的授权 - `from`地址必须有足够的持仓 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155Received`方法,并返回相应的值"},"setApprovalForAll(address,bool)":{"details":"批量授权,将调用者的代币授权给`operator`地址。 释放{ApprovalForAll}事件."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"},"uri(uint256)":{"details":"返回第`id`种类代币的URI"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155MetadataURI.sol":"IERC1155MetadataURI"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balanceOfBatch","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"safeBatchTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"uri","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"TransferBatch","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"ids","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"values","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"TransferSingle","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"URI","inputs":[{"name":"value","type":"string","indexed":false,"internalType":"string"},{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u7684\\u53ef\\u9009\\u63a5\\u53e3\\uff0c\\u52a0\\u5165\\u4e86uri()\\u51fd\\u6570\\u67e5\\u8be2\\u5143\\u6570\\u636e\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u4e8b\\u4ef6 \\u5f53`account`\\u5c06\\u6240\\u6709\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u65f6\\u91ca\\u653e\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"\\u591a\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 ids\\u548cvalues\\u4e3a\\u8f6c\\u8d26\\u7684\\u4ee3\\u5e01\\u79cd\\u7c7b\\u548c\\u6570\\u91cf\\u6570\\u7ec4\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"\\u5355\\u7c7b\\u4ee3\\u5e01\\u8f6c\\u8d26\\u4e8b\\u4ef6 \\u5f53`value`\\u4e2a`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u88ab`operator`\\u4ece`from`\\u8f6c\\u8d26\\u5230`to`\\u65f6\\u91ca\\u653e.\"},\"URI(string,uint256)\":{\"details\":\"\\u5f53`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684URI\\u53d1\\u751f\\u53d8\\u5316\\u65f6\\u91ca\\u653e\\uff0c`value`\\u4e3a\\u65b0\\u7684URI\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c\\u8fd4\\u56de`account`\\u62e5\\u6709\\u7684`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u7684\\u6301\\u4ed3\\u91cf\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"\\u6279\\u91cf\\u6301\\u4ed3\\u67e5\\u8be2\\uff0c`accounts`\\u548c`ids`\\u6570\\u7ec4\\u7684\\u957f\\u5ea6\\u8981\\u60f3\\u7b49\\u3002\"},\"isApprovedForAll(address,address)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\u67e5\\u8be2\\uff0c\\u5982\\u679c\\u6388\\u6743\\u5730\\u5740`operator`\\u88ab`account`\\u6388\\u6743\\uff0c\\u5219\\u8fd4\\u56de`true` \\u89c1 {setApprovalForAll}\\u51fd\\u6570.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26 \\u91ca\\u653e{TransferBatch}\\u4e8b\\u4ef6 \\u8981\\u6c42\\uff1a - `ids`\\u548c`amounts`\\u957f\\u5ea6\\u76f8\\u7b49 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155BatchReceived`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u5c06`amount`\\u5355\\u4f4d`id`\\u79cd\\u7c7b\\u7684\\u4ee3\\u5e01\\u4ece`from`\\u8f6c\\u8d26\\u7ed9`to`. \\u91ca\\u653e{TransferSingle}\\u4e8b\\u4ef6. \\u8981\\u6c42: - \\u5982\\u679c\\u8c03\\u7528\\u8005\\u4e0d\\u662f`from`\\u5730\\u5740\\u800c\\u662f\\u6388\\u6743\\u5730\\u5740\\uff0c\\u5219\\u9700\\u8981\\u5f97\\u5230`from`\\u7684\\u6388\\u6743 - `from`\\u5730\\u5740\\u5fc5\\u987b\\u6709\\u8db3\\u591f\\u7684\\u6301\\u4ed3 - \\u5982\\u679c\\u63a5\\u6536\\u65b9\\u662f\\u5408\\u7ea6\\uff0c\\u9700\\u8981\\u5b9e\\u73b0`IERC1155Receiver`\\u7684`onERC1155Received`\\u65b9\\u6cd5\\uff0c\\u5e76\\u8fd4\\u56de\\u76f8\\u5e94\\u7684\\u503c\"},\"setApprovalForAll(address,bool)\":{\"details\":\"\\u6279\\u91cf\\u6388\\u6743\\uff0c\\u5c06\\u8c03\\u7528\\u8005\\u7684\\u4ee3\\u5e01\\u6388\\u6743\\u7ed9`operator`\\u5730\\u5740\\u3002 \\u91ca\\u653e{ApprovalForAll}\\u4e8b\\u4ef6.\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"},\"uri(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u7b2c`id`\\u79cd\\u7c7b\\u4ee3\\u5e01\\u7684URI\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155.sol\":{\"keccak256\":\"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184\",\"dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg\"]},\"src/40_ERC1155/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3\",\"dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256[]","name":"ids","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"values","type":"uint256[]","indexed":false}],"type":"event","name":"TransferBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"TransferSingle","anonymous":false},{"inputs":[{"internalType":"string","name":"value","type":"string","indexed":false},{"internalType":"uint256","name":"id","type":"uint256","indexed":true}],"type":"event","name":"URI","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function","name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeBatchTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"balanceOf(address,uint256)":{"details":"持仓查询,返回`account`拥有的`id`种类的代币的持仓量"},"balanceOfBatch(address[],uint256[])":{"details":"批量持仓查询,`accounts`和`ids`数组的长度要想等。"},"isApprovedForAll(address,address)":{"details":"批量授权查询,如果授权地址`operator`被`account`授权,则返回`true` 见 {setApprovalForAll}函数."},"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":{"details":"批量安全转账 释放{TransferBatch}事件 要求: - `ids`和`amounts`长度相等 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155BatchReceived`方法,并返回相应的值"},"safeTransferFrom(address,address,uint256,uint256,bytes)":{"details":"安全转账,将`amount`单位`id`种类的代币从`from`转账给`to`. 释放{TransferSingle}事件. 要求: - 如果调用者不是`from`地址而是授权地址,则需要得到`from`的授权 - `from`地址必须有足够的持仓 - 如果接收方是合约,需要实现`IERC1155Receiver`的`onERC1155Received`方法,并返回相应的值"},"setApprovalForAll(address,bool)":{"details":"批量授权,将调用者的代币授权给`operator`地址。 释放{ApprovalForAll}事件."},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"},"uri(uint256)":{"details":"返回第`id`种类代币的URI"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155MetadataURI.sol":"IERC1155MetadataURI"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155.sol":{"keccak256":"0x7fbc95a93167ffc8c02cfe36ecf40f9b9077c2d35ab6c07ab49a3c4d9fdd7139","urls":["bzz-raw://03aed5d14ceea77fec17cc82e153d071028cef40c968eb7bb30b4178ada6e184","dweb:/ipfs/QmZmJ1DR7Qz5aZfsLc2AwCmk8btFWXEDLrLGe3gUCjPmMg"],"license":"MIT"},"src/40_ERC1155/IERC1155MetadataURI.sol":{"keccak256":"0x31837f3f39e221ca1325fbd9cbd08ea29e561a776d56d929b10cad48a2463a63","urls":["bzz-raw://af7adc66c22c43712b2bde549fc2be7cc4e5c1f163bd8b714d341c3ade291ed3","dweb:/ipfs/QmYvgxRCyiVCcrND799St3HvGLfF7N57X1xAVqtqQC5NGV"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file diff --git a/out/IERC1155Receiver.sol/IERC1155Receiver.json b/out/IERC1155Receiver.sol/IERC1155Receiver.json index 21fa5087..e4682e5f 100644 --- a/out/IERC1155Receiver.sol/IERC1155Receiver.json +++ b/out/IERC1155Receiver.sol/IERC1155Receiver.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u63a5\\u6536\\u5408\\u7ea6\\uff0c\\u8981\\u63a5\\u53d7ERC1155\\u7684\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u9700\\u8981\\u5b9e\\u73b0\\u8fd9\\u4e2a\\u5408\\u7ea6\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u63a5\\u53d7ERC1155\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26`safeBatchTransferFrom` \\u9700\\u8981\\u8fd4\\u56de 0xbc197c81 \\u6216 `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))`\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u63a5\\u53d7ERC1155\\u5b89\\u5168\\u8f6c\\u8d26`safeTransferFrom` \\u9700\\u8981\\u8fd4\\u56de 0xf23a6e61 \\u6216 `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))`\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"接受ERC1155批量安全转账`safeBatchTransferFrom` 需要返回 0xbc197c81 或 `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`"},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"接受ERC1155安全转账`safeTransferFrom` 需要返回 0xf23a6e61 或 `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`"},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155Receiver.sol":"IERC1155Receiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file +{"abi":[{"type":"function","name":"onERC1155BatchReceived","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"ids","type":"uint256[]","internalType":"uint256[]"},{"name":"values","type":"uint256[]","internalType":"uint256[]"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"onERC1155Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155\\u63a5\\u6536\\u5408\\u7ea6\\uff0c\\u8981\\u63a5\\u53d7ERC1155\\u7684\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u9700\\u8981\\u5b9e\\u73b0\\u8fd9\\u4e2a\\u5408\\u7ea6\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"\\u63a5\\u53d7ERC1155\\u6279\\u91cf\\u5b89\\u5168\\u8f6c\\u8d26`safeBatchTransferFrom` \\u9700\\u8981\\u8fd4\\u56de 0xbc197c81 \\u6216 `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))`\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"\\u63a5\\u53d7ERC1155\\u5b89\\u5168\\u8f6c\\u8d26`safeTransferFrom` \\u9700\\u8981\\u8fd4\\u56de 0xf23a6e61 \\u6216 `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))`\"},\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/40_ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/40_ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6\",\"dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":{"details":"接受ERC1155批量安全转账`safeBatchTransferFrom` 需要返回 0xbc197c81 或 `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`"},"onERC1155Received(address,address,uint256,uint256,bytes)":{"details":"接受ERC1155安全转账`safeTransferFrom` 需要返回 0xf23a6e61 或 `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`"},"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/40_ERC1155/IERC1155Receiver.sol":"IERC1155Receiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/40_ERC1155/IERC1155Receiver.sol":{"keccak256":"0x26f48dd954b55c4a74d3f0674b12bc775aa6b706b809f299919982c08ccada2d","urls":["bzz-raw://29c720bc68ac335063c5e51d15664acda9d73b719eabdc15be03087edd3c7bc6","dweb:/ipfs/QmU66S3HPEWzZNy4hmmcG627WbReSRWVpwVshtbqED3sGD"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file diff --git a/out/IERC165.sol/IERC165.json b/out/IERC165.sol/IERC165.json index 61af43e7..ef3d4bd1 100644 --- a/out/IERC165.sol/IERC165.json +++ b/out/IERC165.sol/IERC165.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC165\\u6807\\u51c6\\u63a5\\u53e3, \\u8be6\\u89c1 https://eips.ethereum.org/EIPS/eip-165[EIP]. \\u5408\\u7ea6\\u53ef\\u4ee5\\u58f0\\u660e\\u652f\\u6301\\u7684\\u63a5\\u53e3\\uff0c\\u4f9b\\u5176\\u4ed6\\u5408\\u7ea6\\u68c0\\u67e5\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC165.sol":"IERC165"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"}},"version":1},"id":85} \ No newline at end of file +{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC165\\u6807\\u51c6\\u63a5\\u53e3, \\u8be6\\u89c1 https://eips.ethereum.org/EIPS/eip-165[EIP]. \\u5408\\u7ea6\\u53ef\\u4ee5\\u58f0\\u660e\\u652f\\u6301\\u7684\\u63a5\\u53e3\\uff0c\\u4f9b\\u5176\\u4ed6\\u5408\\u7ea6\\u68c0\\u67e5\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC165.sol":"IERC165"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"}},"version":1},"id":79} \ No newline at end of file diff --git a/out/IERC20.sol/IERC20.json b/out/IERC20.sol/IERC20.json index eaa4983c..bc069330 100644 --- a/out/IERC20.sol/IERC20.json +++ b/out/IERC20.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/31_ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/31_ERC20/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":79} \ No newline at end of file +{"abi":[{"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":"amount","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":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"amount\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 \\u63a5\\u53e3\\u5408\\u7ea6.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`owner`) \\u6388\\u6743\\u7ed9\\u53e6\\u4e00\\u8d26\\u6237 (`spender`)\\u65f6.\"},\"Transfer(address,address,uint256)\":{\"details\":\"\\u91ca\\u653e\\u6761\\u4ef6\\uff1a\\u5f53 `value` \\u5355\\u4f4d\\u7684\\u8d27\\u5e01\\u4ece\\u8d26\\u6237 (`from`) \\u8f6c\\u8d26\\u5230\\u53e6\\u4e00\\u8d26\\u6237 (`to`)\\u65f6.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"\\u8fd4\\u56de`owner`\\u8d26\\u6237\\u6388\\u6743\\u7ed9`spender`\\u8d26\\u6237\\u7684\\u989d\\u5ea6\\uff0c\\u9ed8\\u8ba4\\u4e3a0\\u3002 \\u5f53{approve} \\u6216 {transferFrom} \\u88ab\\u8c03\\u7528\\u65f6\\uff0c`allowance`\\u4f1a\\u6539\\u53d8.\"},\"approve(address,uint256)\":{\"details\":\"\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u7ed9`spender`\\u8d26\\u6237\\u6388\\u6743 `amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6.\"},\"balanceOf(address)\":{\"details\":\"\\u8fd4\\u56de\\u8d26\\u6237`account`\\u6240\\u6301\\u6709\\u7684\\u4ee3\\u5e01\\u6570.\"},\"totalSupply()\":{\"details\":\"\\u8fd4\\u56de\\u4ee3\\u5e01\\u603b\\u4f9b\\u7ed9.\"},\"transfer(address,uint256)\":{\"details\":\"\\u8f6c\\u8d26 `amount` \\u5355\\u4f4d\\u4ee3\\u5e01\\uff0c\\u4ece\\u8c03\\u7528\\u8005\\u8d26\\u6237\\u5230\\u53e6\\u4e00\\u8d26\\u6237 `to`. \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"\\u901a\\u8fc7\\u6388\\u6743\\u673a\\u5236\\uff0c\\u4ece`from`\\u8d26\\u6237\\u5411`to`\\u8d26\\u6237\\u8f6c\\u8d26`amount`\\u6570\\u91cf\\u4ee3\\u5e01\\u3002\\u8f6c\\u8d26\\u7684\\u90e8\\u5206\\u4f1a\\u4ece\\u8c03\\u7528\\u8005\\u7684`allowance`\\u4e2d\\u6263\\u9664\\u3002 \\u5982\\u679c\\u6210\\u529f\\uff0c\\u8fd4\\u56de `true`. \\u91ca\\u653e {Transfer} \\u4e8b\\u4ef6.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/31_ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"amount","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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"返回`owner`账户授权给`spender`账户的额度,默认为0。 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变."},"approve(address,uint256)":{"details":"调用者账户给`spender`账户授权 `amount`数量代币。 如果成功,返回 `true`. 释放 {Approval} 事件."},"balanceOf(address)":{"details":"返回账户`account`所持有的代币数."},"totalSupply()":{"details":"返回代币总供给."},"transfer(address,uint256)":{"details":"转账 `amount` 单位代币,从调用者账户到另一账户 `to`. 如果成功,返回 `true`. 释放 {Transfer} 事件."},"transferFrom(address,address,uint256)":{"details":"通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。 如果成功,返回 `true`. 释放 {Transfer} 事件."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/31_ERC20/IERC20.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"}},"version":1},"id":73} \ No newline at end of file diff --git a/out/IERC20Permit.sol/IERC20Permit.json b/out/IERC20Permit.sol/IERC20Permit.json index c87cd62c..01d8bc82 100644 --- a/out/IERC20Permit.sol/IERC20Permit.json +++ b/out/IERC20Permit.sol/IERC20Permit.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 Permit \\u6269\\u5c55\\u7684\\u63a5\\u53e3\\uff0c\\u5141\\u8bb8\\u901a\\u8fc7\\u7b7e\\u540d\\u8fdb\\u884c\\u6279\\u51c6\\uff0c\\u5982 https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]\\u4e2d\\u5b9a\\u4e49\\u3002 \\u6dfb\\u52a0\\u4e86 {permit} \\u65b9\\u6cd5\\uff0c\\u53ef\\u4ee5\\u901a\\u8fc7\\u5e10\\u6237\\u7b7e\\u540d\\u7684\\u6d88\\u606f\\u66f4\\u6539\\u5e10\\u6237\\u7684 ERC20 \\u4f59\\u989d\\uff08\\u53c2\\u89c1 {IERC20-allowance}\\uff09\\u3002\\u901a\\u8fc7\\u4e0d\\u4f9d\\u8d56 {IERC20-approve}\\uff0c\\u4ee3\\u5e01\\u6301\\u6709\\u8005\\u7684\\u5e10\\u6237\\u65e0\\u9700\\u53d1\\u9001\\u4ea4\\u6613\\uff0c\\u56e0\\u6b64\\u5b8c\\u5168\\u4e0d\\u9700\\u8981\\u6301\\u6709 Ether\\u3002\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"\\u8fd4\\u56de\\u7528\\u4e8e\\u7f16\\u7801 {permit} \\u7684\\u7b7e\\u540d\\u7684\\u57df\\u5206\\u9694\\u7b26\\uff08domain separator\\uff09\\uff0c\\u5982 {EIP712} \\u6240\\u5b9a\\u4e49\\u3002\"},\"nonces(address)\":{\"details\":\"\\u8fd4\\u56de `owner` \\u7684\\u5f53\\u524d nonce\\u3002\\u6bcf\\u6b21\\u4e3a {permit} \\u751f\\u6210\\u7b7e\\u540d\\u65f6\\uff0c\\u90fd\\u5fc5\\u987b\\u5305\\u62ec\\u6b64\\u503c\\u3002 \\u6bcf\\u6b21\\u6210\\u529f\\u8c03\\u7528 {permit} \\u90fd\\u4f1a\\u5c06 `owner` \\u7684 nonce \\u589e\\u52a0 1\\u3002\\u8fd9\\u9632\\u6b62\\u591a\\u6b21\\u4f7f\\u7528\\u7b7e\\u540d\\u3002\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"\\u6839\\u636eowner\\u7684\\u7b7e\\u540d, \\u5c06 `owenr` \\u7684ERC20\\u4f59\\u989d\\u6388\\u6743\\u7ed9 `spender`\\uff0c\\u6570\\u91cf\\u4e3a `value` \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6\\u3002 \\u8981\\u6c42\\uff1a - `spender` \\u4e0d\\u80fd\\u662f\\u96f6\\u5730\\u5740\\u3002 - `deadline` \\u5fc5\\u987b\\u662f\\u672a\\u6765\\u7684\\u65f6\\u95f4\\u6233\\u3002 - `v`\\uff0c`r` \\u548c `s` \\u5fc5\\u987b\\u662f `owner` \\u5bf9 EIP712 \\u683c\\u5f0f\\u7684\\u51fd\\u6570\\u53c2\\u6570\\u7684\\u6709\\u6548 `secp256k1` \\u7b7e\\u540d\\u3002 - \\u7b7e\\u540d\\u5fc5\\u987b\\u4f7f\\u7528 `owner` \\u5f53\\u524d\\u7684 nonce\\uff08\\u53c2\\u89c1 {nonces}\\uff09\\u3002 \\u6709\\u5173\\u7b7e\\u540d\\u683c\\u5f0f\\u7684\\u66f4\\u591a\\u4fe1\\u606f\\uff0c\\u8bf7\\u53c2\\u9605 https://eips.ethereum.org/EIPS/eip-2612#specification\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/53_ERC20Permit/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/53_ERC20Permit/IERC20Permit.sol\":{\"keccak256\":\"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33\",\"dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"返回用于编码 {permit} 的签名的域分隔符(domain separator),如 {EIP712} 所定义。"},"nonces(address)":{"details":"返回 `owner` 的当前 nonce。每次为 {permit} 生成签名时,都必须包括此值。 每次成功调用 {permit} 都会将 `owner` 的 nonce 增加 1。这防止多次使用签名。"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"根据owner的签名, 将 `owenr` 的ERC20余额授权给 `spender`,数量为 `value` 释放 {Approval} 事件。 要求: - `spender` 不能是零地址。 - `deadline` 必须是未来的时间戳。 - `v`,`r` 和 `s` 必须是 `owner` 对 EIP712 格式的函数参数的有效 `secp256k1` 签名。 - 签名必须使用 `owner` 当前的 nonce(参见 {nonces})。 有关签名格式的更多信息,请参阅 https://eips.ethereum.org/EIPS/eip-2612#specification。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/53_ERC20Permit/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"prague","libraries":{}},"sources":{"src/53_ERC20Permit/IERC20Permit.sol":{"keccak256":"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7","urls":["bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33","dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br"],"license":"MIT"}},"version":1},"id":115} \ No newline at end of file +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 Permit \\u6269\\u5c55\\u7684\\u63a5\\u53e3\\uff0c\\u5141\\u8bb8\\u901a\\u8fc7\\u7b7e\\u540d\\u8fdb\\u884c\\u6279\\u51c6\\uff0c\\u5982 https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]\\u4e2d\\u5b9a\\u4e49\\u3002 \\u6dfb\\u52a0\\u4e86 {permit} \\u65b9\\u6cd5\\uff0c\\u53ef\\u4ee5\\u901a\\u8fc7\\u5e10\\u6237\\u7b7e\\u540d\\u7684\\u6d88\\u606f\\u66f4\\u6539\\u5e10\\u6237\\u7684 ERC20 \\u4f59\\u989d\\uff08\\u53c2\\u89c1 {IERC20-allowance}\\uff09\\u3002\\u901a\\u8fc7\\u4e0d\\u4f9d\\u8d56 {IERC20-approve}\\uff0c\\u4ee3\\u5e01\\u6301\\u6709\\u8005\\u7684\\u5e10\\u6237\\u65e0\\u9700\\u53d1\\u9001\\u4ea4\\u6613\\uff0c\\u56e0\\u6b64\\u5b8c\\u5168\\u4e0d\\u9700\\u8981\\u6301\\u6709 Ether\\u3002\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"\\u8fd4\\u56de\\u7528\\u4e8e\\u7f16\\u7801 {permit} \\u7684\\u7b7e\\u540d\\u7684\\u57df\\u5206\\u9694\\u7b26\\uff08domain separator\\uff09\\uff0c\\u5982 {EIP712} \\u6240\\u5b9a\\u4e49\\u3002\"},\"nonces(address)\":{\"details\":\"\\u8fd4\\u56de `owner` \\u7684\\u5f53\\u524d nonce\\u3002\\u6bcf\\u6b21\\u4e3a {permit} \\u751f\\u6210\\u7b7e\\u540d\\u65f6\\uff0c\\u90fd\\u5fc5\\u987b\\u5305\\u62ec\\u6b64\\u503c\\u3002 \\u6bcf\\u6b21\\u6210\\u529f\\u8c03\\u7528 {permit} \\u90fd\\u4f1a\\u5c06 `owner` \\u7684 nonce \\u589e\\u52a0 1\\u3002\\u8fd9\\u9632\\u6b62\\u591a\\u6b21\\u4f7f\\u7528\\u7b7e\\u540d\\u3002\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"\\u6839\\u636eowner\\u7684\\u7b7e\\u540d, \\u5c06 `owenr` \\u7684ERC20\\u4f59\\u989d\\u6388\\u6743\\u7ed9 `spender`\\uff0c\\u6570\\u91cf\\u4e3a `value` \\u91ca\\u653e {Approval} \\u4e8b\\u4ef6\\u3002 \\u8981\\u6c42\\uff1a - `spender` \\u4e0d\\u80fd\\u662f\\u96f6\\u5730\\u5740\\u3002 - `deadline` \\u5fc5\\u987b\\u662f\\u672a\\u6765\\u7684\\u65f6\\u95f4\\u6233\\u3002 - `v`\\uff0c`r` \\u548c `s` \\u5fc5\\u987b\\u662f `owner` \\u5bf9 EIP712 \\u683c\\u5f0f\\u7684\\u51fd\\u6570\\u53c2\\u6570\\u7684\\u6709\\u6548 `secp256k1` \\u7b7e\\u540d\\u3002 - \\u7b7e\\u540d\\u5fc5\\u987b\\u4f7f\\u7528 `owner` \\u5f53\\u524d\\u7684 nonce\\uff08\\u53c2\\u89c1 {nonces}\\uff09\\u3002 \\u6709\\u5173\\u7b7e\\u540d\\u683c\\u5f0f\\u7684\\u66f4\\u591a\\u4fe1\\u606f\\uff0c\\u8bf7\\u53c2\\u9605 https://eips.ethereum.org/EIPS/eip-2612#specification\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/53_ERC20Permit/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/53_ERC20Permit/IERC20Permit.sol\":{\"keccak256\":\"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33\",\"dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"返回用于编码 {permit} 的签名的域分隔符(domain separator),如 {EIP712} 所定义。"},"nonces(address)":{"details":"返回 `owner` 的当前 nonce。每次为 {permit} 生成签名时,都必须包括此值。 每次成功调用 {permit} 都会将 `owner` 的 nonce 增加 1。这防止多次使用签名。"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"根据owner的签名, 将 `owenr` 的ERC20余额授权给 `spender`,数量为 `value` 释放 {Approval} 事件。 要求: - `spender` 不能是零地址。 - `deadline` 必须是未来的时间戳。 - `v`,`r` 和 `s` 必须是 `owner` 对 EIP712 格式的函数参数的有效 `secp256k1` 签名。 - 签名必须使用 `owner` 当前的 nonce(参见 {nonces})。 有关签名格式的更多信息,请参阅 https://eips.ethereum.org/EIPS/eip-2612#specification。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/53_ERC20Permit/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"prague","libraries":{}},"sources":{"src/53_ERC20Permit/IERC20Permit.sol":{"keccak256":"0xdb64f6176fa8b498122b0f6f993b64178ac3a81957b6215ebb96e6e5a95203e7","urls":["bzz-raw://4d50553591068eb6c3bf19f944d5b0a3d11dd6a47a144afa5622ef73843eea33","dweb:/ipfs/QmQUZP9fpcf2oKa2dZrkC2Qy7s9HMkN8GHsew2fDx8t3Br"],"license":"MIT"}},"version":1},"id":109} \ No newline at end of file diff --git a/out/IERC4626.sol/IERC4626.json b/out/IERC4626.sol/IERC4626.json index 699267d7..f3724c8f 100644 --- a/out/IERC4626.sol/IERC4626.json +++ b/out/IERC4626.sol/IERC4626.json @@ -1 +1 @@ -{"abi":[{"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":"asset","inputs":[],"outputs":[{"name":"assetTokenAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"totalManagedAssets","type":"uint256","internalType":"uint256"}],"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":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","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":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"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\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC4626 \\\"\\u4ee3\\u5e01\\u5316\\u91d1\\u5e93\\u6807\\u51c6\\\"\\u7684\\u63a5\\u53e3\\u5408\\u7ea6 https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].\",\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"asset()\":{\"details\":\"\\u8fd4\\u56de\\u91d1\\u5e93\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u4ee3\\u5e01\\u5730\\u5740 \\uff08\\u7528\\u4e8e\\u5b58\\u6b3e\\uff0c\\u53d6\\u6b3e\\uff09 - \\u5fc5\\u987b\\u662f ERC20 \\u4ee3\\u5e01\\u5408\\u7ea6\\u5730\\u5740. - \\u4e0d\\u80fdrevert\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u5229\\u7528\\u4e00\\u5b9a\\u6570\\u989d\\u91d1\\u5e93\\u989d\\u5ea6\\u53ef\\u4ee5\\u6362\\u53d6\\u7684\\u57fa\\u7840\\u8d44\\u4ea7 - \\u4e0d\\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u5305\\u542b\\u6ed1\\u70b9 - \\u4e0d\\u80fdrevert\"},\"convertToShares(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u5229\\u7528\\u4e00\\u5b9a\\u6570\\u989d\\u57fa\\u7840\\u8d44\\u4ea7\\u53ef\\u4ee5\\u6362\\u53d6\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u4e0d\\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u5305\\u542b\\u6ed1\\u70b9 - \\u4e0d\\u80fdrevert\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"deposit(uint256,address)\":{\"details\":\"\\u5b58\\u6b3e\\u51fd\\u6570: \\u7528\\u6237\\u5411\\u91d1\\u5e93\\u5b58\\u5165 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u94f8\\u9020 shares \\u5355\\u4f4d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u7ed9 receiver \\u5730\\u5740 - \\u5fc5\\u987b\\u91ca\\u653e Deposit \\u4e8b\\u4ef6. - \\u5982\\u679c\\u8d44\\u4ea7\\u4e0d\\u80fd\\u5b58\\u5165\\uff0c\\u5fc5\\u987brevert\\uff0c\\u6bd4\\u5982\\u5b58\\u6b3e\\u6570\\u989d\\u5927\\u5927\\u4e8e\\u4e0a\\u9650\\u7b49\\u3002\"},\"maxDeposit(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u5b58\\u6b3e\\u53ef\\u5b58\\u7684\\u6700\\u5927\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u989d\\u3002 - \\u5982\\u679c\\u6709\\u5b58\\u6b3e\\u4e0a\\u9650\\uff0c\\u90a3\\u4e48\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u8fd4\\u56de\\u503c\\u4e0d\\u80fd\\u8d85\\u8fc7 2 ** 256 - 1 - \\u4e0d\\u80fdrevert\"},\"maxMint(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u94f8\\u9020\\u53ef\\u4ee5\\u94f8\\u9020\\u7684\\u6700\\u5927\\u91d1\\u5e93\\u989d\\u5ea6 - \\u5982\\u679c\\u6709\\u94f8\\u9020\\u4e0a\\u9650\\uff0c\\u90a3\\u4e48\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u8fd4\\u56de\\u503c\\u4e0d\\u80fd\\u8d85\\u8fc7 2 ** 256 - 1 - \\u4e0d\\u80fdrevert\"},\"maxRedeem(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u8d4e\\u56de\\u53ef\\u4ee5\\u9500\\u6bc1\\u7684\\u6700\\u5927\\u91d1\\u5e93\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u5982\\u679c\\u6ca1\\u6709\\u5176\\u4ed6\\u9650\\u5236\\uff0c\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f balanceOf(owner) - \\u4e0d\\u80fdrevert\"},\"maxWithdraw(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u53d6\\u6b3e\\u53ef\\u4ee5\\u63d0\\u53d6\\u7684\\u6700\\u5927\\u57fa\\u7840\\u8d44\\u4ea7\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u4e0d\\u80fdrevert\"},\"mint(uint256,address)\":{\"details\":\"\\u94f8\\u9020\\u51fd\\u6570: \\u7528\\u6237\\u9700\\u8981\\u5b58\\u5165 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u7ed9 receiver \\u5730\\u5740\\u94f8\\u9020 share \\u6570\\u91cf\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u5fc5\\u987b\\u91ca\\u653e Deposit \\u4e8b\\u4ef6. - \\u5982\\u679c\\u5168\\u90e8\\u91d1\\u5e93\\u989d\\u5ea6\\u4e0d\\u80fd\\u94f8\\u9020\\uff0c\\u5fc5\\u987brevert\\uff0c\\u6bd4\\u5982\\u94f8\\u9020\\u6570\\u989d\\u5927\\u5927\\u4e8e\\u4e0a\\u9650\\u7b49\\u3002\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u5b58\\u6b3e\\u4e00\\u5b9a\\u6570\\u989d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u80fd\\u591f\\u83b7\\u5f97\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5927\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u5b58\\u6b3e\\u5f97\\u5230\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u4e0d\\u8981\\u8003\\u8651 maxDeposit \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u5b58\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert NOTE: \\u53ef\\u4ee5\\u5229\\u7528 convertToAssets \\u548c previewDeposit \\u8fd4\\u56de\\u503c\\u7684\\u5dee\\u503c\\u6765\\u8ba1\\u7b97\\u6ed1\\u70b9\"},\"previewMint(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u94f8\\u9020 shares \\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u9700\\u8981\\u5b58\\u6b3e\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5c0f\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u94f8\\u9020\\u4e00\\u5b9a\\u6570\\u989d\\u91d1\\u5e93\\u989d\\u5ea6\\u6240\\u9700\\u7684\\u5b58\\u6b3e\\u6570\\u91cf - \\u4e0d\\u8981\\u8003\\u8651 maxMint \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u5b58\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"previewRedeem(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u9500\\u6bc1 shares \\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u80fd\\u591f\\u8d4e\\u56de\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5c0f\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u9500\\u6bc1\\u4e00\\u5b9a\\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u6240\\u80fd\\u8d4e\\u56de\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u4e0d\\u8981\\u8003\\u8651 maxRedeem \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u8d4e\\u56de\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert.\"},\"previewWithdraw(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u63d0\\u6b3e assets \\u6570\\u989d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u9700\\u8981\\u8d4e\\u56de\\u7684\\u91d1\\u5e93\\u4efd\\u989d - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5927\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u63d0\\u6b3e\\u4e00\\u5b9a\\u6570\\u989d\\u57fa\\u7840\\u8d44\\u4ea7\\u6240\\u9700\\u8d4e\\u56de\\u7684\\u91d1\\u5e93\\u4efd\\u989d - \\u4e0d\\u8981\\u8003\\u8651 maxWithdraw \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u63d0\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"redeem(uint256,address,address)\":{\"details\":\"\\u8d4e\\u56de\\u51fd\\u6570: owner \\u5730\\u5740\\u9500\\u6bc1 shares \\u6570\\u91cf\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u5c06 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u53d1\\u7ed9 receiver \\u5730\\u5740 - \\u91ca\\u653e Withdraw \\u4e8b\\u4ef6 - \\u5982\\u679c\\u91d1\\u5e93\\u989d\\u5ea6\\u4e0d\\u80fd\\u5168\\u90e8\\u9500\\u6bc1\\uff0c\\u5219revert\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalAssets()\":{\"details\":\"\\u8fd4\\u56de\\u91d1\\u5e93\\u4e2d\\u7ba1\\u7406\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u4ee3\\u5e01\\u603b\\u989d - \\u8981\\u5305\\u542b\\u5229\\u606f - \\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"withdraw(uint256,address,address)\":{\"details\":\"\\u63d0\\u6b3e\\u51fd\\u6570: owner \\u5730\\u5740\\u9500\\u6bc1 share \\u5355\\u4f4d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u5c06 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u53d1\\u9001\\u7ed9 receiver \\u5730\\u5740 - \\u91ca\\u653e Withdraw \\u4e8b\\u4ef6 - \\u5982\\u679c\\u5168\\u90e8\\u57fa\\u7840\\u8d44\\u4ea7\\u4e0d\\u80fd\\u63d0\\u53d6\\uff0c\\u5c06revert\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"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\"]},\"src/51_ERC4626/IERC4626.sol\":{\"keccak256\":\"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec\",\"dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"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":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"assetTokenAddress","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"totalManagedAssets","type":"uint256"}]},{"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":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"asset()":{"details":"返回金库的基础资产代币地址 (用于存款,取款) - 必须是 ERC20 代币合约地址. - 不能revert"},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"convertToAssets(uint256)":{"details":"返回利用一定数额金库额度可以换取的基础资产 - 不要包含费用 - 不包含滑点 - 不能revert"},"convertToShares(uint256)":{"details":"返回利用一定数额基础资产可以换取的金库额度 - 不要包含费用 - 不包含滑点 - 不能revert"},"decimals()":{"details":"Returns the decimals places of the token."},"deposit(uint256,address)":{"details":"存款函数: 用户向金库存入 assets 单位的基础资产,然后合约铸造 shares 单位的金库额度给 receiver 地址 - 必须释放 Deposit 事件. - 如果资产不能存入,必须revert,比如存款数额大大于上限等。"},"maxDeposit(address)":{"details":"返回某个用户地址单次存款可存的最大基础资产数额。 - 如果有存款上限,那么返回值应该是个有限值 - 返回值不能超过 2 ** 256 - 1 - 不能revert"},"maxMint(address)":{"details":"返回某个用户地址单次铸造可以铸造的最大金库额度 - 如果有铸造上限,那么返回值应该是个有限值 - 返回值不能超过 2 ** 256 - 1 - 不能revert"},"maxRedeem(address)":{"details":"返回某个用户地址单次赎回可以销毁的最大金库额度 - 返回值应该是个有限值 - 如果没有其他限制,返回值应该是 balanceOf(owner) - 不能revert"},"maxWithdraw(address)":{"details":"返回某个用户地址单次取款可以提取的最大基础资产额度 - 返回值应该是个有限值 - 不能revert"},"mint(uint256,address)":{"details":"铸造函数: 用户需要存入 assets 单位的基础资产,然后合约给 receiver 地址铸造 share 数量的金库额度 - 必须释放 Deposit 事件. - 如果全部金库额度不能铸造,必须revert,比如铸造数额大大于上限等。"},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟存款一定数额的基础资产能够获得的金库额度 - 返回值要接近且不大于在同一交易进行存款得到的金库额度 - 不要考虑 maxDeposit 等限制,假设用户的存款交易会成功 - 要考虑费用 - 不能revert NOTE: 可以利用 convertToAssets 和 previewDeposit 返回值的差值来计算滑点"},"previewMint(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟铸造 shares 数额的金库额度需要存款的基础资产数量 - 返回值要接近且不小于在同一交易进行铸造一定数额金库额度所需的存款数量 - 不要考虑 maxMint 等限制,假设用户的存款交易会成功 - 要考虑费用 - 不能revert"},"previewRedeem(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟销毁 shares 数额的金库额度能够赎回的基础资产数量 - 返回值要接近且不小于在同一交易进行销毁一定数额的金库额度所能赎回的基础资产数量 - 不要考虑 maxRedeem 等限制,假设用户的赎回交易会成功 - 要考虑费用 - 不能revert."},"previewWithdraw(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟提款 assets 数额的基础资产需要赎回的金库份额 - 返回值要接近且不大于在同一交易进行提款一定数额基础资产所需赎回的金库份额 - 不要考虑 maxWithdraw 等限制,假设用户的提款交易会成功 - 要考虑费用 - 不能revert"},"redeem(uint256,address,address)":{"details":"赎回函数: owner 地址销毁 shares 数量的金库额度,然后合约将 assets 单位的基础资产发给 receiver 地址 - 释放 Withdraw 事件 - 如果金库额度不能全部销毁,则revert"},"symbol()":{"details":"Returns the symbol of the token."},"totalAssets()":{"details":"返回金库中管理的基础资产代币总额 - 要包含利息 - 要包含费用 - 不能revert"},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"withdraw(uint256,address,address)":{"details":"提款函数: owner 地址销毁 share 单位的金库额度,然后合约将 assets 单位的基础资产发送给 receiver 地址 - 释放 Withdraw 事件 - 如果全部基础资产不能提取,将revert"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/IERC4626.sol":"IERC4626"},"evmVersion":"prague","libraries":{}},"sources":{"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"},"src/51_ERC4626/IERC4626.sol":{"keccak256":"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29","urls":["bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec","dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY"],"license":"MIT"}},"version":1},"id":112} \ No newline at end of file +{"abi":[{"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":"asset","inputs":[],"outputs":[{"name":"assetTokenAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"maxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxShares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"maxAssets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"totalManagedAssets","type":"uint256","internalType":"uint256"}],"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":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","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":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"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\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assetTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxShares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAssets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalManagedAssets\",\"type\":\"uint256\"}],\"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\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC4626 \\\"\\u4ee3\\u5e01\\u5316\\u91d1\\u5e93\\u6807\\u51c6\\\"\\u7684\\u63a5\\u53e3\\u5408\\u7ea6 https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].\",\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"asset()\":{\"details\":\"\\u8fd4\\u56de\\u91d1\\u5e93\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u4ee3\\u5e01\\u5730\\u5740 \\uff08\\u7528\\u4e8e\\u5b58\\u6b3e\\uff0c\\u53d6\\u6b3e\\uff09 - \\u5fc5\\u987b\\u662f ERC20 \\u4ee3\\u5e01\\u5408\\u7ea6\\u5730\\u5740. - \\u4e0d\\u80fdrevert\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"convertToAssets(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u5229\\u7528\\u4e00\\u5b9a\\u6570\\u989d\\u91d1\\u5e93\\u989d\\u5ea6\\u53ef\\u4ee5\\u6362\\u53d6\\u7684\\u57fa\\u7840\\u8d44\\u4ea7 - \\u4e0d\\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u5305\\u542b\\u6ed1\\u70b9 - \\u4e0d\\u80fdrevert\"},\"convertToShares(uint256)\":{\"details\":\"\\u8fd4\\u56de\\u5229\\u7528\\u4e00\\u5b9a\\u6570\\u989d\\u57fa\\u7840\\u8d44\\u4ea7\\u53ef\\u4ee5\\u6362\\u53d6\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u4e0d\\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u5305\\u542b\\u6ed1\\u70b9 - \\u4e0d\\u80fdrevert\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"deposit(uint256,address)\":{\"details\":\"\\u5b58\\u6b3e\\u51fd\\u6570: \\u7528\\u6237\\u5411\\u91d1\\u5e93\\u5b58\\u5165 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u94f8\\u9020 shares \\u5355\\u4f4d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u7ed9 receiver \\u5730\\u5740 - \\u5fc5\\u987b\\u91ca\\u653e Deposit \\u4e8b\\u4ef6. - \\u5982\\u679c\\u8d44\\u4ea7\\u4e0d\\u80fd\\u5b58\\u5165\\uff0c\\u5fc5\\u987brevert\\uff0c\\u6bd4\\u5982\\u5b58\\u6b3e\\u6570\\u989d\\u5927\\u5927\\u4e8e\\u4e0a\\u9650\\u7b49\\u3002\"},\"maxDeposit(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u5b58\\u6b3e\\u53ef\\u5b58\\u7684\\u6700\\u5927\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u989d\\u3002 - \\u5982\\u679c\\u6709\\u5b58\\u6b3e\\u4e0a\\u9650\\uff0c\\u90a3\\u4e48\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u8fd4\\u56de\\u503c\\u4e0d\\u80fd\\u8d85\\u8fc7 2 ** 256 - 1 - \\u4e0d\\u80fdrevert\"},\"maxMint(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u94f8\\u9020\\u53ef\\u4ee5\\u94f8\\u9020\\u7684\\u6700\\u5927\\u91d1\\u5e93\\u989d\\u5ea6 - \\u5982\\u679c\\u6709\\u94f8\\u9020\\u4e0a\\u9650\\uff0c\\u90a3\\u4e48\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u8fd4\\u56de\\u503c\\u4e0d\\u80fd\\u8d85\\u8fc7 2 ** 256 - 1 - \\u4e0d\\u80fdrevert\"},\"maxRedeem(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u8d4e\\u56de\\u53ef\\u4ee5\\u9500\\u6bc1\\u7684\\u6700\\u5927\\u91d1\\u5e93\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u5982\\u679c\\u6ca1\\u6709\\u5176\\u4ed6\\u9650\\u5236\\uff0c\\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f balanceOf(owner) - \\u4e0d\\u80fdrevert\"},\"maxWithdraw(address)\":{\"details\":\"\\u8fd4\\u56de\\u67d0\\u4e2a\\u7528\\u6237\\u5730\\u5740\\u5355\\u6b21\\u53d6\\u6b3e\\u53ef\\u4ee5\\u63d0\\u53d6\\u7684\\u6700\\u5927\\u57fa\\u7840\\u8d44\\u4ea7\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u5e94\\u8be5\\u662f\\u4e2a\\u6709\\u9650\\u503c - \\u4e0d\\u80fdrevert\"},\"mint(uint256,address)\":{\"details\":\"\\u94f8\\u9020\\u51fd\\u6570: \\u7528\\u6237\\u9700\\u8981\\u5b58\\u5165 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u7ed9 receiver \\u5730\\u5740\\u94f8\\u9020 share \\u6570\\u91cf\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u5fc5\\u987b\\u91ca\\u653e Deposit \\u4e8b\\u4ef6. - \\u5982\\u679c\\u5168\\u90e8\\u91d1\\u5e93\\u989d\\u5ea6\\u4e0d\\u80fd\\u94f8\\u9020\\uff0c\\u5fc5\\u987brevert\\uff0c\\u6bd4\\u5982\\u94f8\\u9020\\u6570\\u989d\\u5927\\u5927\\u4e8e\\u4e0a\\u9650\\u7b49\\u3002\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u5b58\\u6b3e\\u4e00\\u5b9a\\u6570\\u989d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u80fd\\u591f\\u83b7\\u5f97\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5927\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u5b58\\u6b3e\\u5f97\\u5230\\u7684\\u91d1\\u5e93\\u989d\\u5ea6 - \\u4e0d\\u8981\\u8003\\u8651 maxDeposit \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u5b58\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert NOTE: \\u53ef\\u4ee5\\u5229\\u7528 convertToAssets \\u548c previewDeposit \\u8fd4\\u56de\\u503c\\u7684\\u5dee\\u503c\\u6765\\u8ba1\\u7b97\\u6ed1\\u70b9\"},\"previewMint(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u94f8\\u9020 shares \\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u9700\\u8981\\u5b58\\u6b3e\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5c0f\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u94f8\\u9020\\u4e00\\u5b9a\\u6570\\u989d\\u91d1\\u5e93\\u989d\\u5ea6\\u6240\\u9700\\u7684\\u5b58\\u6b3e\\u6570\\u91cf - \\u4e0d\\u8981\\u8003\\u8651 maxMint \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u5b58\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"previewRedeem(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u9500\\u6bc1 shares \\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u80fd\\u591f\\u8d4e\\u56de\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5c0f\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u9500\\u6bc1\\u4e00\\u5b9a\\u6570\\u989d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\u6240\\u80fd\\u8d4e\\u56de\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u6570\\u91cf - \\u4e0d\\u8981\\u8003\\u8651 maxRedeem \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u8d4e\\u56de\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert.\"},\"previewWithdraw(uint256)\":{\"details\":\"\\u7528\\u4e8e\\u94fe\\u4e0a\\u548c\\u94fe\\u4e0b\\u7528\\u6237\\u5728\\u5f53\\u524d\\u94fe\\u4e0a\\u73af\\u5883\\u6a21\\u62df\\u63d0\\u6b3e assets \\u6570\\u989d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u9700\\u8981\\u8d4e\\u56de\\u7684\\u91d1\\u5e93\\u4efd\\u989d - \\u8fd4\\u56de\\u503c\\u8981\\u63a5\\u8fd1\\u4e14\\u4e0d\\u5927\\u4e8e\\u5728\\u540c\\u4e00\\u4ea4\\u6613\\u8fdb\\u884c\\u63d0\\u6b3e\\u4e00\\u5b9a\\u6570\\u989d\\u57fa\\u7840\\u8d44\\u4ea7\\u6240\\u9700\\u8d4e\\u56de\\u7684\\u91d1\\u5e93\\u4efd\\u989d - \\u4e0d\\u8981\\u8003\\u8651 maxWithdraw \\u7b49\\u9650\\u5236\\uff0c\\u5047\\u8bbe\\u7528\\u6237\\u7684\\u63d0\\u6b3e\\u4ea4\\u6613\\u4f1a\\u6210\\u529f - \\u8981\\u8003\\u8651\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"redeem(uint256,address,address)\":{\"details\":\"\\u8d4e\\u56de\\u51fd\\u6570: owner \\u5730\\u5740\\u9500\\u6bc1 shares \\u6570\\u91cf\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u5c06 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u53d1\\u7ed9 receiver \\u5730\\u5740 - \\u91ca\\u653e Withdraw \\u4e8b\\u4ef6 - \\u5982\\u679c\\u91d1\\u5e93\\u989d\\u5ea6\\u4e0d\\u80fd\\u5168\\u90e8\\u9500\\u6bc1\\uff0c\\u5219revert\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalAssets()\":{\"details\":\"\\u8fd4\\u56de\\u91d1\\u5e93\\u4e2d\\u7ba1\\u7406\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u4ee3\\u5e01\\u603b\\u989d - \\u8981\\u5305\\u542b\\u5229\\u606f - \\u8981\\u5305\\u542b\\u8d39\\u7528 - \\u4e0d\\u80fdrevert\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"withdraw(uint256,address,address)\":{\"details\":\"\\u63d0\\u6b3e\\u51fd\\u6570: owner \\u5730\\u5740\\u9500\\u6bc1 share \\u5355\\u4f4d\\u7684\\u91d1\\u5e93\\u989d\\u5ea6\\uff0c\\u7136\\u540e\\u5408\\u7ea6\\u5c06 assets \\u5355\\u4f4d\\u7684\\u57fa\\u7840\\u8d44\\u4ea7\\u53d1\\u9001\\u7ed9 receiver \\u5730\\u5740 - \\u91ca\\u653e Withdraw \\u4e8b\\u4ef6 - \\u5982\\u679c\\u5168\\u90e8\\u57fa\\u7840\\u8d44\\u4ea7\\u4e0d\\u80fd\\u63d0\\u53d6\\uff0c\\u5c06revert\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/51_ERC4626/IERC4626.sol\":\"IERC4626\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"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\"]},\"src/51_ERC4626/IERC4626.sol\":{\"keccak256\":\"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec\",\"dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"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":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"assetTokenAddress","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"totalManagedAssets","type":"uint256"}]},{"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":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}]}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"asset()":{"details":"返回金库的基础资产代币地址 (用于存款,取款) - 必须是 ERC20 代币合约地址. - 不能revert"},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"convertToAssets(uint256)":{"details":"返回利用一定数额金库额度可以换取的基础资产 - 不要包含费用 - 不包含滑点 - 不能revert"},"convertToShares(uint256)":{"details":"返回利用一定数额基础资产可以换取的金库额度 - 不要包含费用 - 不包含滑点 - 不能revert"},"decimals()":{"details":"Returns the decimals places of the token."},"deposit(uint256,address)":{"details":"存款函数: 用户向金库存入 assets 单位的基础资产,然后合约铸造 shares 单位的金库额度给 receiver 地址 - 必须释放 Deposit 事件. - 如果资产不能存入,必须revert,比如存款数额大大于上限等。"},"maxDeposit(address)":{"details":"返回某个用户地址单次存款可存的最大基础资产数额。 - 如果有存款上限,那么返回值应该是个有限值 - 返回值不能超过 2 ** 256 - 1 - 不能revert"},"maxMint(address)":{"details":"返回某个用户地址单次铸造可以铸造的最大金库额度 - 如果有铸造上限,那么返回值应该是个有限值 - 返回值不能超过 2 ** 256 - 1 - 不能revert"},"maxRedeem(address)":{"details":"返回某个用户地址单次赎回可以销毁的最大金库额度 - 返回值应该是个有限值 - 如果没有其他限制,返回值应该是 balanceOf(owner) - 不能revert"},"maxWithdraw(address)":{"details":"返回某个用户地址单次取款可以提取的最大基础资产额度 - 返回值应该是个有限值 - 不能revert"},"mint(uint256,address)":{"details":"铸造函数: 用户需要存入 assets 单位的基础资产,然后合约给 receiver 地址铸造 share 数量的金库额度 - 必须释放 Deposit 事件. - 如果全部金库额度不能铸造,必须revert,比如铸造数额大大于上限等。"},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟存款一定数额的基础资产能够获得的金库额度 - 返回值要接近且不大于在同一交易进行存款得到的金库额度 - 不要考虑 maxDeposit 等限制,假设用户的存款交易会成功 - 要考虑费用 - 不能revert NOTE: 可以利用 convertToAssets 和 previewDeposit 返回值的差值来计算滑点"},"previewMint(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟铸造 shares 数额的金库额度需要存款的基础资产数量 - 返回值要接近且不小于在同一交易进行铸造一定数额金库额度所需的存款数量 - 不要考虑 maxMint 等限制,假设用户的存款交易会成功 - 要考虑费用 - 不能revert"},"previewRedeem(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟销毁 shares 数额的金库额度能够赎回的基础资产数量 - 返回值要接近且不小于在同一交易进行销毁一定数额的金库额度所能赎回的基础资产数量 - 不要考虑 maxRedeem 等限制,假设用户的赎回交易会成功 - 要考虑费用 - 不能revert."},"previewWithdraw(uint256)":{"details":"用于链上和链下用户在当前链上环境模拟提款 assets 数额的基础资产需要赎回的金库份额 - 返回值要接近且不大于在同一交易进行提款一定数额基础资产所需赎回的金库份额 - 不要考虑 maxWithdraw 等限制,假设用户的提款交易会成功 - 要考虑费用 - 不能revert"},"redeem(uint256,address,address)":{"details":"赎回函数: owner 地址销毁 shares 数量的金库额度,然后合约将 assets 单位的基础资产发给 receiver 地址 - 释放 Withdraw 事件 - 如果金库额度不能全部销毁,则revert"},"symbol()":{"details":"Returns the symbol of the token."},"totalAssets()":{"details":"返回金库中管理的基础资产代币总额 - 要包含利息 - 要包含费用 - 不能revert"},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"withdraw(uint256,address,address)":{"details":"提款函数: owner 地址销毁 share 单位的金库额度,然后合约将 assets 单位的基础资产发送给 receiver 地址 - 释放 Withdraw 事件 - 如果全部基础资产不能提取,将revert"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/51_ERC4626/IERC4626.sol":"IERC4626"},"evmVersion":"prague","libraries":{}},"sources":{"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"},"src/51_ERC4626/IERC4626.sol":{"keccak256":"0x1dde86c2999dcef32a84455267e4aa0062a7ed4fd7e386f7a7855d653deddb29","urls":["bzz-raw://1562e636c4b138f6d275f13f3e73a8853fddf0ff3094bebd47a3939b46b5e8ec","dweb:/ipfs/QmQvsWzYfqoucPnz3dyRT1MKfme6Snpvp6gT8gtyFF36UY"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file diff --git a/out/IERC721.sol/IERC721.json b/out/IERC721.sol/IERC721.json index 1fc52472..3f742c7f 100644 --- a/out/IERC721.sol/IERC721.json +++ b/out/IERC721.sol/IERC721.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721\\u6807\\u51c6\\u63a5\\u53e3.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721.sol":"IERC721"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721\\u6807\\u51c6\\u63a5\\u53e3.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721.sol":"IERC721"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"}},"version":1},"id":80} \ No newline at end of file diff --git a/out/IERC721Metadata.sol/IERC721Metadata.json b/out/IERC721Metadata.sol/IERC721Metadata.json index dbdc4a00..daea0d4a 100644 --- a/out/IERC721Metadata.sol/IERC721Metadata.json +++ b/out/IERC721Metadata.sol/IERC721Metadata.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"name()":"06fdde03","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file +{"abi":[{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"name()":"06fdde03","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"}},"version":1},"id":81} \ No newline at end of file diff --git a/out/IERC721Receiver.sol/IERC721Receiver.json b/out/IERC721Receiver.sol/IERC721Receiver.json index e6bc0bdb..40ffbe10 100644 --- a/out/IERC721Receiver.sol/IERC721Receiver.json +++ b/out/IERC721Receiver.sol/IERC721Receiver.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file +{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/IERC721Receiver.sol":"IERC721Receiver"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"}},"version":1},"id":82} \ No newline at end of file diff --git a/out/InitialValue.sol/InitialValue.json b/out/InitialValue.sol/InitialValue.json index c8c82fce..d8b8a1ee 100644 --- a/out/InitialValue.sol/InitialValue.json +++ b/out/InitialValue.sol/InitialValue.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_address","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_bool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_dynamicArray","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_enum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum InitialValue.ActionSet"}],"stateMutability":"view"},{"type":"function","name":"_int","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"_mapping","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_staticArray","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_string","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"_uint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"d","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"student","inputs":[],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"score","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600160115f6101000a81548160ff0219169083151502179055503480156028575f5ffd5b50610704806100365f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80638a054ac21161008a578063a2ba3ee411610064578063a2ba3ee4146101ca578063a2e7fe8a146101fa578063af45869e14610218578063ea8e4fd114610236576100cd565b80638a054ac2146101845780639b267f091461018e5780639e6ba9c2146101ac576100cd565b806312b7b142146100d157806318bad217146101015780632543135b1461011f57806330c0826f1461013d578063699450e81461015b57806386ed6eac1461017a575b5f5ffd5b6100eb60048036038101906100e6919061041f565b610266565b6040516100f89190610459565b60405180910390f35b61010961027f565b60405161011691906104b1565b60405180910390f35b6101276102a4565b6040516101349190610459565b60405180910390f35b6101456102aa565b604051610152919061053d565b60405180910390f35b6101636102bd565b604051610171929190610556565b60405180910390f35b6101826102ce565b005b61018c6102d0565b005b6101966102e3565b6040516101a391906105ed565b60405180910390f35b6101b461036f565b6040516101c19190610627565b60405180910390f35b6101e460048036038101906101df919061041f565b610380565b6040516101f191906104b1565b60405180910390f35b6102026103b0565b60405161020f9190610627565b60405180910390f35b6102206103c2565b60405161022d9190610658565b60405180910390f35b610250600480360381019061024b919061041f565b6103c8565b60405161025d9190610459565b60405180910390f35b60058160088110610275575f80fd5b015f915090505481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600460149054906101000a900460ff1681565b600f805f0154908060010154905082565b565b60115f6101000a81549060ff0219169055565b600180546102f09061069e565b80601f016020809104026020016040519081016040528092919081815260200182805461031c9061069e565b80156103675780601f1061033e57610100808354040283529160200191610367565b820191905f5260205f20905b81548152906001019060200180831161034a57829003601f168201915b505050505081565b5f5f9054906101000a900460ff1681565b600e602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900460ff1681565b60025481565b600d81815481106103d7575f80fd5b905f5260205f20015f915090505481565b5f5ffd5b5f819050919050565b6103fe816103ec565b8114610408575f5ffd5b50565b5f81359050610419816103f5565b92915050565b5f60208284031215610434576104336103e8565b5b5f6104418482850161040b565b91505092915050565b610453816103ec565b82525050565b5f60208201905061046c5f83018461044a565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049b82610472565b9050919050565b6104ab81610491565b82525050565b5f6020820190506104c45f8301846104a2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110610508576105076104ca565b5b50565b5f819050610518826104f7565b919050565b5f6105278261050b565b9050919050565b6105378161051d565b82525050565b5f6020820190506105505f83018461052e565b92915050565b5f6040820190506105695f83018561044a565b610576602083018461044a565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105bf8261057d565b6105c98185610587565b93506105d9818560208601610597565b6105e2816105a5565b840191505092915050565b5f6020820190508181035f83015261060581846105b5565b905092915050565b5f8115159050919050565b6106218161060d565b82525050565b5f60208201905061063a5f830184610618565b92915050565b5f819050919050565b61065281610640565b82525050565b5f60208201905061066b5f830184610649565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106b557607f821691505b6020821081036106c8576106c7610671565b5b5091905056fea2646970667358221220c9ed9912df6f4bf860ba3fc7fb3595047f4a7478a48c58de9011ed7d1a651f8564736f6c63430008220033","sourceMap":"58:1001:51:-:0;;;948:4;927:25;;;;;;;;;;;;;;;;;;;;58:1001;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80638a054ac21161008a578063a2ba3ee411610064578063a2ba3ee4146101ca578063a2e7fe8a146101fa578063af45869e14610218578063ea8e4fd114610236576100cd565b80638a054ac2146101845780639b267f091461018e5780639e6ba9c2146101ac576100cd565b806312b7b142146100d157806318bad217146101015780632543135b1461011f57806330c0826f1461013d578063699450e81461015b57806386ed6eac1461017a575b5f5ffd5b6100eb60048036038101906100e6919061041f565b610266565b6040516100f89190610459565b60405180910390f35b61010961027f565b60405161011691906104b1565b60405180910390f35b6101276102a4565b6040516101349190610459565b60405180910390f35b6101456102aa565b604051610152919061053d565b60405180910390f35b6101636102bd565b604051610171929190610556565b60405180910390f35b6101826102ce565b005b61018c6102d0565b005b6101966102e3565b6040516101a391906105ed565b60405180910390f35b6101b461036f565b6040516101c19190610627565b60405180910390f35b6101e460048036038101906101df919061041f565b610380565b6040516101f191906104b1565b60405180910390f35b6102026103b0565b60405161020f9190610627565b60405180910390f35b6102206103c2565b60405161022d9190610658565b60405180910390f35b610250600480360381019061024b919061041f565b6103c8565b60405161025d9190610459565b60405180910390f35b60058160088110610275575f80fd5b015f915090505481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600460149054906101000a900460ff1681565b600f805f0154908060010154905082565b565b60115f6101000a81549060ff0219169055565b600180546102f09061069e565b80601f016020809104026020016040519081016040528092919081815260200182805461031c9061069e565b80156103675780601f1061033e57610100808354040283529160200191610367565b820191905f5260205f20905b81548152906001019060200180831161034a57829003601f168201915b505050505081565b5f5f9054906101000a900460ff1681565b600e602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900460ff1681565b60025481565b600d81815481106103d7575f80fd5b905f5260205f20015f915090505481565b5f5ffd5b5f819050919050565b6103fe816103ec565b8114610408575f5ffd5b50565b5f81359050610419816103f5565b92915050565b5f60208284031215610434576104336103e8565b5b5f6104418482850161040b565b91505092915050565b610453816103ec565b82525050565b5f60208201905061046c5f83018461044a565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049b82610472565b9050919050565b6104ab81610491565b82525050565b5f6020820190506104c45f8301846104a2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110610508576105076104ca565b5b50565b5f819050610518826104f7565b919050565b5f6105278261050b565b9050919050565b6105378161051d565b82525050565b5f6020820190506105505f83018461052e565b92915050565b5f6040820190506105695f83018561044a565b610576602083018461044a565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105bf8261057d565b6105c98185610587565b93506105d9818560208601610597565b6105e2816105a5565b840191505092915050565b5f6020820190508181035f83015261060581846105b5565b905092915050565b5f8115159050919050565b6106218161060d565b82525050565b5f60208201905061063a5f830184610618565b92915050565b5f819050919050565b61065281610640565b82525050565b5f60208201905061066b5f830184610649565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106b557607f821691505b6020821081036106c8576106c7610671565b5b5091905056fea2646970667358221220c9ed9912df6f4bf860ba3fc7fb3595047f4a7478a48c58de9011ed7d1a651f8564736f6c63430008220033","sourceMap":"58:1001:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;224:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;196:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;875;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;442:24;;;:::i;:::-;;959:98;;;:::i;:::-;;137:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;105:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;660:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;619:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;520;;;;;;;;;;;;;;;;;;;;:::o;224:23::-;;;;;;;;;;;;;:::o;196:17::-;;;;:::o;338:22::-;;;;;;;;;;;;;:::o;875:::-;;;;;;;;;;;;;;:::o;442:24::-;:::o;959:98::-;998:6;;991:13;;;;;;;;;;;959:98::o;137:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;105:17::-;;;;;;;;;;;;;:::o;660:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;927:25::-;;;;;;;;;;;;;:::o;170:15::-;;;;:::o;619:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:180::-;2011:77;2008:1;2001:88;2108:4;2105:1;2098:15;2132:4;2129:1;2122:15;2149:120;2237:1;2230:5;2227:12;2217:46;;2243:18;;:::i;:::-;2217:46;2149:120;:::o;2275:141::-;2327:7;2356:5;2345:16;;2362:48;2404:5;2362:48;:::i;:::-;2275:141;;;:::o;2422:::-;2485:9;2518:39;2551:5;2518:39;:::i;:::-;2505:52;;2422:141;;;:::o;2569:157::-;2669:50;2713:5;2669:50;:::i;:::-;2664:3;2657:63;2569:157;;:::o;2732:248::-;2838:4;2876:2;2865:9;2861:18;2853:26;;2889:84;2970:1;2959:9;2955:17;2946:6;2889:84;:::i;:::-;2732:248;;;;:::o;2986:332::-;3107:4;3145:2;3134:9;3130:18;3122:26;;3158:71;3226:1;3215:9;3211:17;3202:6;3158:71;:::i;:::-;3239:72;3307:2;3296:9;3292:18;3283:6;3239:72;:::i;:::-;2986:332;;;;;:::o;3324:99::-;3376:6;3410:5;3404:12;3394:22;;3324:99;;;:::o;3429:169::-;3513:11;3547:6;3542:3;3535:19;3587:4;3582:3;3578:14;3563:29;;3429:169;;;;:::o;3604:139::-;3693:6;3688:3;3683;3677:23;3734:1;3725:6;3720:3;3716:16;3709:27;3604:139;;;:::o;3749:102::-;3790:6;3841:2;3837:7;3832:2;3825:5;3821:14;3817:28;3807:38;;3749:102;;;:::o;3857:377::-;3945:3;3973:39;4006:5;3973:39;:::i;:::-;4028:71;4092:6;4087:3;4028:71;:::i;:::-;4021:78;;4108:65;4166:6;4161:3;4154:4;4147:5;4143:16;4108:65;:::i;:::-;4198:29;4220:6;4198:29;:::i;:::-;4193:3;4189:39;4182:46;;3949:285;3857:377;;;;:::o;4240:313::-;4353:4;4391:2;4380:9;4376:18;4368:26;;4440:9;4434:4;4430:20;4426:1;4415:9;4411:17;4404:47;4468:78;4541:4;4532:6;4468:78;:::i;:::-;4460:86;;4240:313;;;;:::o;4559:90::-;4593:7;4636:5;4629:13;4622:21;4611:32;;4559:90;;;:::o;4655:109::-;4736:21;4751:5;4736:21;:::i;:::-;4731:3;4724:34;4655:109;;:::o;4770:210::-;4857:4;4895:2;4884:9;4880:18;4872:26;;4908:65;4970:1;4959:9;4955:17;4946:6;4908:65;:::i;:::-;4770:210;;;;:::o;4986:76::-;5022:7;5051:5;5040:16;;4986:76;;;:::o;5068:115::-;5153:23;5170:5;5153:23;:::i;:::-;5148:3;5141:36;5068:115;;:::o;5189:218::-;5280:4;5318:2;5307:9;5303:18;5295:26;;5331:69;5397:1;5386:9;5382:17;5373:6;5331:69;:::i;:::-;5189:218;;;;:::o;5413:180::-;5461:77;5458:1;5451:88;5558:4;5555:1;5548:15;5582:4;5579:1;5572:15;5599:320;5643:6;5680:1;5674:4;5670:12;5660:22;;5727:1;5721:4;5717:12;5748:18;5738:81;;5804:4;5796:6;5792:17;5782:27;;5738:81;5866:2;5858:6;5855:14;5835:18;5832:38;5829:84;;5885:18;;:::i;:::-;5829:84;5650:269;5599:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"_address()":"18bad217","_bool()":"9e6ba9c2","_bool2()":"a2e7fe8a","_dynamicArray(uint256)":"ea8e4fd1","_enum()":"30c0826f","_int()":"af45869e","_mapping(uint256)":"a2ba3ee4","_staticArray(uint256)":"12b7b142","_string()":"9b267f09","_uint()":"2543135b","d()":"8a054ac2","fe()":"86ed6eac","student()":"699450e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_dynamicArray\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_enum\",\"outputs\":[{\"internalType\":\"enum InitialValue.ActionSet\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_int\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_mapping\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_staticArray\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_string\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_uint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"d\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"student\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/08_InitialValue/InitialValue.sol\":\"InitialValue\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/08_InitialValue/InitialValue.sol\":{\"keccak256\":\"0x5202fdb42c064b2852d3cbcc885d03ea32fbda000122624e6b9fa5157281d65a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c86d17c08ed04505ae81dda16cb55d2e5c6dc2df10ac4eff5b348337f4e2793\",\"dweb:/ipfs/QmfFJyv86CdXVnVKVq1zxgWYiUeTYQaxaaPEj1WFZg4Q1t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool2","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_dynamicArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_enum","outputs":[{"internalType":"enum InitialValue.ActionSet","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_int","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_mapping","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_staticArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_string","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_uint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"d"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"fe"},{"inputs":[],"stateMutability":"view","type":"function","name":"student","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/08_InitialValue/InitialValue.sol":"InitialValue"},"evmVersion":"prague","libraries":{}},"sources":{"src/08_InitialValue/InitialValue.sol":{"keccak256":"0x5202fdb42c064b2852d3cbcc885d03ea32fbda000122624e6b9fa5157281d65a","urls":["bzz-raw://1c86d17c08ed04505ae81dda16cb55d2e5c6dc2df10ac4eff5b348337f4e2793","dweb:/ipfs/QmfFJyv86CdXVnVKVq1zxgWYiUeTYQaxaaPEj1WFZg4Q1t"],"license":"MIT"}},"version":1},"id":51} \ No newline at end of file +{"abi":[{"type":"function","name":"_address","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_bool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_dynamicArray","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_enum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum InitialValue.ActionSet"}],"stateMutability":"view"},{"type":"function","name":"_int","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"_mapping","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_staticArray","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_string","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"_uint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"d","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"student","inputs":[],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"score","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600160115f6101000a81548160ff0219169083151502179055503480156028575f5ffd5b50610704806100365f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80638a054ac21161008a578063a2ba3ee411610064578063a2ba3ee4146101ca578063a2e7fe8a146101fa578063af45869e14610218578063ea8e4fd114610236576100cd565b80638a054ac2146101845780639b267f091461018e5780639e6ba9c2146101ac576100cd565b806312b7b142146100d157806318bad217146101015780632543135b1461011f57806330c0826f1461013d578063699450e81461015b57806386ed6eac1461017a575b5f5ffd5b6100eb60048036038101906100e6919061041f565b610266565b6040516100f89190610459565b60405180910390f35b61010961027f565b60405161011691906104b1565b60405180910390f35b6101276102a4565b6040516101349190610459565b60405180910390f35b6101456102aa565b604051610152919061053d565b60405180910390f35b6101636102bd565b604051610171929190610556565b60405180910390f35b6101826102ce565b005b61018c6102d0565b005b6101966102e3565b6040516101a391906105ed565b60405180910390f35b6101b461036f565b6040516101c19190610627565b60405180910390f35b6101e460048036038101906101df919061041f565b610380565b6040516101f191906104b1565b60405180910390f35b6102026103b0565b60405161020f9190610627565b60405180910390f35b6102206103c2565b60405161022d9190610658565b60405180910390f35b610250600480360381019061024b919061041f565b6103c8565b60405161025d9190610459565b60405180910390f35b60058160088110610275575f80fd5b015f915090505481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600460149054906101000a900460ff1681565b600f805f0154908060010154905082565b565b60115f6101000a81549060ff0219169055565b600180546102f09061069e565b80601f016020809104026020016040519081016040528092919081815260200182805461031c9061069e565b80156103675780601f1061033e57610100808354040283529160200191610367565b820191905f5260205f20905b81548152906001019060200180831161034a57829003601f168201915b505050505081565b5f5f9054906101000a900460ff1681565b600e602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900460ff1681565b60025481565b600d81815481106103d7575f80fd5b905f5260205f20015f915090505481565b5f5ffd5b5f819050919050565b6103fe816103ec565b8114610408575f5ffd5b50565b5f81359050610419816103f5565b92915050565b5f60208284031215610434576104336103e8565b5b5f6104418482850161040b565b91505092915050565b610453816103ec565b82525050565b5f60208201905061046c5f83018461044a565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049b82610472565b9050919050565b6104ab81610491565b82525050565b5f6020820190506104c45f8301846104a2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110610508576105076104ca565b5b50565b5f819050610518826104f7565b919050565b5f6105278261050b565b9050919050565b6105378161051d565b82525050565b5f6020820190506105505f83018461052e565b92915050565b5f6040820190506105695f83018561044a565b610576602083018461044a565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105bf8261057d565b6105c98185610587565b93506105d9818560208601610597565b6105e2816105a5565b840191505092915050565b5f6020820190508181035f83015261060581846105b5565b905092915050565b5f8115159050919050565b6106218161060d565b82525050565b5f60208201905061063a5f830184610618565b92915050565b5f819050919050565b61065281610640565b82525050565b5f60208201905061066b5f830184610649565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106b557607f821691505b6020821081036106c8576106c7610671565b5b5091905056fea2646970667358221220c9ed9912df6f4bf860ba3fc7fb3595047f4a7478a48c58de9011ed7d1a651f8564736f6c63430008220033","sourceMap":"58:1001:51:-:0;;;948:4;927:25;;;;;;;;;;;;;;;;;;;;58:1001;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c80638a054ac21161008a578063a2ba3ee411610064578063a2ba3ee4146101ca578063a2e7fe8a146101fa578063af45869e14610218578063ea8e4fd114610236576100cd565b80638a054ac2146101845780639b267f091461018e5780639e6ba9c2146101ac576100cd565b806312b7b142146100d157806318bad217146101015780632543135b1461011f57806330c0826f1461013d578063699450e81461015b57806386ed6eac1461017a575b5f5ffd5b6100eb60048036038101906100e6919061041f565b610266565b6040516100f89190610459565b60405180910390f35b61010961027f565b60405161011691906104b1565b60405180910390f35b6101276102a4565b6040516101349190610459565b60405180910390f35b6101456102aa565b604051610152919061053d565b60405180910390f35b6101636102bd565b604051610171929190610556565b60405180910390f35b6101826102ce565b005b61018c6102d0565b005b6101966102e3565b6040516101a391906105ed565b60405180910390f35b6101b461036f565b6040516101c19190610627565b60405180910390f35b6101e460048036038101906101df919061041f565b610380565b6040516101f191906104b1565b60405180910390f35b6102026103b0565b60405161020f9190610627565b60405180910390f35b6102206103c2565b60405161022d9190610658565b60405180910390f35b610250600480360381019061024b919061041f565b6103c8565b60405161025d9190610459565b60405180910390f35b60058160088110610275575f80fd5b015f915090505481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600460149054906101000a900460ff1681565b600f805f0154908060010154905082565b565b60115f6101000a81549060ff0219169055565b600180546102f09061069e565b80601f016020809104026020016040519081016040528092919081815260200182805461031c9061069e565b80156103675780601f1061033e57610100808354040283529160200191610367565b820191905f5260205f20905b81548152906001019060200180831161034a57829003601f168201915b505050505081565b5f5f9054906101000a900460ff1681565b600e602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900460ff1681565b60025481565b600d81815481106103d7575f80fd5b905f5260205f20015f915090505481565b5f5ffd5b5f819050919050565b6103fe816103ec565b8114610408575f5ffd5b50565b5f81359050610419816103f5565b92915050565b5f60208284031215610434576104336103e8565b5b5f6104418482850161040b565b91505092915050565b610453816103ec565b82525050565b5f60208201905061046c5f83018461044a565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049b82610472565b9050919050565b6104ab81610491565b82525050565b5f6020820190506104c45f8301846104a2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110610508576105076104ca565b5b50565b5f819050610518826104f7565b919050565b5f6105278261050b565b9050919050565b6105378161051d565b82525050565b5f6020820190506105505f83018461052e565b92915050565b5f6040820190506105695f83018561044a565b610576602083018461044a565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105bf8261057d565b6105c98185610587565b93506105d9818560208601610597565b6105e2816105a5565b840191505092915050565b5f6020820190508181035f83015261060581846105b5565b905092915050565b5f8115159050919050565b6106218161060d565b82525050565b5f60208201905061063a5f830184610618565b92915050565b5f819050919050565b61065281610640565b82525050565b5f60208201905061066b5f830184610649565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106b557607f821691505b6020821081036106c8576106c7610671565b5b5091905056fea2646970667358221220c9ed9912df6f4bf860ba3fc7fb3595047f4a7478a48c58de9011ed7d1a651f8564736f6c63430008220033","sourceMap":"58:1001:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;224:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;196:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;875;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;442:24;;;:::i;:::-;;959:98;;;:::i;:::-;;137:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;105:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;660:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;619:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;520;;;;;;;;;;;;;;;;;;;;:::o;224:23::-;;;;;;;;;;;;;:::o;196:17::-;;;;:::o;338:22::-;;;;;;;;;;;;;:::o;875:::-;;;;;;;;;;;;;;:::o;442:24::-;:::o;959:98::-;998:6;;991:13;;;;;;;;;;;959:98::o;137:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;105:17::-;;;;;;;;;;;;;:::o;660:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;927:25::-;;;;;;;;;;;;;:::o;170:15::-;;;;:::o;619:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:126::-;1414:7;1454:42;1447:5;1443:54;1432:65;;1377:126;;;:::o;1509:96::-;1546:7;1575:24;1593:5;1575:24;:::i;:::-;1564:35;;1509:96;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:180::-;2011:77;2008:1;2001:88;2108:4;2105:1;2098:15;2132:4;2129:1;2122:15;2149:120;2237:1;2230:5;2227:12;2217:46;;2243:18;;:::i;:::-;2217:46;2149:120;:::o;2275:141::-;2327:7;2356:5;2345:16;;2362:48;2404:5;2362:48;:::i;:::-;2275:141;;;:::o;2422:::-;2485:9;2518:39;2551:5;2518:39;:::i;:::-;2505:52;;2422:141;;;:::o;2569:157::-;2669:50;2713:5;2669:50;:::i;:::-;2664:3;2657:63;2569:157;;:::o;2732:248::-;2838:4;2876:2;2865:9;2861:18;2853:26;;2889:84;2970:1;2959:9;2955:17;2946:6;2889:84;:::i;:::-;2732:248;;;;:::o;2986:332::-;3107:4;3145:2;3134:9;3130:18;3122:26;;3158:71;3226:1;3215:9;3211:17;3202:6;3158:71;:::i;:::-;3239:72;3307:2;3296:9;3292:18;3283:6;3239:72;:::i;:::-;2986:332;;;;;:::o;3324:99::-;3376:6;3410:5;3404:12;3394:22;;3324:99;;;:::o;3429:169::-;3513:11;3547:6;3542:3;3535:19;3587:4;3582:3;3578:14;3563:29;;3429:169;;;;:::o;3604:139::-;3693:6;3688:3;3683;3677:23;3734:1;3725:6;3720:3;3716:16;3709:27;3604:139;;;:::o;3749:102::-;3790:6;3841:2;3837:7;3832:2;3825:5;3821:14;3817:28;3807:38;;3749:102;;;:::o;3857:377::-;3945:3;3973:39;4006:5;3973:39;:::i;:::-;4028:71;4092:6;4087:3;4028:71;:::i;:::-;4021:78;;4108:65;4166:6;4161:3;4154:4;4147:5;4143:16;4108:65;:::i;:::-;4198:29;4220:6;4198:29;:::i;:::-;4193:3;4189:39;4182:46;;3949:285;3857:377;;;;:::o;4240:313::-;4353:4;4391:2;4380:9;4376:18;4368:26;;4440:9;4434:4;4430:20;4426:1;4415:9;4411:17;4404:47;4468:78;4541:4;4532:6;4468:78;:::i;:::-;4460:86;;4240:313;;;;:::o;4559:90::-;4593:7;4636:5;4629:13;4622:21;4611:32;;4559:90;;;:::o;4655:109::-;4736:21;4751:5;4736:21;:::i;:::-;4731:3;4724:34;4655:109;;:::o;4770:210::-;4857:4;4895:2;4884:9;4880:18;4872:26;;4908:65;4970:1;4959:9;4955:17;4946:6;4908:65;:::i;:::-;4770:210;;;;:::o;4986:76::-;5022:7;5051:5;5040:16;;4986:76;;;:::o;5068:115::-;5153:23;5170:5;5153:23;:::i;:::-;5148:3;5141:36;5068:115;;:::o;5189:218::-;5280:4;5318:2;5307:9;5303:18;5295:26;;5331:69;5397:1;5386:9;5382:17;5373:6;5331:69;:::i;:::-;5189:218;;;;:::o;5413:180::-;5461:77;5458:1;5451:88;5558:4;5555:1;5548:15;5582:4;5579:1;5572:15;5599:320;5643:6;5680:1;5674:4;5670:12;5660:22;;5727:1;5721:4;5717:12;5748:18;5738:81;;5804:4;5796:6;5792:17;5782:27;;5738:81;5866:2;5858:6;5855:14;5835:18;5832:38;5829:84;;5885:18;;:::i;:::-;5829:84;5650:269;5599:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"_address()":"18bad217","_bool()":"9e6ba9c2","_bool2()":"a2e7fe8a","_dynamicArray(uint256)":"ea8e4fd1","_enum()":"30c0826f","_int()":"af45869e","_mapping(uint256)":"a2ba3ee4","_staticArray(uint256)":"12b7b142","_string()":"9b267f09","_uint()":"2543135b","d()":"8a054ac2","fe()":"86ed6eac","student()":"699450e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_dynamicArray\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_enum\",\"outputs\":[{\"internalType\":\"enum InitialValue.ActionSet\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_int\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_mapping\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_staticArray\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_string\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_uint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"d\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"student\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/08_InitialValue/InitialValue.sol\":\"InitialValue\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/08_InitialValue/InitialValue.sol\":{\"keccak256\":\"0x5202fdb42c064b2852d3cbcc885d03ea32fbda000122624e6b9fa5157281d65a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c86d17c08ed04505ae81dda16cb55d2e5c6dc2df10ac4eff5b348337f4e2793\",\"dweb:/ipfs/QmfFJyv86CdXVnVKVq1zxgWYiUeTYQaxaaPEj1WFZg4Q1t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool2","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_dynamicArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_enum","outputs":[{"internalType":"enum InitialValue.ActionSet","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_int","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_mapping","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"_staticArray","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_string","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_uint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"d"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"fe"},{"inputs":[],"stateMutability":"view","type":"function","name":"student","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/08_InitialValue/InitialValue.sol":"InitialValue"},"evmVersion":"prague","libraries":{}},"sources":{"src/08_InitialValue/InitialValue.sol":{"keccak256":"0x5202fdb42c064b2852d3cbcc885d03ea32fbda000122624e6b9fa5157281d65a","urls":["bzz-raw://1c86d17c08ed04505ae81dda16cb55d2e5c6dc2df10ac4eff5b348337f4e2793","dweb:/ipfs/QmfFJyv86CdXVnVKVq1zxgWYiUeTYQaxaaPEj1WFZg4Q1t"],"license":"MIT"}},"version":1},"id":51} \ No newline at end of file diff --git a/out/Interface.sol/IERC721.json b/out/Interface.sol/IERC721.json index c7a656a1..e1ce7724 100644 --- a/out/Interface.sol/IERC721.json +++ b/out/Interface.sol/IERC721.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"IERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"IERC721"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":60} \ No newline at end of file +{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"IERC721\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"IERC721"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/Interface.sol/InsertionSort.json b/out/Interface.sol/InsertionSort.json index 300b1f70..7f86ca32 100644 --- a/out/Interface.sol/InsertionSort.json +++ b/out/Interface.sol/InsertionSort.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"insertionSort","inputs":[{"name":"a","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"insertionSort(uint256[])":"6297206f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"a\",\"type\":\"uint256[]\"}],\"name\":\"insertionSort\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"InsertionSort\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"insertionSort","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"InsertionSort"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":60} \ No newline at end of file +{"abi":[{"type":"function","name":"insertionSort","inputs":[{"name":"a","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"insertionSort(uint256[])":"6297206f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"a\",\"type\":\"uint256[]\"}],\"name\":\"insertionSort\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"InsertionSort\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256[]","name":"a","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"insertionSort","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"InsertionSort"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/Interface.sol/interactBAYC.json b/out/Interface.sol/interactBAYC.json index 188b9456..068b83a2 100644 --- a/out/Interface.sol/interactBAYC.json +++ b/out/Interface.sol/interactBAYC.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOfBAYC","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFromBAYC","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405273bc4ca0eda7647a8ab7c2061c2e118a18a936f13d5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156061575f5ffd5b506103b98061006f5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80635b4f65bf14610038578063fec8a8a514610068575b5f5ffd5b610052600480360381019061004d9190610211565b610084565b60405161005f9190610254565b60405180910390f35b610082600480360381019061007d9190610297565b610124565b005b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016100de91906102f6565b602060405180830381865afa1580156100f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011d9190610323565b9050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8484846040518463ffffffff1660e01b81526004016101819392919061034e565b5f604051808303815f87803b158015610198575f5ffd5b505af11580156101aa573d5f5f3e3d5ffd5b50505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101e0826101b7565b9050919050565b6101f0816101d6565b81146101fa575f5ffd5b50565b5f8135905061020b816101e7565b92915050565b5f60208284031215610226576102256101b3565b5b5f610233848285016101fd565b91505092915050565b5f819050919050565b61024e8161023c565b82525050565b5f6020820190506102675f830184610245565b92915050565b6102768161023c565b8114610280575f5ffd5b50565b5f813590506102918161026d565b92915050565b5f5f5f606084860312156102ae576102ad6101b3565b5b5f6102bb868287016101fd565b93505060206102cc868287016101fd565b92505060406102dd86828701610283565b9150509250925092565b6102f0816101d6565b82525050565b5f6020820190506103095f8301846102e7565b92915050565b5f8151905061031d8161026d565b92915050565b5f60208284031215610338576103376101b3565b5b5f6103458482850161030f565b91505092915050565b5f6060820190506103615f8301866102e7565b61036e60208301856102e7565b61037b6040830184610245565b94935050505056fea2646970667358221220571e6438c37ae7b9c024329d57e1e81c06c0b47b11cbb4f4f5d51178f46b21f464736f6c63430008220033","sourceMap":"1301:554:60:-:0;;;1415:42;1392:66;;;;;;;;;;;;;;;;;;;;1301:554;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80635b4f65bf14610038578063fec8a8a514610068575b5f5ffd5b610052600480360381019061004d9190610211565b610084565b60405161005f9190610254565b60405180910390f35b610082600480360381019061007d9190610297565b610124565b005b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016100de91906102f6565b602060405180830381865afa1580156100f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011d9190610323565b9050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8484846040518463ffffffff1660e01b81526004016101819392919061034e565b5f604051808303815f87803b158015610198575f5ffd5b505af11580156101aa573d5f5f3e3d5ffd5b50505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101e0826101b7565b9050919050565b6101f0816101d6565b81146101fa575f5ffd5b50565b5f8135905061020b816101e7565b92915050565b5f60208284031215610226576102256101b3565b5b5f610233848285016101fd565b91505092915050565b5f819050919050565b61024e8161023c565b82525050565b5f6020820190506102675f830184610245565b92915050565b6102768161023c565b8114610280575f5ffd5b50565b5f813590506102918161026d565b92915050565b5f5f5f606084860312156102ae576102ad6101b3565b5b5f6102bb868287016101fd565b93505060206102cc868287016101fd565b92505060406102dd86828701610283565b9150509250925092565b6102f0816101d6565b82525050565b5f6020820190506103095f8301846102e7565b92915050565b5f8151905061031d8161026d565b92915050565b5f60208284031215610338576103376101b3565b5b5f6103458482850161030f565b91505092915050565b5f6060820190506103615f8301866102e7565b61036e60208301856102e7565b61037b6040830184610245565b94935050505056fea2646970667358221220571e6438c37ae7b9c024329d57e1e81c06c0b47b11cbb4f4f5d51178f46b21f464736f6c63430008220033","sourceMap":"1301:554:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1524:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1715:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1524:122;1585:15;1618:4;;;;;;;;;;;:14;;;1633:5;1618:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1611:28;;1524:122;;;:::o;1715:138::-;1806:4;;;;;;;;;;;:21;;;1828:4;1834:2;1838:7;1806:40;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1715:138;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:619::-;1961:6;1969;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:53;2222:7;2213:6;2202:9;2198:22;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;1884:619;;;;;:::o;2509:118::-;2596:24;2614:5;2596:24;:::i;:::-;2591:3;2584:37;2509:118;;:::o;2633:222::-;2726:4;2764:2;2753:9;2749:18;2741:26;;2777:71;2845:1;2834:9;2830:17;2821:6;2777:71;:::i;:::-;2633:222;;;;:::o;2861:143::-;2918:5;2949:6;2943:13;2934:22;;2965:33;2992:5;2965:33;:::i;:::-;2861:143;;;;:::o;3010:351::-;3080:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:119;;;3135:79;;:::i;:::-;3097:119;3255:1;3280:64;3336:7;3327:6;3316:9;3312:22;3280:64;:::i;:::-;3270:74;;3226:128;3010:351;;;;:::o;3367:442::-;3516:4;3554:2;3543:9;3539:18;3531:26;;3567:71;3635:1;3624:9;3620:17;3611:6;3567:71;:::i;:::-;3648:72;3716:2;3705:9;3701:18;3692:6;3648:72;:::i;:::-;3730;3798:2;3787:9;3783:18;3774:6;3730:72;:::i;:::-;3367:442;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOfBAYC(address)":"5b4f65bf","safeTransferFromBAYC(address,address,uint256)":"fec8a8a5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfBAYC\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFromBAYC\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"interactBAYC\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOfBAYC","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFromBAYC"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"interactBAYC"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":60} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOfBAYC","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFromBAYC","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405273bc4ca0eda7647a8ab7c2061c2e118a18a936f13d5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156061575f5ffd5b506103b98061006f5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80635b4f65bf14610038578063fec8a8a514610068575b5f5ffd5b610052600480360381019061004d9190610211565b610084565b60405161005f9190610254565b60405180910390f35b610082600480360381019061007d9190610297565b610124565b005b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016100de91906102f6565b602060405180830381865afa1580156100f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011d9190610323565b9050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8484846040518463ffffffff1660e01b81526004016101819392919061034e565b5f604051808303815f87803b158015610198575f5ffd5b505af11580156101aa573d5f5f3e3d5ffd5b50505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101e0826101b7565b9050919050565b6101f0816101d6565b81146101fa575f5ffd5b50565b5f8135905061020b816101e7565b92915050565b5f60208284031215610226576102256101b3565b5b5f610233848285016101fd565b91505092915050565b5f819050919050565b61024e8161023c565b82525050565b5f6020820190506102675f830184610245565b92915050565b6102768161023c565b8114610280575f5ffd5b50565b5f813590506102918161026d565b92915050565b5f5f5f606084860312156102ae576102ad6101b3565b5b5f6102bb868287016101fd565b93505060206102cc868287016101fd565b92505060406102dd86828701610283565b9150509250925092565b6102f0816101d6565b82525050565b5f6020820190506103095f8301846102e7565b92915050565b5f8151905061031d8161026d565b92915050565b5f60208284031215610338576103376101b3565b5b5f6103458482850161030f565b91505092915050565b5f6060820190506103615f8301866102e7565b61036e60208301856102e7565b61037b6040830184610245565b94935050505056fea2646970667358221220571e6438c37ae7b9c024329d57e1e81c06c0b47b11cbb4f4f5d51178f46b21f464736f6c63430008220033","sourceMap":"1301:554:56:-:0;;;1415:42;1392:66;;;;;;;;;;;;;;;;;;;;1301:554;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80635b4f65bf14610038578063fec8a8a514610068575b5f5ffd5b610052600480360381019061004d9190610211565b610084565b60405161005f9190610254565b60405180910390f35b610082600480360381019061007d9190610297565b610124565b005b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016100de91906102f6565b602060405180830381865afa1580156100f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011d9190610323565b9050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8484846040518463ffffffff1660e01b81526004016101819392919061034e565b5f604051808303815f87803b158015610198575f5ffd5b505af11580156101aa573d5f5f3e3d5ffd5b50505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101e0826101b7565b9050919050565b6101f0816101d6565b81146101fa575f5ffd5b50565b5f8135905061020b816101e7565b92915050565b5f60208284031215610226576102256101b3565b5b5f610233848285016101fd565b91505092915050565b5f819050919050565b61024e8161023c565b82525050565b5f6020820190506102675f830184610245565b92915050565b6102768161023c565b8114610280575f5ffd5b50565b5f813590506102918161026d565b92915050565b5f5f5f606084860312156102ae576102ad6101b3565b5b5f6102bb868287016101fd565b93505060206102cc868287016101fd565b92505060406102dd86828701610283565b9150509250925092565b6102f0816101d6565b82525050565b5f6020820190506103095f8301846102e7565b92915050565b5f8151905061031d8161026d565b92915050565b5f60208284031215610338576103376101b3565b5b5f6103458482850161030f565b91505092915050565b5f6060820190506103615f8301866102e7565b61036e60208301856102e7565b61037b6040830184610245565b94935050505056fea2646970667358221220571e6438c37ae7b9c024329d57e1e81c06c0b47b11cbb4f4f5d51178f46b21f464736f6c63430008220033","sourceMap":"1301:554:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1524:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1715:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1524:122;1585:15;1618:4;;;;;;;;;;;:14;;;1633:5;1618:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1611:28;;1524:122;;;:::o;1715:138::-;1806:4;;;;;;;;;;;:21;;;1828:4;1834:2;1838:7;1806:40;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1715:138;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:619::-;1961:6;1969;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:53;2222:7;2213:6;2202:9;2198:22;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;1884:619;;;;;:::o;2509:118::-;2596:24;2614:5;2596:24;:::i;:::-;2591:3;2584:37;2509:118;;:::o;2633:222::-;2726:4;2764:2;2753:9;2749:18;2741:26;;2777:71;2845:1;2834:9;2830:17;2821:6;2777:71;:::i;:::-;2633:222;;;;:::o;2861:143::-;2918:5;2949:6;2943:13;2934:22;;2965:33;2992:5;2965:33;:::i;:::-;2861:143;;;;:::o;3010:351::-;3080:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:119;;;3135:79;;:::i;:::-;3097:119;3255:1;3280:64;3336:7;3327:6;3316:9;3312:22;3280:64;:::i;:::-;3270:74;;3226:128;3010:351;;;;:::o;3367:442::-;3516:4;3554:2;3543:9;3539:18;3531:26;;3567:71;3635:1;3624:9;3620:17;3611:6;3567:71;:::i;:::-;3648:72;3716:2;3705:9;3701:18;3692:6;3648:72;:::i;:::-;3730;3798:2;3787:9;3783:18;3774:6;3730:72;:::i;:::-;3367:442;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOfBAYC(address)":"5b4f65bf","safeTransferFromBAYC(address,address,uint256)":"fec8a8a5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfBAYC\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFromBAYC\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/Interface.sol\":\"interactBAYC\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/14_Interface/Interface.sol\":{\"keccak256\":\"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4\",\"dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOfBAYC","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFromBAYC"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/Interface.sol":"interactBAYC"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/14_Interface/Interface.sol":{"keccak256":"0x26e539634b5036f784034d811e7e5fb7936916aa6f2eda12e505e6697b1f3d85","urls":["bzz-raw://c4fc7ec47585b64c1019b42d316255b3163aac4f7e65d5ab854ebedfba0d02e4","dweb:/ipfs/QmbHFoU4KHVauWXvfvaNQm1ZkU4tyFjZjni7hBeR72f6KF"],"license":"MIT"}},"version":1},"id":56} \ No newline at end of file diff --git a/out/InterfaceDemo.sol/Base.json b/out/InterfaceDemo.sol/Base.json index fa2a3ada..1785c8fe 100644 --- a/out/InterfaceDemo.sol/Base.json +++ b/out/InterfaceDemo.sol/Base.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getFirstName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getLastName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFirstName()":"932997f1","getLastName()":"6b109282"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getFirstName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/InterfaceDemo.sol\":\"Base\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/InterfaceDemo.sol\":{\"keccak256\":\"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d\",\"dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getFirstName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getLastName","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/InterfaceDemo.sol":"Base"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/InterfaceDemo.sol":{"keccak256":"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc","urls":["bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d","dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V"],"license":"MIT"}},"version":1},"id":61} \ No newline at end of file +{"abi":[{"type":"function","name":"getFirstName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getLastName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getFirstName()":"932997f1","getLastName()":"6b109282"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getFirstName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/InterfaceDemo.sol\":\"Base\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/InterfaceDemo.sol\":{\"keccak256\":\"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d\",\"dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getFirstName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getLastName","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/InterfaceDemo.sol":"Base"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/InterfaceDemo.sol":{"keccak256":"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc","urls":["bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d","dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file diff --git a/out/InterfaceDemo.sol/BaseImpl.json b/out/InterfaceDemo.sol/BaseImpl.json index c2d857e5..4d7cec2e 100644 --- a/out/InterfaceDemo.sol/BaseImpl.json +++ b/out/InterfaceDemo.sol/BaseImpl.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getFirstName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getLastName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101b48061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80636b10928214610038578063932997f114610056575b5f5ffd5b610040610074565b60405161004d919061015e565b60405180910390f35b61005e6100b1565b60405161006b919061015e565b60405180910390f35b60606040518060400160405280600381526020017f416e670000000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280600781526020017f416d617a696e6700000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610130826100ee565b61013a81856100f8565b935061014a818560208601610108565b61015381610116565b840191505092915050565b5f6020820190508181035f8301526101768184610126565b90509291505056fea2646970667358221220cdf9e6dcf8316bf10afec61a9ac2704306adcdbff993589693b09bd5bb55a10364736f6c63430008220033","sourceMap":"207:238:61:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80636b10928214610038578063932997f114610056575b5f5ffd5b610040610074565b60405161004d919061015e565b60405180910390f35b61005e6100b1565b60405161006b919061015e565b60405180910390f35b60606040518060400160405280600381526020017f416e670000000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280600781526020017f416d617a696e6700000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610130826100ee565b61013a81856100f8565b935061014a818560208601610108565b61015381610116565b840191505092915050565b5f6020820190508181035f8301526101768184610126565b90509291505056fea2646970667358221220cdf9e6dcf8316bf10afec61a9ac2704306adcdbff993589693b09bd5bb55a10364736f6c63430008220033","sourceMap":"207:238:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;238:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;345:98;399:13;423;;;;;;;;;;;;;;;;;;;345:98;:::o;238:102::-;293:13;317:16;;;;;;;;;;;;;;;;;;;238:102;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getFirstName()":"932997f1","getLastName()":"6b109282"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getFirstName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/InterfaceDemo.sol\":\"BaseImpl\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/InterfaceDemo.sol\":{\"keccak256\":\"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d\",\"dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getFirstName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getLastName","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/InterfaceDemo.sol":"BaseImpl"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/InterfaceDemo.sol":{"keccak256":"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc","urls":["bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d","dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V"],"license":"MIT"}},"version":1},"id":61} \ No newline at end of file +{"abi":[{"type":"function","name":"getFirstName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getLastName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101b48061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80636b10928214610038578063932997f114610056575b5f5ffd5b610040610074565b60405161004d919061015e565b60405180910390f35b61005e6100b1565b60405161006b919061015e565b60405180910390f35b60606040518060400160405280600381526020017f416e670000000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280600781526020017f416d617a696e6700000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610130826100ee565b61013a81856100f8565b935061014a818560208601610108565b61015381610116565b840191505092915050565b5f6020820190508181035f8301526101768184610126565b90509291505056fea2646970667358221220cdf9e6dcf8316bf10afec61a9ac2704306adcdbff993589693b09bd5bb55a10364736f6c63430008220033","sourceMap":"207:238:57:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80636b10928214610038578063932997f114610056575b5f5ffd5b610040610074565b60405161004d919061015e565b60405180910390f35b61005e6100b1565b60405161006b919061015e565b60405180910390f35b60606040518060400160405280600381526020017f416e670000000000000000000000000000000000000000000000000000000000815250905090565b60606040518060400160405280600781526020017f416d617a696e6700000000000000000000000000000000000000000000000000815250905090565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610130826100ee565b61013a81856100f8565b935061014a818560208601610108565b61015381610116565b840191505092915050565b5f6020820190508181035f8301526101768184610126565b90509291505056fea2646970667358221220cdf9e6dcf8316bf10afec61a9ac2704306adcdbff993589693b09bd5bb55a10364736f6c63430008220033","sourceMap":"207:238:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;238:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;345:98;399:13;423;;;;;;;;;;;;;;;;;;;345:98;:::o;238:102::-;293:13;317:16;;;;;;;;;;;;;;;;;;;238:102;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getFirstName()":"932997f1","getLastName()":"6b109282"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getFirstName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/14_Interface/InterfaceDemo.sol\":\"BaseImpl\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/14_Interface/InterfaceDemo.sol\":{\"keccak256\":\"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d\",\"dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getFirstName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getLastName","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/14_Interface/InterfaceDemo.sol":"BaseImpl"},"evmVersion":"prague","libraries":{}},"sources":{"src/14_Interface/InterfaceDemo.sol":{"keccak256":"0x0f15de4a0c12bb3cd84c367c86881a700c6f30a7fb3cd3264eda56a226a1ddfc","urls":["bzz-raw://b5c5dafd11fb2f660b5b187e154a63bdc7f679a65dca6bfdd146c71b9e6ec71d","dweb:/ipfs/QmPModxGdoJwMVLRizBv3pgJBsY8mAqsG8PqHEDDNAj78V"],"license":"MIT"}},"version":1},"id":57} \ No newline at end of file diff --git a/out/Lib.sol/IERC20.json b/out/Lib.sol/IERC20.json index 57f1d07b..2ae55b31 100644 --- a/out/Lib.sol/IERC20.json +++ b/out/Lib.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"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":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"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":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IERC20"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/ILendingPool.json b/out/Lib.sol/ILendingPool.json index 30ce27b2..efeb14f3 100644 --- a/out/Lib.sol/ILendingPool.json +++ b/out/Lib.sol/ILendingPool.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"FLASHLOAN_PREMIUM_TOTAL","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"flashLoanSimple","inputs":[{"name":"receiverAddress","type":"address","internalType":"address"},{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"referralCode","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"FLASHLOAN_PREMIUM_TOTAL()":"074b2e43","flashLoanSimple(address,address,uint256,bytes,uint16)":"42b0b77c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FLASHLOAN_PREMIUM_TOTAL\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiverAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"flashLoanSimple\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"ILendingPool\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"FLASHLOAN_PREMIUM_TOTAL","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"receiverAddress","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint16","name":"referralCode","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"flashLoanSimple"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"ILendingPool"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"type":"function","name":"FLASHLOAN_PREMIUM_TOTAL","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"flashLoanSimple","inputs":[{"name":"receiverAddress","type":"address","internalType":"address"},{"name":"asset","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"referralCode","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"FLASHLOAN_PREMIUM_TOTAL()":"074b2e43","flashLoanSimple(address,address,uint256,bytes,uint16)":"42b0b77c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FLASHLOAN_PREMIUM_TOTAL\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiverAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"flashLoanSimple\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"ILendingPool\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"FLASHLOAN_PREMIUM_TOTAL","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"receiverAddress","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint16","name":"referralCode","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"flashLoanSimple"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"ILendingPool"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/IUniswapV2Factory.json b/out/Lib.sol/IUniswapV2Factory.json index 8cd5d447..fe42efb1 100644 --- a/out/Lib.sol/IUniswapV2Factory.json +++ b/out/Lib.sol/IUniswapV2Factory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getPair(address,address)":"e6a43905"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV2Factory"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getPair(address,address)":"e6a43905"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV2Factory"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/IUniswapV2Pair.json b/out/Lib.sol/IUniswapV2Pair.json index 96aba101..b74fcd74 100644 --- a/out/Lib.sol/IUniswapV2Pair.json +++ b/out/Lib.sol/IUniswapV2Pair.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"swap(uint256,uint256,address,bytes)":"022c0d9f","token0()":"0dfe1681","token1()":"d21220a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV2Pair"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"swap(uint256,uint256,address,bytes)":"022c0d9f","token0()":"0dfe1681","token1()":"d21220a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV2Pair"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/IUniswapV3Pool.json b/out/Lib.sol/IUniswapV3Pool.json index 27ef263b..17d9a7a4 100644 --- a/out/Lib.sol/IUniswapV3Pool.json +++ b/out/Lib.sol/IUniswapV3Pool.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"flash","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"flash(address,uint256,uint256,bytes)":"490e6cbc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV3Pool\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flash"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV3Pool"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"type":"function","name":"flash","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"flash(address,uint256,uint256,bytes)":"490e6cbc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IUniswapV3Pool\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flash"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IUniswapV3Pool"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/IWETH.json b/out/Lib.sol/IWETH.json index ba2d3877..58c02c65 100644 --- a/out/Lib.sol/IWETH.json +++ b/out/Lib.sol/IWETH.json @@ -1 +1 @@ -{"abi":[{"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":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IWETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IWETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"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":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"IWETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"IWETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Lib.sol/PoolAddress.json b/out/Lib.sol/PoolAddress.json index badccee1..632fe2e2 100644 --- a/out/Lib.sol/PoolAddress.json +++ b/out/Lib.sol/PoolAddress.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b76d8d0e303091aa166e96d49d9736c6a6a14d55d2e8fc16208c4298f6b11f164736f6c63430008220033","sourceMap":"1364:1139:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b76d8d0e303091aa166e96d49d9736c6a6a14d55d2e8fc16208c4298f6b11f164736f6c63430008220033","sourceMap":"1364:1139:121:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"PoolAddress\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"PoolAddress"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":121} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b76d8d0e303091aa166e96d49d9736c6a6a14d55d2e8fc16208c4298f6b11f164736f6c63430008220033","sourceMap":"1364:1139:115:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208b76d8d0e303091aa166e96d49d9736c6a6a14d55d2e8fc16208c4298f6b11f164736f6c63430008220033","sourceMap":"1364:1139:115:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/Lib.sol\":\"PoolAddress\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/Lib.sol":"PoolAddress"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null}},"version":1},"id":115} \ No newline at end of file diff --git a/out/Library.sol/Strings.json b/out/Library.sol/Strings.json index c044a00e..7928f9b0 100644 --- a/out/Library.sol/Strings.json +++ b/out/Library.sol/Strings.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"toHexString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toHexString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6108f761004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c806363e1cbea1461004e5780636900a3ae1461007e5780638fba8d5c146100ae575b5f5ffd5b61006860048036038101906100639190610527565b6100de565b60405161007591906105d5565b60405180910390f35b610098600480360381019061009391906105f5565b610313565b6040516100a591906105d5565b60405180910390f35b6100c860048036038101906100c391906105f5565b61046c565b6040516100d591906105d5565b60405180910390f35b60605f60028360026100f0919061064d565b6100fa919061068e565b67ffffffffffffffff811115610113576101126106c1565b5b6040519080825280601f01601f1916602001820160405280156101455781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061017c5761017b6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106101df576101de6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f600184600261021d919061064d565b610227919061068e565b90505b60018111156102c6577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610269576102686106ee565b5b1a60f81b8282815181106102805761027f6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806102bf9061071b565b905061022a565b505f8414610309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103009061079c565b60405180910390fd5b8091505092915050565b60605f8203610359576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050610467565b5f8290505f5b5f8214610388578080610371906107ba565b915050600a82610381919061082e565b915061035f565b5f8167ffffffffffffffff8111156103a3576103a26106c1565b5b6040519080825280601f01601f1916602001820160405280156103d55781602001600182028036833780820191505090505b5090505b5f8514610460576001826103ed919061085e565b9150600a856103fc9190610891565b6030610408919061068e565b60f81b81838151811061041e5761041d6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85610459919061082e565b94506103d9565b8093505050505b919050565b60605f82036104b2576040518060400160405280600481526020017f307830300000000000000000000000000000000000000000000000000000000081525090506104eb565b5f8290505f5f90505b5f82146104dc5780806104cd906107ba565b915050600882901c91506104bb565b6104e684826100de565b925050505b919050565b5f5ffd5b5f819050919050565b610506816104f4565b8114610510575f5ffd5b50565b5f81359050610521816104fd565b92915050565b5f5f6040838503121561053d5761053c6104f0565b5b5f61054a85828601610513565b925050602061055b85828601610513565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105a782610565565b6105b1818561056f565b93506105c181856020860161057f565b6105ca8161058d565b840191505092915050565b5f6020820190508181035f8301526105ed818461059d565b905092915050565b5f6020828403121561060a576106096104f0565b5b5f61061784828501610513565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610657826104f4565b9150610662836104f4565b9250828202610670816104f4565b9150828204841483151761068757610686610620565b5b5092915050565b5f610698826104f4565b91506106a3836104f4565b92508282019050808211156106bb576106ba610620565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f610725826104f4565b91505f820361073757610736610620565b5b600182039050919050565b5f82825260208201905092915050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f610786602083610742565b915061079182610752565b602082019050919050565b5f6020820190508181035f8301526107b38161077a565b9050919050565b5f6107c4826104f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107f6576107f5610620565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610838826104f4565b9150610843836104f4565b92508261085357610852610801565b5b828204905092915050565b5f610868826104f4565b9150610873836104f4565b925082820390508181111561088b5761088a610620565b5b92915050565b5f61089b826104f4565b91506108a6836104f4565b9250826108b6576108b5610801565b5b82820690509291505056fea2646970667358221220f3a44d72e52503f73aba2a5e8fbb5e7b627ca17434473da27e541e15a26e710564736f6c63430008220033","sourceMap":"58:1879:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c806363e1cbea1461004e5780636900a3ae1461007e5780638fba8d5c146100ae575b5f5ffd5b61006860048036038101906100639190610527565b6100de565b60405161007591906105d5565b60405180910390f35b610098600480360381019061009391906105f5565b610313565b6040516100a591906105d5565b60405180910390f35b6100c860048036038101906100c391906105f5565b61046c565b6040516100d591906105d5565b60405180910390f35b60605f60028360026100f0919061064d565b6100fa919061068e565b67ffffffffffffffff811115610113576101126106c1565b5b6040519080825280601f01601f1916602001820160405280156101455781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061017c5761017b6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106101df576101de6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f600184600261021d919061064d565b610227919061068e565b90505b60018111156102c6577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610269576102686106ee565b5b1a60f81b8282815181106102805761027f6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806102bf9061071b565b905061022a565b505f8414610309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103009061079c565b60405180910390fd5b8091505092915050565b60605f8203610359576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050610467565b5f8290505f5b5f8214610388578080610371906107ba565b915050600a82610381919061082e565b915061035f565b5f8167ffffffffffffffff8111156103a3576103a26106c1565b5b6040519080825280601f01601f1916602001820160405280156103d55781602001600182028036833780820191505090505b5090505b5f8514610460576001826103ed919061085e565b9150600a856103fc9190610891565b6030610408919061068e565b60f81b81838151811061041e5761041d6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85610459919061082e565b94506103d9565b8093505050505b919050565b60605f82036104b2576040518060400160405280600481526020017f307830300000000000000000000000000000000000000000000000000000000081525090506104eb565b5f8290505f5f90505b5f82146104dc5780806104cd906107ba565b915050600882901c91506104bb565b6104e684826100de565b925050505b919050565b5f5ffd5b5f819050919050565b610506816104f4565b8114610510575f5ffd5b50565b5f81359050610521816104fd565b92915050565b5f5f6040838503121561053d5761053c6104f0565b5b5f61054a85828601610513565b925050602061055b85828601610513565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105a782610565565b6105b1818561056f565b93506105c181856020860161057f565b6105ca8161058d565b840191505092915050565b5f6020820190508181035f8301526105ed818461059d565b905092915050565b5f6020828403121561060a576106096104f0565b5b5f61061784828501610513565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610657826104f4565b9150610662836104f4565b9250828202610670816104f4565b9150828204841483151761068757610686610620565b5b5092915050565b5f610698826104f4565b91506106a3836104f4565b92508282019050808211156106bb576106ba610620565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f610725826104f4565b91505f820361073757610736610620565b5b600182039050919050565b5f82825260208201905092915050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f610786602083610742565b915061079182610752565b602082019050919050565b5f6020820190508181035f8301526107b38161077a565b9050919050565b5f6107c4826104f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107f6576107f5610620565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610838826104f4565b9150610843836104f4565b92508261085357610852610801565b5b828204905092915050565b5f610868826104f4565b9150610873836104f4565b925082820390508181111561088b5761088a610620565b5b92915050565b5f61089b826104f4565b91506108a6836104f4565b9250826108b6576108b5610801565b5b82820690509291505056fea2646970667358221220f3a44d72e52503f73aba2a5e8fbb5e7b627ca17434473da27e541e15a26e710564736f6c63430008220033","sourceMap":"58:1879:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1496:439;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;240:701;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1046:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1496:439;1569:13;1594:19;1639:1;1630:6;1626:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1616:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:47;;1651:15;:6;1658:1;1651:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1676;:6;1683:1;1676:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1706:9;1731:1;1722:6;1718:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1706:26;;1701:132;1738:1;1734;:5;1701:132;;;1772:12;1793:3;1785:5;:11;1772:25;;;;;;;:::i;:::-;;;;;1760:6;1767:1;1760:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1821:1;1811:11;;;;;1741:3;;;;:::i;:::-;;;1701:132;;;;1859:1;1850:5;:10;1842:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1921:6;1907:21;;;1496:439;;;;:::o;240:701::-;294:13;520:1;511:5;:10;507:51;;537:10;;;;;;;;;;;;;;;;;;;;;507:51;567:12;582:5;567:20;;597:14;621:75;636:1;628:4;:9;621:75;;653:8;;;;;:::i;:::-;;;;683:2;675:10;;;;;:::i;:::-;;;621:75;;;705:19;737:6;727:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:39;;754:150;770:1;761:5;:10;754:150;;797:1;787:11;;;;;:::i;:::-;;;863:2;855:5;:10;;;;:::i;:::-;842:2;:24;;;;:::i;:::-;829:39;;812:6;819;812:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;891:2;882:11;;;;;:::i;:::-;;;754:150;;;927:6;913:21;;;;;240:701;;;;:::o;1046:327::-;1103:13;1141:1;1132:5;:10;1128:54;;1158:13;;;;;;;;;;;;;;;;;;;;;1128:54;1191:12;1206:5;1191:20;;1221:14;1238:1;1221:18;;1249:75;1264:1;1256:4;:9;1249:75;;1281:8;;;;;:::i;:::-;;;;1312:1;1303:10;;;;;1249:75;;;1340:26;1352:5;1359:6;1340:11;:26::i;:::-;1333:33;;;;1046:327;;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:177::-;1367:11;1401:6;1396:3;1389:19;1441:4;1436:3;1432:14;1417:29;;1275:177;;;;:::o;1458:139::-;1547:6;1542:3;1537;1531:23;1588:1;1579:6;1574:3;1570:16;1563:27;1458:139;;;:::o;1603:102::-;1644:6;1695:2;1691:7;1686:2;1679:5;1675:14;1671:28;1661:38;;1603:102;;;:::o;1711:393::-;1807:3;1835:39;1868:5;1835:39;:::i;:::-;1890:79;1962:6;1957:3;1890:79;:::i;:::-;1883:86;;1978:65;2036:6;2031:3;2024:4;2017:5;2013:16;1978:65;:::i;:::-;2068:29;2090:6;2068:29;:::i;:::-;2063:3;2059:39;2052:46;;1811:293;1711:393;;;;:::o;2110:329::-;2231:4;2269:2;2258:9;2254:18;2246:26;;2318:9;2312:4;2308:20;2304:1;2293:9;2289:17;2282:47;2346:86;2427:4;2418:6;2346:86;:::i;:::-;2338:94;;2110:329;;;;:::o;2445:::-;2504:6;2553:2;2541:9;2532:7;2528:23;2524:32;2521:119;;;2559:79;;:::i;:::-;2521:119;2679:1;2704:53;2749:7;2740:6;2729:9;2725:22;2704:53;:::i;:::-;2694:63;;2650:117;2445:329;;;;:::o;2780:180::-;2828:77;2825:1;2818:88;2925:4;2922:1;2915:15;2949:4;2946:1;2939:15;2966:410;3006:7;3029:20;3047:1;3029:20;:::i;:::-;3024:25;;3063:20;3081:1;3063:20;:::i;:::-;3058:25;;3118:1;3115;3111:9;3140:30;3158:11;3140:30;:::i;:::-;3129:41;;3319:1;3310:7;3306:15;3303:1;3300:22;3280:1;3273:9;3253:83;3230:139;;3349:18;;:::i;:::-;3230:139;3014:362;2966:410;;;;:::o;3382:191::-;3422:3;3441:20;3459:1;3441:20;:::i;:::-;3436:25;;3475:20;3493:1;3475:20;:::i;:::-;3470:25;;3518:1;3515;3511:9;3504:16;;3539:3;3536:1;3533:10;3530:36;;;3546:18;;:::i;:::-;3530:36;3382:191;;;;:::o;3579:180::-;3627:77;3624:1;3617:88;3724:4;3721:1;3714:15;3748:4;3745:1;3738:15;3765:180;3813:77;3810:1;3803:88;3910:4;3907:1;3900:15;3934:4;3931:1;3924:15;3951:171;3990:3;4013:24;4031:5;4013:24;:::i;:::-;4004:33;;4059:4;4052:5;4049:15;4046:41;;4067:18;;:::i;:::-;4046:41;4114:1;4107:5;4103:13;4096:20;;3951:171;;;:::o;4128:169::-;4212:11;4246:6;4241:3;4234:19;4286:4;4281:3;4277:14;4262:29;;4128:169;;;;:::o;4303:182::-;4443:34;4439:1;4431:6;4427:14;4420:58;4303:182;:::o;4491:366::-;4633:3;4654:67;4718:2;4713:3;4654:67;:::i;:::-;4647:74;;4730:93;4819:3;4730:93;:::i;:::-;4848:2;4843:3;4839:12;4832:19;;4491:366;;;:::o;4863:419::-;5029:4;5067:2;5056:9;5052:18;5044:26;;5116:9;5110:4;5106:20;5102:1;5091:9;5087:17;5080:47;5144:131;5270:4;5144:131;:::i;:::-;5136:139;;4863:419;;;:::o;5288:233::-;5327:3;5350:24;5368:5;5350:24;:::i;:::-;5341:33;;5396:66;5389:5;5386:77;5383:103;;5466:18;;:::i;:::-;5383:103;5513:1;5506:5;5502:13;5495:20;;5288:233;;;:::o;5527:180::-;5575:77;5572:1;5565:88;5672:4;5669:1;5662:15;5696:4;5693:1;5686:15;5713:185;5753:1;5770:20;5788:1;5770:20;:::i;:::-;5765:25;;5804:20;5822:1;5804:20;:::i;:::-;5799:25;;5843:1;5833:35;;5848:18;;:::i;:::-;5833:35;5890:1;5887;5883:9;5878:14;;5713:185;;;;:::o;5904:194::-;5944:4;5964:20;5982:1;5964:20;:::i;:::-;5959:25;;5998:20;6016:1;5998:20;:::i;:::-;5993:25;;6042:1;6039;6035:9;6027:17;;6066:1;6060:4;6057:11;6054:37;;;6071:18;;:::i;:::-;6054:37;5904:194;;;;:::o;6104:176::-;6136:1;6153:20;6171:1;6153:20;:::i;:::-;6148:25;;6187:20;6205:1;6187:20;:::i;:::-;6182:25;;6226:1;6216:35;;6231:18;;:::i;:::-;6216:35;6272:1;6269;6265:9;6260:14;;6104:176;;;;:::o","linkReferences":{}},"methodIdentifiers":{"toHexString(uint256)":"8fba8d5c","toHexString(uint256,uint256)":"63e1cbea","toString(uint256)":"6900a3ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"toHexString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toHexString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"toHexString(uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` hexadecimal representation.\"},\"toHexString(uint256,uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\"},\"toString(uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` decimal representation.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/17_Library/Library.sol\":\"Strings\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/17_Library/Library.sol\":{\"keccak256\":\"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123\",\"dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toHexString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toHexString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"toHexString(uint256)":{"details":"Converts a `uint256` to its ASCII `string` hexadecimal representation."},"toHexString(uint256,uint256)":{"details":"Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"toString(uint256)":{"details":"Converts a `uint256` to its ASCII `string` decimal representation."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/17_Library/Library.sol":"Strings"},"evmVersion":"prague","libraries":{}},"sources":{"src/17_Library/Library.sol":{"keccak256":"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d","urls":["bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123","dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"function","name":"toHexString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toHexString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6108f761004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c806363e1cbea1461004e5780636900a3ae1461007e5780638fba8d5c146100ae575b5f5ffd5b61006860048036038101906100639190610527565b6100de565b60405161007591906105d5565b60405180910390f35b610098600480360381019061009391906105f5565b610313565b6040516100a591906105d5565b60405180910390f35b6100c860048036038101906100c391906105f5565b61046c565b6040516100d591906105d5565b60405180910390f35b60605f60028360026100f0919061064d565b6100fa919061068e565b67ffffffffffffffff811115610113576101126106c1565b5b6040519080825280601f01601f1916602001820160405280156101455781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061017c5761017b6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106101df576101de6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f600184600261021d919061064d565b610227919061068e565b90505b60018111156102c6577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610269576102686106ee565b5b1a60f81b8282815181106102805761027f6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806102bf9061071b565b905061022a565b505f8414610309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103009061079c565b60405180910390fd5b8091505092915050565b60605f8203610359576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050610467565b5f8290505f5b5f8214610388578080610371906107ba565b915050600a82610381919061082e565b915061035f565b5f8167ffffffffffffffff8111156103a3576103a26106c1565b5b6040519080825280601f01601f1916602001820160405280156103d55781602001600182028036833780820191505090505b5090505b5f8514610460576001826103ed919061085e565b9150600a856103fc9190610891565b6030610408919061068e565b60f81b81838151811061041e5761041d6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85610459919061082e565b94506103d9565b8093505050505b919050565b60605f82036104b2576040518060400160405280600481526020017f307830300000000000000000000000000000000000000000000000000000000081525090506104eb565b5f8290505f5f90505b5f82146104dc5780806104cd906107ba565b915050600882901c91506104bb565b6104e684826100de565b925050505b919050565b5f5ffd5b5f819050919050565b610506816104f4565b8114610510575f5ffd5b50565b5f81359050610521816104fd565b92915050565b5f5f6040838503121561053d5761053c6104f0565b5b5f61054a85828601610513565b925050602061055b85828601610513565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105a782610565565b6105b1818561056f565b93506105c181856020860161057f565b6105ca8161058d565b840191505092915050565b5f6020820190508181035f8301526105ed818461059d565b905092915050565b5f6020828403121561060a576106096104f0565b5b5f61061784828501610513565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610657826104f4565b9150610662836104f4565b9250828202610670816104f4565b9150828204841483151761068757610686610620565b5b5092915050565b5f610698826104f4565b91506106a3836104f4565b92508282019050808211156106bb576106ba610620565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f610725826104f4565b91505f820361073757610736610620565b5b600182039050919050565b5f82825260208201905092915050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f610786602083610742565b915061079182610752565b602082019050919050565b5f6020820190508181035f8301526107b38161077a565b9050919050565b5f6107c4826104f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107f6576107f5610620565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610838826104f4565b9150610843836104f4565b92508261085357610852610801565b5b828204905092915050565b5f610868826104f4565b9150610873836104f4565b925082820390508181111561088b5761088a610620565b5b92915050565b5f61089b826104f4565b91506108a6836104f4565b9250826108b6576108b5610801565b5b82820690509291505056fea2646970667358221220f3a44d72e52503f73aba2a5e8fbb5e7b627ca17434473da27e541e15a26e710564736f6c63430008220033","sourceMap":"58:1879:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c806363e1cbea1461004e5780636900a3ae1461007e5780638fba8d5c146100ae575b5f5ffd5b61006860048036038101906100639190610527565b6100de565b60405161007591906105d5565b60405180910390f35b610098600480360381019061009391906105f5565b610313565b6040516100a591906105d5565b60405180910390f35b6100c860048036038101906100c391906105f5565b61046c565b6040516100d591906105d5565b60405180910390f35b60605f60028360026100f0919061064d565b6100fa919061068e565b67ffffffffffffffff811115610113576101126106c1565b5b6040519080825280601f01601f1916602001820160405280156101455781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061017c5761017b6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106101df576101de6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f600184600261021d919061064d565b610227919061068e565b90505b60018111156102c6577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110610269576102686106ee565b5b1a60f81b8282815181106102805761027f6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c9450806102bf9061071b565b905061022a565b505f8414610309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103009061079c565b60405180910390fd5b8091505092915050565b60605f8203610359576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050610467565b5f8290505f5b5f8214610388578080610371906107ba565b915050600a82610381919061082e565b915061035f565b5f8167ffffffffffffffff8111156103a3576103a26106c1565b5b6040519080825280601f01601f1916602001820160405280156103d55781602001600182028036833780820191505090505b5090505b5f8514610460576001826103ed919061085e565b9150600a856103fc9190610891565b6030610408919061068e565b60f81b81838151811061041e5761041d6106ee565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85610459919061082e565b94506103d9565b8093505050505b919050565b60605f82036104b2576040518060400160405280600481526020017f307830300000000000000000000000000000000000000000000000000000000081525090506104eb565b5f8290505f5f90505b5f82146104dc5780806104cd906107ba565b915050600882901c91506104bb565b6104e684826100de565b925050505b919050565b5f5ffd5b5f819050919050565b610506816104f4565b8114610510575f5ffd5b50565b5f81359050610521816104fd565b92915050565b5f5f6040838503121561053d5761053c6104f0565b5b5f61054a85828601610513565b925050602061055b85828601610513565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105a782610565565b6105b1818561056f565b93506105c181856020860161057f565b6105ca8161058d565b840191505092915050565b5f6020820190508181035f8301526105ed818461059d565b905092915050565b5f6020828403121561060a576106096104f0565b5b5f61061784828501610513565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610657826104f4565b9150610662836104f4565b9250828202610670816104f4565b9150828204841483151761068757610686610620565b5b5092915050565b5f610698826104f4565b91506106a3836104f4565b92508282019050808211156106bb576106ba610620565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f610725826104f4565b91505f820361073757610736610620565b5b600182039050919050565b5f82825260208201905092915050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f610786602083610742565b915061079182610752565b602082019050919050565b5f6020820190508181035f8301526107b38161077a565b9050919050565b5f6107c4826104f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036107f6576107f5610620565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610838826104f4565b9150610843836104f4565b92508261085357610852610801565b5b828204905092915050565b5f610868826104f4565b9150610873836104f4565b925082820390508181111561088b5761088a610620565b5b92915050565b5f61089b826104f4565b91506108a6836104f4565b9250826108b6576108b5610801565b5b82820690509291505056fea2646970667358221220f3a44d72e52503f73aba2a5e8fbb5e7b627ca17434473da27e541e15a26e710564736f6c63430008220033","sourceMap":"58:1879:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1496:439;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;240:701;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1046:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1496:439;1569:13;1594:19;1639:1;1630:6;1626:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1616:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:47;;1651:15;:6;1658:1;1651:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1676;:6;1683:1;1676:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;1706:9;1731:1;1722:6;1718:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;1706:26;;1701:132;1738:1;1734;:5;1701:132;;;1772:12;1793:3;1785:5;:11;1772:25;;;;;;;:::i;:::-;;;;;1760:6;1767:1;1760:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;1821:1;1811:11;;;;;1741:3;;;;:::i;:::-;;;1701:132;;;;1859:1;1850:5;:10;1842:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1921:6;1907:21;;;1496:439;;;;:::o;240:701::-;294:13;520:1;511:5;:10;507:51;;537:10;;;;;;;;;;;;;;;;;;;;;507:51;567:12;582:5;567:20;;597:14;621:75;636:1;628:4;:9;621:75;;653:8;;;;;:::i;:::-;;;;683:2;675:10;;;;;:::i;:::-;;;621:75;;;705:19;737:6;727:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:39;;754:150;770:1;761:5;:10;754:150;;797:1;787:11;;;;;:::i;:::-;;;863:2;855:5;:10;;;;:::i;:::-;842:2;:24;;;;:::i;:::-;829:39;;812:6;819;812:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;891:2;882:11;;;;;:::i;:::-;;;754:150;;;927:6;913:21;;;;;240:701;;;;:::o;1046:327::-;1103:13;1141:1;1132:5;:10;1128:54;;1158:13;;;;;;;;;;;;;;;;;;;;;1128:54;1191:12;1206:5;1191:20;;1221:14;1238:1;1221:18;;1249:75;1264:1;1256:4;:9;1249:75;;1281:8;;;;;:::i;:::-;;;;1312:1;1303:10;;;;;1249:75;;;1340:26;1352:5;1359:6;1340:11;:26::i;:::-;1333:33;;;;1046:327;;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:177::-;1367:11;1401:6;1396:3;1389:19;1441:4;1436:3;1432:14;1417:29;;1275:177;;;;:::o;1458:139::-;1547:6;1542:3;1537;1531:23;1588:1;1579:6;1574:3;1570:16;1563:27;1458:139;;;:::o;1603:102::-;1644:6;1695:2;1691:7;1686:2;1679:5;1675:14;1671:28;1661:38;;1603:102;;;:::o;1711:393::-;1807:3;1835:39;1868:5;1835:39;:::i;:::-;1890:79;1962:6;1957:3;1890:79;:::i;:::-;1883:86;;1978:65;2036:6;2031:3;2024:4;2017:5;2013:16;1978:65;:::i;:::-;2068:29;2090:6;2068:29;:::i;:::-;2063:3;2059:39;2052:46;;1811:293;1711:393;;;;:::o;2110:329::-;2231:4;2269:2;2258:9;2254:18;2246:26;;2318:9;2312:4;2308:20;2304:1;2293:9;2289:17;2282:47;2346:86;2427:4;2418:6;2346:86;:::i;:::-;2338:94;;2110:329;;;;:::o;2445:::-;2504:6;2553:2;2541:9;2532:7;2528:23;2524:32;2521:119;;;2559:79;;:::i;:::-;2521:119;2679:1;2704:53;2749:7;2740:6;2729:9;2725:22;2704:53;:::i;:::-;2694:63;;2650:117;2445:329;;;;:::o;2780:180::-;2828:77;2825:1;2818:88;2925:4;2922:1;2915:15;2949:4;2946:1;2939:15;2966:410;3006:7;3029:20;3047:1;3029:20;:::i;:::-;3024:25;;3063:20;3081:1;3063:20;:::i;:::-;3058:25;;3118:1;3115;3111:9;3140:30;3158:11;3140:30;:::i;:::-;3129:41;;3319:1;3310:7;3306:15;3303:1;3300:22;3280:1;3273:9;3253:83;3230:139;;3349:18;;:::i;:::-;3230:139;3014:362;2966:410;;;;:::o;3382:191::-;3422:3;3441:20;3459:1;3441:20;:::i;:::-;3436:25;;3475:20;3493:1;3475:20;:::i;:::-;3470:25;;3518:1;3515;3511:9;3504:16;;3539:3;3536:1;3533:10;3530:36;;;3546:18;;:::i;:::-;3530:36;3382:191;;;;:::o;3579:180::-;3627:77;3624:1;3617:88;3724:4;3721:1;3714:15;3748:4;3745:1;3738:15;3765:180;3813:77;3810:1;3803:88;3910:4;3907:1;3900:15;3934:4;3931:1;3924:15;3951:171;3990:3;4013:24;4031:5;4013:24;:::i;:::-;4004:33;;4059:4;4052:5;4049:15;4046:41;;4067:18;;:::i;:::-;4046:41;4114:1;4107:5;4103:13;4096:20;;3951:171;;;:::o;4128:169::-;4212:11;4246:6;4241:3;4234:19;4286:4;4281:3;4277:14;4262:29;;4128:169;;;;:::o;4303:182::-;4443:34;4439:1;4431:6;4427:14;4420:58;4303:182;:::o;4491:366::-;4633:3;4654:67;4718:2;4713:3;4654:67;:::i;:::-;4647:74;;4730:93;4819:3;4730:93;:::i;:::-;4848:2;4843:3;4839:12;4832:19;;4491:366;;;:::o;4863:419::-;5029:4;5067:2;5056:9;5052:18;5044:26;;5116:9;5110:4;5106:20;5102:1;5091:9;5087:17;5080:47;5144:131;5270:4;5144:131;:::i;:::-;5136:139;;4863:419;;;:::o;5288:233::-;5327:3;5350:24;5368:5;5350:24;:::i;:::-;5341:33;;5396:66;5389:5;5386:77;5383:103;;5466:18;;:::i;:::-;5383:103;5513:1;5506:5;5502:13;5495:20;;5288:233;;;:::o;5527:180::-;5575:77;5572:1;5565:88;5672:4;5669:1;5662:15;5696:4;5693:1;5686:15;5713:185;5753:1;5770:20;5788:1;5770:20;:::i;:::-;5765:25;;5804:20;5822:1;5804:20;:::i;:::-;5799:25;;5843:1;5833:35;;5848:18;;:::i;:::-;5833:35;5890:1;5887;5883:9;5878:14;;5713:185;;;;:::o;5904:194::-;5944:4;5964:20;5982:1;5964:20;:::i;:::-;5959:25;;5998:20;6016:1;5998:20;:::i;:::-;5993:25;;6042:1;6039;6035:9;6027:17;;6066:1;6060:4;6057:11;6054:37;;;6071:18;;:::i;:::-;6054:37;5904:194;;;;:::o;6104:176::-;6136:1;6153:20;6171:1;6153:20;:::i;:::-;6148:25;;6187:20;6205:1;6187:20;:::i;:::-;6182:25;;6226:1;6216:35;;6231:18;;:::i;:::-;6216:35;6272:1;6269;6265:9;6260:14;;6104:176;;;;:::o","linkReferences":{}},"methodIdentifiers":{"toHexString(uint256)":"8fba8d5c","toHexString(uint256,uint256)":"63e1cbea","toString(uint256)":"6900a3ae"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"toHexString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toHexString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"toHexString(uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` hexadecimal representation.\"},\"toHexString(uint256,uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\"},\"toString(uint256)\":{\"details\":\"Converts a `uint256` to its ASCII `string` decimal representation.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/17_Library/Library.sol\":\"Strings\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/17_Library/Library.sol\":{\"keccak256\":\"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123\",\"dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toHexString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toHexString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"toHexString(uint256)":{"details":"Converts a `uint256` to its ASCII `string` hexadecimal representation."},"toHexString(uint256,uint256)":{"details":"Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"toString(uint256)":{"details":"Converts a `uint256` to its ASCII `string` decimal representation."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/17_Library/Library.sol":"Strings"},"evmVersion":"prague","libraries":{}},"sources":{"src/17_Library/Library.sol":{"keccak256":"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d","urls":["bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123","dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11"],"license":"MIT"}},"version":1},"id":60} \ No newline at end of file diff --git a/out/Library.sol/UseLibrary.json b/out/Library.sol/UseLibrary.json index 3e134258..4e5b992c 100644 --- a/out/Library.sol/UseLibrary.json +++ b/out/Library.sol/UseLibrary.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getString1","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getString2","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104608061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063d6ee0f3214610038578063e65eac9814610068575b5f5ffd5b610052600480360381019061004d91906101e2565b610098565b60405161005f919061027d565b60405180910390f35b610082600480360381019061007d91906101e2565b61011c565b60405161008f919061027d565b60405180910390f35b60608173__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c90916040518263ffffffff1660e01b81526004016100d391906102ac565b5f60405180830381865af41580156100ed573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061011591906103e3565b9050919050565b606073__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c836040518263ffffffff1660e01b815260040161015591906102ac565b5f60405180830381865af415801561016f573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061019791906103e3565b9050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6101c1816101af565b81146101cb575f5ffd5b50565b5f813590506101dc816101b8565b92915050565b5f602082840312156101f7576101f66101a7565b5b5f610204848285016101ce565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61024f8261020d565b6102598185610217565b9350610269818560208601610227565b61027281610235565b840191505092915050565b5f6020820190508181035f8301526102958184610245565b905092915050565b6102a6816101af565b82525050565b5f6020820190506102bf5f83018461029d565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030382610235565b810181811067ffffffffffffffff82111715610322576103216102cd565b5b80604052505050565b5f61033461019e565b905061034082826102fa565b919050565b5f67ffffffffffffffff82111561035f5761035e6102cd565b5b61036882610235565b9050602081019050919050565b5f61038761038284610345565b61032b565b9050828152602081018484840111156103a3576103a26102c9565b5b6103ae848285610227565b509392505050565b5f82601f8301126103ca576103c96102c5565b5b81516103da848260208601610375565b91505092915050565b5f602082840312156103f8576103f76101a7565b5b5f82015167ffffffffffffffff811115610415576104146101ab565b5b610421848285016103b6565b9150509291505056fea264697066735822122076ff14c1ff8be25c0038dbec38619b8a3985d46250020c72403f32f5a87619fd64736f6c63430008220033","sourceMap":"1977:447:64:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/17_Library/Library.sol":{"Strings":[{"start":185,"length":20},{"start":316,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063d6ee0f3214610038578063e65eac9814610068575b5f5ffd5b610052600480360381019061004d91906101e2565b610098565b60405161005f919061027d565b60405180910390f35b610082600480360381019061007d91906101e2565b61011c565b60405161008f919061027d565b60405180910390f35b60608173__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c90916040518263ffffffff1660e01b81526004016100d391906102ac565b5f60405180830381865af41580156100ed573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061011591906103e3565b9050919050565b606073__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c836040518263ffffffff1660e01b815260040161015591906102ac565b5f60405180830381865af415801561016f573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061019791906103e3565b9050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6101c1816101af565b81146101cb575f5ffd5b50565b5f813590506101dc816101b8565b92915050565b5f602082840312156101f7576101f66101a7565b5b5f610204848285016101ce565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61024f8261020d565b6102598185610217565b9350610269818560208601610227565b61027281610235565b840191505092915050565b5f6020820190508181035f8301526102958184610245565b905092915050565b6102a6816101af565b82525050565b5f6020820190506102bf5f83018461029d565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030382610235565b810181811067ffffffffffffffff82111715610322576103216102cd565b5b80604052505050565b5f61033461019e565b905061034082826102fa565b919050565b5f67ffffffffffffffff82111561035f5761035e6102cd565b5b61036882610235565b9050602081019050919050565b5f61038761038284610345565b61032b565b9050828152602081018484840111156103a3576103a26102c9565b5b6103ae848285610227565b509392505050565b5f82601f8301126103ca576103c96102c5565b5b81516103da848260208601610375565b91505092915050565b5f602082840312156103f8576103f76101a7565b5b5f82015167ffffffffffffffff811115610415576104146101ab565b5b610421848285016103b6565b9150509291505056fea264697066735822122076ff14c1ff8be25c0038dbec38619b8a3985d46250020c72403f32f5a87619fd64736f6c63430008220033","sourceMap":"1977:447:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2075:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2299:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2075:180;2132:13;2227:7;:19;;;;:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2220:28;;2075:180;;;:::o;2299:123::-;2356:13;2387:7;:19;2407:7;2387:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2380:35;;2299:123;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2355:24;2373:5;2355:24;:::i;:::-;2350:3;2343:37;2260:126;;:::o;2392:238::-;2493:4;2531:2;2520:9;2516:18;2508:26;;2544:79;2620:1;2609:9;2605:17;2596:6;2544:79;:::i;:::-;2392:238;;;;:::o;2636:117::-;2745:1;2742;2735:12;2759:117;2868:1;2865;2858:12;2882:180;2930:77;2927:1;2920:88;3027:4;3024:1;3017:15;3051:4;3048:1;3041:15;3068:281;3151:27;3173:4;3151:27;:::i;:::-;3143:6;3139:40;3281:6;3269:10;3266:22;3245:18;3233:10;3230:34;3227:62;3224:88;;;3292:18;;:::i;:::-;3224:88;3332:10;3328:2;3321:22;3111:238;3068:281;;:::o;3355:129::-;3389:6;3416:20;;:::i;:::-;3406:30;;3445:33;3473:4;3465:6;3445:33;:::i;:::-;3355:129;;;:::o;3490:308::-;3552:4;3642:18;3634:6;3631:30;3628:56;;;3664:18;;:::i;:::-;3628:56;3702:29;3724:6;3702:29;:::i;:::-;3694:37;;3786:4;3780;3776:15;3768:23;;3490:308;;;:::o;3804:434::-;3893:5;3918:66;3934:49;3976:6;3934:49;:::i;:::-;3918:66;:::i;:::-;3909:75;;4007:6;4000:5;3993:21;4045:4;4038:5;4034:16;4083:3;4074:6;4069:3;4065:16;4062:25;4059:112;;;4090:79;;:::i;:::-;4059:112;4180:52;4225:6;4220:3;4215;4180:52;:::i;:::-;3899:339;3804:434;;;;;:::o;4258:355::-;4325:5;4374:3;4367:4;4359:6;4355:17;4351:27;4341:122;;4382:79;;:::i;:::-;4341:122;4492:6;4486:13;4517:90;4603:3;4595:6;4588:4;4580:6;4576:17;4517:90;:::i;:::-;4508:99;;4331:282;4258:355;;;;:::o;4619:524::-;4699:6;4748:2;4736:9;4727:7;4723:23;4719:32;4716:119;;;4754:79;;:::i;:::-;4716:119;4895:1;4884:9;4880:17;4874:24;4925:18;4917:6;4914:30;4911:117;;;4947:79;;:::i;:::-;4911:117;5052:74;5118:7;5109:6;5098:9;5094:22;5052:74;:::i;:::-;5042:84;;4845:291;4619:524;;;;:::o","linkReferences":{"src/17_Library/Library.sol":{"Strings":[{"start":157,"length":20},{"start":288,"length":20}]}}},"methodIdentifiers":{"getString1(uint256)":"d6ee0f32","getString2(uint256)":"e65eac98"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"getString1\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"getString2\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/17_Library/Library.sol\":\"UseLibrary\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/17_Library/Library.sol\":{\"keccak256\":\"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123\",\"dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getString1","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getString2","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/17_Library/Library.sol":"UseLibrary"},"evmVersion":"prague","libraries":{}},"sources":{"src/17_Library/Library.sol":{"keccak256":"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d","urls":["bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123","dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"function","name":"getString1","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getString2","inputs":[{"name":"_number","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104608061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063d6ee0f3214610038578063e65eac9814610068575b5f5ffd5b610052600480360381019061004d91906101e2565b610098565b60405161005f919061027d565b60405180910390f35b610082600480360381019061007d91906101e2565b61011c565b60405161008f919061027d565b60405180910390f35b60608173__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c90916040518263ffffffff1660e01b81526004016100d391906102ac565b5f60405180830381865af41580156100ed573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061011591906103e3565b9050919050565b606073__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c836040518263ffffffff1660e01b815260040161015591906102ac565b5f60405180830381865af415801561016f573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061019791906103e3565b9050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6101c1816101af565b81146101cb575f5ffd5b50565b5f813590506101dc816101b8565b92915050565b5f602082840312156101f7576101f66101a7565b5b5f610204848285016101ce565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61024f8261020d565b6102598185610217565b9350610269818560208601610227565b61027281610235565b840191505092915050565b5f6020820190508181035f8301526102958184610245565b905092915050565b6102a6816101af565b82525050565b5f6020820190506102bf5f83018461029d565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030382610235565b810181811067ffffffffffffffff82111715610322576103216102cd565b5b80604052505050565b5f61033461019e565b905061034082826102fa565b919050565b5f67ffffffffffffffff82111561035f5761035e6102cd565b5b61036882610235565b9050602081019050919050565b5f61038761038284610345565b61032b565b9050828152602081018484840111156103a3576103a26102c9565b5b6103ae848285610227565b509392505050565b5f82601f8301126103ca576103c96102c5565b5b81516103da848260208601610375565b91505092915050565b5f602082840312156103f8576103f76101a7565b5b5f82015167ffffffffffffffff811115610415576104146101ab565b5b610421848285016103b6565b9150509291505056fea264697066735822122076ff14c1ff8be25c0038dbec38619b8a3985d46250020c72403f32f5a87619fd64736f6c63430008220033","sourceMap":"1977:447:60:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/17_Library/Library.sol":{"Strings":[{"start":185,"length":20},{"start":316,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063d6ee0f3214610038578063e65eac9814610068575b5f5ffd5b610052600480360381019061004d91906101e2565b610098565b60405161005f919061027d565b60405180910390f35b610082600480360381019061007d91906101e2565b61011c565b60405161008f919061027d565b60405180910390f35b60608173__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c90916040518263ffffffff1660e01b81526004016100d391906102ac565b5f60405180830381865af41580156100ed573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061011591906103e3565b9050919050565b606073__$111ee09297e5373e93f7baec7c227ba511$__638fba8d5c836040518263ffffffff1660e01b815260040161015591906102ac565b5f60405180830381865af415801561016f573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061019791906103e3565b9050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6101c1816101af565b81146101cb575f5ffd5b50565b5f813590506101dc816101b8565b92915050565b5f602082840312156101f7576101f66101a7565b5b5f610204848285016101ce565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61024f8261020d565b6102598185610217565b9350610269818560208601610227565b61027281610235565b840191505092915050565b5f6020820190508181035f8301526102958184610245565b905092915050565b6102a6816101af565b82525050565b5f6020820190506102bf5f83018461029d565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030382610235565b810181811067ffffffffffffffff82111715610322576103216102cd565b5b80604052505050565b5f61033461019e565b905061034082826102fa565b919050565b5f67ffffffffffffffff82111561035f5761035e6102cd565b5b61036882610235565b9050602081019050919050565b5f61038761038284610345565b61032b565b9050828152602081018484840111156103a3576103a26102c9565b5b6103ae848285610227565b509392505050565b5f82601f8301126103ca576103c96102c5565b5b81516103da848260208601610375565b91505092915050565b5f602082840312156103f8576103f76101a7565b5b5f82015167ffffffffffffffff811115610415576104146101ab565b5b610421848285016103b6565b9150509291505056fea264697066735822122076ff14c1ff8be25c0038dbec38619b8a3985d46250020c72403f32f5a87619fd64736f6c63430008220033","sourceMap":"1977:447:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2075:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2299:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2075:180;2132:13;2227:7;:19;;;;:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2220:28;;2075:180;;;:::o;2299:123::-;2356:13;2387:7;:19;2407:7;2387:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2380:35;;2299:123;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2355:24;2373:5;2355:24;:::i;:::-;2350:3;2343:37;2260:126;;:::o;2392:238::-;2493:4;2531:2;2520:9;2516:18;2508:26;;2544:79;2620:1;2609:9;2605:17;2596:6;2544:79;:::i;:::-;2392:238;;;;:::o;2636:117::-;2745:1;2742;2735:12;2759:117;2868:1;2865;2858:12;2882:180;2930:77;2927:1;2920:88;3027:4;3024:1;3017:15;3051:4;3048:1;3041:15;3068:281;3151:27;3173:4;3151:27;:::i;:::-;3143:6;3139:40;3281:6;3269:10;3266:22;3245:18;3233:10;3230:34;3227:62;3224:88;;;3292:18;;:::i;:::-;3224:88;3332:10;3328:2;3321:22;3111:238;3068:281;;:::o;3355:129::-;3389:6;3416:20;;:::i;:::-;3406:30;;3445:33;3473:4;3465:6;3445:33;:::i;:::-;3355:129;;;:::o;3490:308::-;3552:4;3642:18;3634:6;3631:30;3628:56;;;3664:18;;:::i;:::-;3628:56;3702:29;3724:6;3702:29;:::i;:::-;3694:37;;3786:4;3780;3776:15;3768:23;;3490:308;;;:::o;3804:434::-;3893:5;3918:66;3934:49;3976:6;3934:49;:::i;:::-;3918:66;:::i;:::-;3909:75;;4007:6;4000:5;3993:21;4045:4;4038:5;4034:16;4083:3;4074:6;4069:3;4065:16;4062:25;4059:112;;;4090:79;;:::i;:::-;4059:112;4180:52;4225:6;4220:3;4215;4180:52;:::i;:::-;3899:339;3804:434;;;;;:::o;4258:355::-;4325:5;4374:3;4367:4;4359:6;4355:17;4351:27;4341:122;;4382:79;;:::i;:::-;4341:122;4492:6;4486:13;4517:90;4603:3;4595:6;4588:4;4580:6;4576:17;4517:90;:::i;:::-;4508:99;;4331:282;4258:355;;;;:::o;4619:524::-;4699:6;4748:2;4736:9;4727:7;4723:23;4719:32;4716:119;;;4754:79;;:::i;:::-;4716:119;4895:1;4884:9;4880:17;4874:24;4925:18;4917:6;4914:30;4911:117;;;4947:79;;:::i;:::-;4911:117;5052:74;5118:7;5109:6;5098:9;5094:22;5052:74;:::i;:::-;5042:84;;4845:291;4619:524;;;;:::o","linkReferences":{"src/17_Library/Library.sol":{"Strings":[{"start":157,"length":20},{"start":288,"length":20}]}}},"methodIdentifiers":{"getString1(uint256)":"d6ee0f32","getString2(uint256)":"e65eac98"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"getString1\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"getString2\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/17_Library/Library.sol\":\"UseLibrary\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/17_Library/Library.sol\":{\"keccak256\":\"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123\",\"dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getString1","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_number","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getString2","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/17_Library/Library.sol":"UseLibrary"},"evmVersion":"prague","libraries":{}},"sources":{"src/17_Library/Library.sol":{"keccak256":"0xa1ff65fae00eb365c8737888df8e51407104cc5f8d1b6a5923813c8dd9ff025d","urls":["bzz-raw://64e487beb16ef35103994c9d063679d371db75b8c12fdeea2d53969bd2d8c123","dweb:/ipfs/QmbtjjZwBeREMtdrpU4oiuSYvfCtiCPaRg88Rnr52Wwi11"],"license":"MIT"}},"version":1},"id":60} \ No newline at end of file diff --git a/out/MCERC20.sol/MCERC20.json b/out/MCERC20.sol/MCERC20.json index 5d3e34e5..f3aaeab7 100644 --- a/out/MCERC20.sol/MCERC20.json +++ b/out/MCERC20.sol/MCERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516113b23803806113b2833981810160405281019061003191906101a9565b818181600390816100429190610440565b5080600490816100529190610440565b505050505061050f565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100bb82610075565b810181811067ffffffffffffffff821117156100da576100d9610085565b5b80604052505050565b5f6100ec61005c565b90506100f882826100b2565b919050565b5f67ffffffffffffffff82111561011757610116610085565b5b61012082610075565b9050602081019050919050565b8281835e5f83830152505050565b5f61014d610148846100fd565b6100e3565b90508281526020810184848401111561016957610168610071565b5b61017484828561012d565b509392505050565b5f82601f8301126101905761018f61006d565b5b81516101a084826020860161013b565b91505092915050565b5f5f604083850312156101bf576101be610065565b5b5f83015167ffffffffffffffff8111156101dc576101db610069565b5b6101e88582860161017c565b925050602083015167ffffffffffffffff81111561020957610208610069565b5b6102158582860161017c565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026d57607f821691505b6020821081036102805761027f610229565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a7565b6102ec86836102a7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033061032b61032684610304565b61030d565b610304565b9050919050565b5f819050919050565b61034983610316565b61035d61035582610337565b8484546102b3565b825550505050565b5f5f905090565b610374610365565b61037f818484610340565b505050565b5f5b828110156103a55761039a5f82840161036c565b600181019050610386565b505050565b601f8211156103f857828211156103f7576103c481610286565b6103cd83610298565b6103d685610298565b60208610156103e3575f90505b8083016103f282840382610384565b505050505b5b505050565b5f82821c905092915050565b5f6104185f19846008026103fd565b1980831691505092915050565b5f6104308383610409565b9150826002028217905092915050565b6104498261021f565b67ffffffffffffffff81111561046257610461610085565b5b61046c8254610256565b6104778282856103aa565b5f60209050601f8311600181146104a8575f8415610496578287015190505b6104a08582610425565b865550610507565b601f1984166104b686610286565b5f5b828110156104dd578489015182556001820191506020850194506020810190506104b8565b868310156104fa57848901516104f6601f891682610409565b8355505b6001600288020188555050505b505050505050565b610e968061051c5f395ff3fe608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806340c10f191161006457806340c10f191461015a57806370a082311461017657806395d89b41146101a6578063a9059cbb146101c4578063dd62ed3e146101f45761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610224565b6040516100b59190610b0f565b60405180910390f35b6100d860048036038101906100d39190610bc0565b6102b4565b6040516100e59190610c18565b60405180910390f35b6100f66102d6565b6040516101039190610c40565b60405180910390f35b61012660048036038101906101219190610c59565b6102df565b6040516101339190610c18565b60405180910390f35b61014461030d565b6040516101519190610cc4565b60405180910390f35b610174600480360381019061016f9190610bc0565b610315565b005b610190600480360381019061018b9190610cdd565b610323565b60405161019d9190610c40565b60405180910390f35b6101ae610368565b6040516101bb9190610b0f565b60405180910390f35b6101de60048036038101906101d99190610bc0565b6103f8565b6040516101eb9190610c18565b60405180910390f35b61020e60048036038101906102099190610d08565b61041a565b60405161021b9190610c40565b60405180910390f35b60606003805461023390610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610d73565b80156102aa5780601f10610281576101008083540402835291602001916102aa565b820191905f5260205f20905b81548152906001019060200180831161028d57829003601f168201915b5050505050905090565b5f5f6102be61049c565b90506102cb8185856104a3565b600191505092915050565b5f600254905090565b5f5f6102e961049c565b90506102f68582856104b5565b610301858585610548565b60019150509392505050565b5f6012905090565b61031f8282610638565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461037790610d73565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610d73565b80156103ee5780601f106103c5576101008083540402835291602001916103ee565b820191905f5260205f20905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b5f5f61040261049c565b905061040f818585610548565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104b083838360016106b7565b505050565b5f6104c0848461041a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105425781811015610533578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161052a93929190610db2565b60405180910390fd5b61054184848484035f6106b7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105af9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610628575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161061f9190610de7565b60405180910390fd5b610633838383610886565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a8575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069f9190610de7565b60405180910390fd5b6106b35f8383610886565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610727575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161071e9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610797575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161078e9190610de7565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610880578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108779190610c40565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6578060025f8282546108ca9190610e2d565b925050819055506109a4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561095f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161095693929190610db2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109eb578060025f8282540392505081905550610a35565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a929190610c40565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ae182610a9f565b610aeb8185610aa9565b9350610afb818560208601610ab9565b610b0481610ac7565b840191505092915050565b5f6020820190508181035f830152610b278184610ad7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5c82610b33565b9050919050565b610b6c81610b52565b8114610b76575f5ffd5b50565b5f81359050610b8781610b63565b92915050565b5f819050919050565b610b9f81610b8d565b8114610ba9575f5ffd5b50565b5f81359050610bba81610b96565b92915050565b5f5f60408385031215610bd657610bd5610b2f565b5b5f610be385828601610b79565b9250506020610bf485828601610bac565b9150509250929050565b5f8115159050919050565b610c1281610bfe565b82525050565b5f602082019050610c2b5f830184610c09565b92915050565b610c3a81610b8d565b82525050565b5f602082019050610c535f830184610c31565b92915050565b5f5f5f60608486031215610c7057610c6f610b2f565b5b5f610c7d86828701610b79565b9350506020610c8e86828701610b79565b9250506040610c9f86828701610bac565b9150509250925092565b5f60ff82169050919050565b610cbe81610ca9565b82525050565b5f602082019050610cd75f830184610cb5565b92915050565b5f60208284031215610cf257610cf1610b2f565b5b5f610cff84828501610b79565b91505092915050565b5f5f60408385031215610d1e57610d1d610b2f565b5b5f610d2b85828601610b79565b9250506020610d3c85828601610b79565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d8a57607f821691505b602082108103610d9d57610d9c610d46565b5b50919050565b610dac81610b52565b82525050565b5f606082019050610dc55f830186610da3565b610dd26020830185610c31565b610ddf6040830184610c31565b949350505050565b5f602082019050610dfa5f830184610da3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e3782610b8d565b9150610e4283610b8d565b9250828201905080821115610e5a57610e59610e00565b5b9291505056fea2646970667358221220d4a10c6626aa456bb438452ec5da16081ded92b0dbecb5492a0dad866876497c64736f6c63430008220033","sourceMap":"114:200:117:-:0;;;145:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;207:5;214:7;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;145:79:117;;114:200;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;114:200:117:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806340c10f191161006457806340c10f191461015a57806370a082311461017657806395d89b41146101a6578063a9059cbb146101c4578063dd62ed3e146101f45761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610224565b6040516100b59190610b0f565b60405180910390f35b6100d860048036038101906100d39190610bc0565b6102b4565b6040516100e59190610c18565b60405180910390f35b6100f66102d6565b6040516101039190610c40565b60405180910390f35b61012660048036038101906101219190610c59565b6102df565b6040516101339190610c18565b60405180910390f35b61014461030d565b6040516101519190610cc4565b60405180910390f35b610174600480360381019061016f9190610bc0565b610315565b005b610190600480360381019061018b9190610cdd565b610323565b60405161019d9190610c40565b60405180910390f35b6101ae610368565b6040516101bb9190610b0f565b60405180910390f35b6101de60048036038101906101d99190610bc0565b6103f8565b6040516101eb9190610c18565b60405180910390f35b61020e60048036038101906102099190610d08565b61041a565b60405161021b9190610c40565b60405180910390f35b60606003805461023390610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610d73565b80156102aa5780601f10610281576101008083540402835291602001916102aa565b820191905f5260205f20905b81548152906001019060200180831161028d57829003601f168201915b5050505050905090565b5f5f6102be61049c565b90506102cb8185856104a3565b600191505092915050565b5f600254905090565b5f5f6102e961049c565b90506102f68582856104b5565b610301858585610548565b60019150509392505050565b5f6012905090565b61031f8282610638565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461037790610d73565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610d73565b80156103ee5780601f106103c5576101008083540402835291602001916103ee565b820191905f5260205f20905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b5f5f61040261049c565b905061040f818585610548565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104b083838360016106b7565b505050565b5f6104c0848461041a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105425781811015610533578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161052a93929190610db2565b60405180910390fd5b61054184848484035f6106b7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105af9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610628575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161061f9190610de7565b60405180910390fd5b610633838383610886565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a8575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069f9190610de7565b60405180910390fd5b6106b35f8383610886565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610727575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161071e9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610797575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161078e9190610de7565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610880578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108779190610c40565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6578060025f8282546108ca9190610e2d565b925050819055506109a4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561095f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161095693929190610db2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109eb578060025f8282540392505081905550610a35565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a929190610c40565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ae182610a9f565b610aeb8185610aa9565b9350610afb818560208601610ab9565b610b0481610ac7565b840191505092915050565b5f6020820190508181035f830152610b278184610ad7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5c82610b33565b9050919050565b610b6c81610b52565b8114610b76575f5ffd5b50565b5f81359050610b8781610b63565b92915050565b5f819050919050565b610b9f81610b8d565b8114610ba9575f5ffd5b50565b5f81359050610bba81610b96565b92915050565b5f5f60408385031215610bd657610bd5610b2f565b5b5f610be385828601610b79565b9250506020610bf485828601610bac565b9150509250929050565b5f8115159050919050565b610c1281610bfe565b82525050565b5f602082019050610c2b5f830184610c09565b92915050565b610c3a81610b8d565b82525050565b5f602082019050610c535f830184610c31565b92915050565b5f5f5f60608486031215610c7057610c6f610b2f565b5b5f610c7d86828701610b79565b9350506020610c8e86828701610b79565b9250506040610c9f86828701610bac565b9150509250925092565b5f60ff82169050919050565b610cbe81610ca9565b82525050565b5f602082019050610cd75f830184610cb5565b92915050565b5f60208284031215610cf257610cf1610b2f565b5b5f610cff84828501610b79565b91505092915050565b5f5f60408385031215610d1e57610d1d610b2f565b5b5f610d2b85828601610b79565b9250506020610d3c85828601610b79565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d8a57607f821691505b602082108103610d9d57610d9c610d46565b5b50919050565b610dac81610b52565b82525050565b5f606082019050610dc55f830186610da3565b610dd26020830185610c31565b610ddf6040830184610c31565b949350505050565b5f602082019050610dfa5f830184610da3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e3782610b8d565b9150610e4283610b8d565b9250828201905080821115610e5a57610e59610e00565b5b9291505056fea2646970667358221220d4a10c6626aa456bb438452ec5da16081ded92b0dbecb5492a0dad866876497c64736f6c63430008220033","sourceMap":"114:200:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;230::117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;230::117:-;288:17;294:2;298:6;288:5;:17::i;:::-;230:82;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5791:6;5828:1;5822:4;5818:12;5808:22;;5875:1;5869:4;5865:12;5896:18;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5977:84;5798:269;5747:320;;;:::o;6073:118::-;6160:24;6178:5;6160:24;:::i;:::-;6155:3;6148:37;6073:118;;:::o;6197:442::-;6346:4;6384:2;6373:9;6369:18;6361:26;;6397:71;6465:1;6454:9;6450:17;6441:6;6397:71;:::i;:::-;6478:72;6546:2;6535:9;6531:18;6522:6;6478:72;:::i;:::-;6560;6628:2;6617:9;6613:18;6604:6;6560:72;:::i;:::-;6197:442;;;;;;:::o;6645:222::-;6738:4;6776:2;6765:9;6761:18;6753:26;;6789:71;6857:1;6846:9;6842:17;6833:6;6789:71;:::i;:::-;6645:222;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/55_MultiCall/MCERC20.sol\":\"MCERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/55_MultiCall/MCERC20.sol\":{\"keccak256\":\"0x3c87dc770568c459d854dccf8cf6bc59cdfba42d9b366f990a448924ebb67165\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceb68db88816e619d2e0b7c14404d5daa3bae571eb76279e0d680be06339539\",\"dweb:/ipfs/QmQedfJWRJJfa6EvzFEX5czNs11d5GjJdaQWWKW2swE7zk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/55_MultiCall/MCERC20.sol":"MCERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/55_MultiCall/MCERC20.sol":{"keccak256":"0x3c87dc770568c459d854dccf8cf6bc59cdfba42d9b366f990a448924ebb67165","urls":["bzz-raw://2ceb68db88816e619d2e0b7c14404d5daa3bae571eb76279e0d680be06339539","dweb:/ipfs/QmQedfJWRJJfa6EvzFEX5czNs11d5GjJdaQWWKW2swE7zk"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"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":"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516113b23803806113b2833981810160405281019061003191906101a9565b818181600390816100429190610440565b5080600490816100529190610440565b505050505061050f565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100bb82610075565b810181811067ffffffffffffffff821117156100da576100d9610085565b5b80604052505050565b5f6100ec61005c565b90506100f882826100b2565b919050565b5f67ffffffffffffffff82111561011757610116610085565b5b61012082610075565b9050602081019050919050565b8281835e5f83830152505050565b5f61014d610148846100fd565b6100e3565b90508281526020810184848401111561016957610168610071565b5b61017484828561012d565b509392505050565b5f82601f8301126101905761018f61006d565b5b81516101a084826020860161013b565b91505092915050565b5f5f604083850312156101bf576101be610065565b5b5f83015167ffffffffffffffff8111156101dc576101db610069565b5b6101e88582860161017c565b925050602083015167ffffffffffffffff81111561020957610208610069565b5b6102158582860161017c565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026d57607f821691505b6020821081036102805761027f610229565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a7565b6102ec86836102a7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033061032b61032684610304565b61030d565b610304565b9050919050565b5f819050919050565b61034983610316565b61035d61035582610337565b8484546102b3565b825550505050565b5f5f905090565b610374610365565b61037f818484610340565b505050565b5f5b828110156103a55761039a5f82840161036c565b600181019050610386565b505050565b601f8211156103f857828211156103f7576103c481610286565b6103cd83610298565b6103d685610298565b60208610156103e3575f90505b8083016103f282840382610384565b505050505b5b505050565b5f82821c905092915050565b5f6104185f19846008026103fd565b1980831691505092915050565b5f6104308383610409565b9150826002028217905092915050565b6104498261021f565b67ffffffffffffffff81111561046257610461610085565b5b61046c8254610256565b6104778282856103aa565b5f60209050601f8311600181146104a8575f8415610496578287015190505b6104a08582610425565b865550610507565b601f1984166104b686610286565b5f5b828110156104dd578489015182556001820191506020850194506020810190506104b8565b868310156104fa57848901516104f6601f891682610409565b8355505b6001600288020188555050505b505050505050565b610e968061051c5f395ff3fe608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806340c10f191161006457806340c10f191461015a57806370a082311461017657806395d89b41146101a6578063a9059cbb146101c4578063dd62ed3e146101f45761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610224565b6040516100b59190610b0f565b60405180910390f35b6100d860048036038101906100d39190610bc0565b6102b4565b6040516100e59190610c18565b60405180910390f35b6100f66102d6565b6040516101039190610c40565b60405180910390f35b61012660048036038101906101219190610c59565b6102df565b6040516101339190610c18565b60405180910390f35b61014461030d565b6040516101519190610cc4565b60405180910390f35b610174600480360381019061016f9190610bc0565b610315565b005b610190600480360381019061018b9190610cdd565b610323565b60405161019d9190610c40565b60405180910390f35b6101ae610368565b6040516101bb9190610b0f565b60405180910390f35b6101de60048036038101906101d99190610bc0565b6103f8565b6040516101eb9190610c18565b60405180910390f35b61020e60048036038101906102099190610d08565b61041a565b60405161021b9190610c40565b60405180910390f35b60606003805461023390610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610d73565b80156102aa5780601f10610281576101008083540402835291602001916102aa565b820191905f5260205f20905b81548152906001019060200180831161028d57829003601f168201915b5050505050905090565b5f5f6102be61049c565b90506102cb8185856104a3565b600191505092915050565b5f600254905090565b5f5f6102e961049c565b90506102f68582856104b5565b610301858585610548565b60019150509392505050565b5f6012905090565b61031f8282610638565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461037790610d73565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610d73565b80156103ee5780601f106103c5576101008083540402835291602001916103ee565b820191905f5260205f20905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b5f5f61040261049c565b905061040f818585610548565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104b083838360016106b7565b505050565b5f6104c0848461041a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105425781811015610533578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161052a93929190610db2565b60405180910390fd5b61054184848484035f6106b7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105af9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610628575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161061f9190610de7565b60405180910390fd5b610633838383610886565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a8575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069f9190610de7565b60405180910390fd5b6106b35f8383610886565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610727575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161071e9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610797575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161078e9190610de7565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610880578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108779190610c40565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6578060025f8282546108ca9190610e2d565b925050819055506109a4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561095f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161095693929190610db2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109eb578060025f8282540392505081905550610a35565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a929190610c40565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ae182610a9f565b610aeb8185610aa9565b9350610afb818560208601610ab9565b610b0481610ac7565b840191505092915050565b5f6020820190508181035f830152610b278184610ad7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5c82610b33565b9050919050565b610b6c81610b52565b8114610b76575f5ffd5b50565b5f81359050610b8781610b63565b92915050565b5f819050919050565b610b9f81610b8d565b8114610ba9575f5ffd5b50565b5f81359050610bba81610b96565b92915050565b5f5f60408385031215610bd657610bd5610b2f565b5b5f610be385828601610b79565b9250506020610bf485828601610bac565b9150509250929050565b5f8115159050919050565b610c1281610bfe565b82525050565b5f602082019050610c2b5f830184610c09565b92915050565b610c3a81610b8d565b82525050565b5f602082019050610c535f830184610c31565b92915050565b5f5f5f60608486031215610c7057610c6f610b2f565b5b5f610c7d86828701610b79565b9350506020610c8e86828701610b79565b9250506040610c9f86828701610bac565b9150509250925092565b5f60ff82169050919050565b610cbe81610ca9565b82525050565b5f602082019050610cd75f830184610cb5565b92915050565b5f60208284031215610cf257610cf1610b2f565b5b5f610cff84828501610b79565b91505092915050565b5f5f60408385031215610d1e57610d1d610b2f565b5b5f610d2b85828601610b79565b9250506020610d3c85828601610b79565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d8a57607f821691505b602082108103610d9d57610d9c610d46565b5b50919050565b610dac81610b52565b82525050565b5f606082019050610dc55f830186610da3565b610dd26020830185610c31565b610ddf6040830184610c31565b949350505050565b5f602082019050610dfa5f830184610da3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e3782610b8d565b9150610e4283610b8d565b9250828201905080821115610e5a57610e59610e00565b5b9291505056fea2646970667358221220d4a10c6626aa456bb438452ec5da16081ded92b0dbecb5492a0dad866876497c64736f6c63430008220033","sourceMap":"114:200:111:-:0;;;145:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;207:5;214:7;1656:5:22;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;145:79:111;;114:200;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;114:200:111:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061009c575f3560e01c806340c10f191161006457806340c10f191461015a57806370a082311461017657806395d89b41146101a6578063a9059cbb146101c4578063dd62ed3e146101f45761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f5ffd5b6100a8610224565b6040516100b59190610b0f565b60405180910390f35b6100d860048036038101906100d39190610bc0565b6102b4565b6040516100e59190610c18565b60405180910390f35b6100f66102d6565b6040516101039190610c40565b60405180910390f35b61012660048036038101906101219190610c59565b6102df565b6040516101339190610c18565b60405180910390f35b61014461030d565b6040516101519190610cc4565b60405180910390f35b610174600480360381019061016f9190610bc0565b610315565b005b610190600480360381019061018b9190610cdd565b610323565b60405161019d9190610c40565b60405180910390f35b6101ae610368565b6040516101bb9190610b0f565b60405180910390f35b6101de60048036038101906101d99190610bc0565b6103f8565b6040516101eb9190610c18565b60405180910390f35b61020e60048036038101906102099190610d08565b61041a565b60405161021b9190610c40565b60405180910390f35b60606003805461023390610d73565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610d73565b80156102aa5780601f10610281576101008083540402835291602001916102aa565b820191905f5260205f20905b81548152906001019060200180831161028d57829003601f168201915b5050505050905090565b5f5f6102be61049c565b90506102cb8185856104a3565b600191505092915050565b5f600254905090565b5f5f6102e961049c565b90506102f68582856104b5565b610301858585610548565b60019150509392505050565b5f6012905090565b61031f8282610638565b5050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461037790610d73565b80601f01602080910402602001604051908101604052809291908181526020018280546103a390610d73565b80156103ee5780601f106103c5576101008083540402835291602001916103ee565b820191905f5260205f20905b8154815290600101906020018083116103d157829003601f168201915b5050505050905090565b5f5f61040261049c565b905061040f818585610548565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104b083838360016106b7565b505050565b5f6104c0848461041a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105425781811015610533578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161052a93929190610db2565b60405180910390fd5b61054184848484035f6106b7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b8575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105af9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610628575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161061f9190610de7565b60405180910390fd5b610633838383610886565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a8575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069f9190610de7565b60405180910390fd5b6106b35f8383610886565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610727575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161071e9190610de7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610797575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161078e9190610de7565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610880578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108779190610c40565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108d6578060025f8282546108ca9190610e2d565b925050819055506109a4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561095f578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161095693929190610db2565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109eb578060025f8282540392505081905550610a35565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a929190610c40565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ae182610a9f565b610aeb8185610aa9565b9350610afb818560208601610ab9565b610b0481610ac7565b840191505092915050565b5f6020820190508181035f830152610b278184610ad7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5c82610b33565b9050919050565b610b6c81610b52565b8114610b76575f5ffd5b50565b5f81359050610b8781610b63565b92915050565b5f819050919050565b610b9f81610b8d565b8114610ba9575f5ffd5b50565b5f81359050610bba81610b96565b92915050565b5f5f60408385031215610bd657610bd5610b2f565b5b5f610be385828601610b79565b9250506020610bf485828601610bac565b9150509250929050565b5f8115159050919050565b610c1281610bfe565b82525050565b5f602082019050610c2b5f830184610c09565b92915050565b610c3a81610b8d565b82525050565b5f602082019050610c535f830184610c31565b92915050565b5f5f5f60608486031215610c7057610c6f610b2f565b5b5f610c7d86828701610b79565b9350506020610c8e86828701610b79565b9250506040610c9f86828701610bac565b9150509250925092565b5f60ff82169050919050565b610cbe81610ca9565b82525050565b5f602082019050610cd75f830184610cb5565b92915050565b5f60208284031215610cf257610cf1610b2f565b5b5f610cff84828501610b79565b91505092915050565b5f5f60408385031215610d1e57610d1d610b2f565b5b5f610d2b85828601610b79565b9250506020610d3c85828601610b79565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d8a57607f821691505b602082108103610d9d57610d9c610d46565b5b50919050565b610dac81610b52565b82525050565b5f606082019050610dc55f830186610da3565b610dd26020830185610c31565b610ddf6040830184610c31565b949350505050565b5f602082019050610dfa5f830184610da3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e3782610b8d565b9150610e4283610b8d565b9250828201905080821115610e5a57610e59610e00565b5b9291505056fea2646970667358221220d4a10c6626aa456bb438452ec5da16081ded92b0dbecb5492a0dad866876497c64736f6c63430008220033","sourceMap":"114:200:111:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;230::111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;230::111:-;288:17;294:2;298:6;288:5;:17::i;:::-;230:82;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:180::-;5609:77;5606:1;5599:88;5706:4;5703:1;5696:15;5730:4;5727:1;5720:15;5747:320;5791:6;5828:1;5822:4;5818:12;5808:22;;5875:1;5869:4;5865:12;5896:18;5886:81;;5952:4;5944:6;5940:17;5930:27;;5886:81;6014:2;6006:6;6003:14;5983:18;5980:38;5977:84;;6033:18;;:::i;:::-;5977:84;5798:269;5747:320;;;:::o;6073:118::-;6160:24;6178:5;6160:24;:::i;:::-;6155:3;6148:37;6073:118;;:::o;6197:442::-;6346:4;6384:2;6373:9;6369:18;6361:26;;6397:71;6465:1;6454:9;6450:17;6441:6;6397:71;:::i;:::-;6478:72;6546:2;6535:9;6531:18;6522:6;6478:72;:::i;:::-;6560;6628:2;6617:9;6613:18;6604:6;6560:72;:::i;:::-;6197:442;;;;;;:::o;6645:222::-;6738:4;6776:2;6765:9;6761:18;6753:26;;6789:71;6857:1;6846:9;6842:17;6833:6;6789:71;:::i;:::-;6645:222;;;;:::o;6873:180::-;6921:77;6918:1;6911:88;7018:4;7015:1;7008:15;7042:4;7039:1;7032:15;7059:191;7099:3;7118:20;7136:1;7118:20;:::i;:::-;7113:25;;7152:20;7170:1;7152:20;:::i;:::-;7147:25;;7195:1;7192;7188:9;7181:16;;7216:3;7213:1;7210:10;7207:36;;;7223:18;;:::i;:::-;7207:36;7059:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":[{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/55_MultiCall/MCERC20.sol\":\"MCERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/55_MultiCall/MCERC20.sol\":{\"keccak256\":\"0x3c87dc770568c459d854dccf8cf6bc59cdfba42d9b366f990a448924ebb67165\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceb68db88816e619d2e0b7c14404d5daa3bae571eb76279e0d680be06339539\",\"dweb:/ipfs/QmQedfJWRJJfa6EvzFEX5czNs11d5GjJdaQWWKW2swE7zk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":[{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/55_MultiCall/MCERC20.sol":"MCERC20"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/55_MultiCall/MCERC20.sol":{"keccak256":"0x3c87dc770568c459d854dccf8cf6bc59cdfba42d9b366f990a448924ebb67165","urls":["bzz-raw://2ceb68db88816e619d2e0b7c14404d5daa3bae571eb76279e0d680be06339539","dweb:/ipfs/QmQedfJWRJJfa6EvzFEX5czNs11d5GjJdaQWWKW2swE7zk"],"license":"MIT"}},"version":1},"id":111} \ No newline at end of file diff --git a/out/Mapping.sol/Mapping.json b/out/Mapping.sol/Mapping.json index 694d41c9..5b939951 100644 --- a/out/Mapping.sol/Mapping.json +++ b/out/Mapping.sol/Mapping.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"idToAddress","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"swapPair","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"writeMap","inputs":[{"name":"_Key","type":"uint256","internalType":"uint256"},{"name":"_Value","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102f38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063072721601461004357806314605b4a1461005f5780632a2d0c471461008f575b5f5ffd5b61005d60048036038101906100589190610201565b6100bf565b005b6100796004803603810190610074919061023f565b610111565b6040516100869190610279565b60405180910390f35b6100a960048036038101906100a49190610292565b610141565b6040516100b69190610279565b60405180910390f35b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6001602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f819050919050565b61018681610174565b8114610190575f5ffd5b50565b5f813590506101a18161017d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101d0826101a7565b9050919050565b6101e0816101c6565b81146101ea575f5ffd5b50565b5f813590506101fb816101d7565b92915050565b5f5f6040838503121561021757610216610170565b5b5f61022485828601610193565b9250506020610235858286016101ed565b9150509250929050565b5f6020828403121561025457610253610170565b5b5f610261848285016101ed565b91505092915050565b610273816101c6565b82525050565b5f60208201905061028c5f83018461026a565b92915050565b5f602082840312156102a7576102a6610170565b5b5f6102b484828501610193565b9150509291505056fea2646970667358221220781c3636d911823e3ef4e094c4c96107e5bf17581c28d22d10ec4ff4b4d74c1464736f6c63430008220033","sourceMap":"57:607:50:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063072721601461004357806314605b4a1461005f5780632a2d0c471461008f575b5f5ffd5b61005d60048036038101906100589190610201565b6100bf565b005b6100796004803603810190610074919061023f565b610111565b6040516100869190610279565b60405180910390f35b6100a960048036038101906100a49190610292565b610141565b6040516100b69190610279565b60405180910390f35b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6001602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f819050919050565b61018681610174565b8114610190575f5ffd5b50565b5f813590506101a18161017d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101d0826101a7565b9050919050565b6101e0816101c6565b81146101ea575f5ffd5b50565b5f813590506101fb816101d7565b92915050565b5f5f6040838503121561021757610216610170565b5b5f61022485828601610193565b9250506020610235858286016101ed565b9150509250929050565b5f6020828403121561025457610253610170565b5b5f610261848285016101ed565b91505092915050565b610273816101c6565b82525050565b5f60208201905061028c5f83018461026a565b92915050565b5f602082840312156102a7576102a6610170565b5b5f6102b484828501610193565b9150509291505056fea2646970667358221220781c3636d911823e3ef4e094c4c96107e5bf17581c28d22d10ec4ff4b4d74c1464736f6c63430008220033","sourceMap":"57:607:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;150:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;567:95;649:6;629:11;:17;641:4;629:17;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;567:95;;:::o;150:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;80:::-;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;;:::i;:::-;1753:119;1911:1;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1882:117;1677:329;;;;:::o;2012:118::-;2099:24;2117:5;2099:24;:::i;:::-;2094:3;2087:37;2012:118;;:::o;2136:222::-;2229:4;2267:2;2256:9;2252:18;2244:26;;2280:71;2348:1;2337:9;2333:17;2324:6;2280:71;:::i;:::-;2136:222;;;;:::o;2364:329::-;2423:6;2472:2;2460:9;2451:7;2447:23;2443:32;2440:119;;;2478:79;;:::i;:::-;2440:119;2598:1;2623:53;2668:7;2659:6;2648:9;2644:22;2623:53;:::i;:::-;2613:63;;2569:117;2364:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"idToAddress(uint256)":"2a2d0c47","swapPair(address)":"14605b4a","writeMap(uint256,address)":"07272160"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"idToAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"swapPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_Key\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_Value\",\"type\":\"address\"}],\"name\":\"writeMap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/07_Mapping/Mapping.sol\":\"Mapping\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/07_Mapping/Mapping.sol\":{\"keccak256\":\"0x490327a4749f112d194671ab85ddaac9656d089264a72630681715a9552b221c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26313bb4b6d13e4e48fe700e06f73d67f07b2f06f16175c3594b7a7b69a8c178\",\"dweb:/ipfs/QmWknMtYyi9Y2xDFnZh5iDEmx29osnfQo2LiMAo9Foz789\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_Key","type":"uint256"},{"internalType":"address","name":"_Value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"writeMap"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/07_Mapping/Mapping.sol":"Mapping"},"evmVersion":"prague","libraries":{}},"sources":{"src/07_Mapping/Mapping.sol":{"keccak256":"0x490327a4749f112d194671ab85ddaac9656d089264a72630681715a9552b221c","urls":["bzz-raw://26313bb4b6d13e4e48fe700e06f73d67f07b2f06f16175c3594b7a7b69a8c178","dweb:/ipfs/QmWknMtYyi9Y2xDFnZh5iDEmx29osnfQo2LiMAo9Foz789"],"license":"MIT"}},"version":1},"id":50} \ No newline at end of file +{"abi":[{"type":"function","name":"idToAddress","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"swapPair","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"writeMap","inputs":[{"name":"_Key","type":"uint256","internalType":"uint256"},{"name":"_Value","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102f38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063072721601461004357806314605b4a1461005f5780632a2d0c471461008f575b5f5ffd5b61005d60048036038101906100589190610201565b6100bf565b005b6100796004803603810190610074919061023f565b610111565b6040516100869190610279565b60405180910390f35b6100a960048036038101906100a49190610292565b610141565b6040516100b69190610279565b60405180910390f35b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6001602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f819050919050565b61018681610174565b8114610190575f5ffd5b50565b5f813590506101a18161017d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101d0826101a7565b9050919050565b6101e0816101c6565b81146101ea575f5ffd5b50565b5f813590506101fb816101d7565b92915050565b5f5f6040838503121561021757610216610170565b5b5f61022485828601610193565b9250506020610235858286016101ed565b9150509250929050565b5f6020828403121561025457610253610170565b5b5f610261848285016101ed565b91505092915050565b610273816101c6565b82525050565b5f60208201905061028c5f83018461026a565b92915050565b5f602082840312156102a7576102a6610170565b5b5f6102b484828501610193565b9150509291505056fea2646970667358221220781c3636d911823e3ef4e094c4c96107e5bf17581c28d22d10ec4ff4b4d74c1464736f6c63430008220033","sourceMap":"57:607:50:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063072721601461004357806314605b4a1461005f5780632a2d0c471461008f575b5f5ffd5b61005d60048036038101906100589190610201565b6100bf565b005b6100796004803603810190610074919061023f565b610111565b6040516100869190610279565b60405180910390f35b6100a960048036038101906100a49190610292565b610141565b6040516100b69190610279565b60405180910390f35b805f5f8481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6001602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f819050919050565b61018681610174565b8114610190575f5ffd5b50565b5f813590506101a18161017d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101d0826101a7565b9050919050565b6101e0816101c6565b81146101ea575f5ffd5b50565b5f813590506101fb816101d7565b92915050565b5f5f6040838503121561021757610216610170565b5b5f61022485828601610193565b9250506020610235858286016101ed565b9150509250929050565b5f6020828403121561025457610253610170565b5b5f610261848285016101ed565b91505092915050565b610273816101c6565b82525050565b5f60208201905061028c5f83018461026a565b92915050565b5f602082840312156102a7576102a6610170565b5b5f6102b484828501610193565b9150509291505056fea2646970667358221220781c3636d911823e3ef4e094c4c96107e5bf17581c28d22d10ec4ff4b4d74c1464736f6c63430008220033","sourceMap":"57:607:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;150:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;567:95;649:6;629:11;:17;641:4;629:17;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;567:95;;:::o;150:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;80:::-;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;;:::i;:::-;1753:119;1911:1;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1882:117;1677:329;;;;:::o;2012:118::-;2099:24;2117:5;2099:24;:::i;:::-;2094:3;2087:37;2012:118;;:::o;2136:222::-;2229:4;2267:2;2256:9;2252:18;2244:26;;2280:71;2348:1;2337:9;2333:17;2324:6;2280:71;:::i;:::-;2136:222;;;;:::o;2364:329::-;2423:6;2472:2;2460:9;2451:7;2447:23;2443:32;2440:119;;;2478:79;;:::i;:::-;2440:119;2598:1;2623:53;2668:7;2659:6;2648:9;2644:22;2623:53;:::i;:::-;2613:63;;2569:117;2364:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"idToAddress(uint256)":"2a2d0c47","swapPair(address)":"14605b4a","writeMap(uint256,address)":"07272160"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"idToAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"swapPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_Key\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_Value\",\"type\":\"address\"}],\"name\":\"writeMap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/07_Mapping/Mapping.sol\":\"Mapping\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/07_Mapping/Mapping.sol\":{\"keccak256\":\"0x490327a4749f112d194671ab85ddaac9656d089264a72630681715a9552b221c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26313bb4b6d13e4e48fe700e06f73d67f07b2f06f16175c3594b7a7b69a8c178\",\"dweb:/ipfs/QmWknMtYyi9Y2xDFnZh5iDEmx29osnfQo2LiMAo9Foz789\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_Key","type":"uint256"},{"internalType":"address","name":"_Value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"writeMap"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/07_Mapping/Mapping.sol":"Mapping"},"evmVersion":"prague","libraries":{}},"sources":{"src/07_Mapping/Mapping.sol":{"keccak256":"0x490327a4749f112d194671ab85ddaac9656d089264a72630681715a9552b221c","urls":["bzz-raw://26313bb4b6d13e4e48fe700e06f73d67f07b2f06f16175c3594b7a7b69a8c178","dweb:/ipfs/QmWknMtYyi9Y2xDFnZh5iDEmx29osnfQo2LiMAo9Foz789"],"license":"MIT"}},"version":1},"id":50} \ No newline at end of file diff --git a/out/MerkleTree.sol/MerkleProof.json b/out/MerkleTree.sol/MerkleProof.json index ded78c58..21aa221f 100644 --- a/out/MerkleTree.sol/MerkleProof.json +++ b/out/MerkleTree.sol/MerkleProof.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122014901a7f972aacc2df4a418fb65960739f2c544f337b7be29ac9dc000c3d663c64736f6c63430008220033","sourceMap":"1152:1149:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122014901a7f972aacc2df4a418fb65960739f2c544f337b7be29ac9dc000c3d663c64736f6c63430008220033","sourceMap":"1152:1149:92:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"\\u9a8c\\u8bc1Merkle\\u6811\\u7684\\u5408\\u7ea6. proof\\u53ef\\u4ee5\\u7528JavaScript\\u5e93\\u751f\\u6210\\uff1a https://github.com/miguelmota/merkletreejs[merkletreejs]. \\u6ce8\\u610f: hash\\u7528keccak256\\uff0c\\u5e76\\u4e14\\u5f00\\u542fpair sorting \\uff08\\u6392\\u5e8f\\uff09. javascript\\u4f8b\\u5b50\\u89c1 `https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/test/utils/cryptography/MerkleProof.test.js`.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/36_MerkleTree/MerkleTree.sol\":\"MerkleProof\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/36_MerkleTree/MerkleTree.sol\":{\"keccak256\":\"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd\",\"dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/36_MerkleTree/MerkleTree.sol":"MerkleProof"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/36_MerkleTree/MerkleTree.sol":{"keccak256":"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651","urls":["bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd","dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122014901a7f972aacc2df4a418fb65960739f2c544f337b7be29ac9dc000c3d663c64736f6c63430008220033","sourceMap":"1152:1149:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122014901a7f972aacc2df4a418fb65960739f2c544f337b7be29ac9dc000c3d663c64736f6c63430008220033","sourceMap":"1152:1149:86:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"\\u9a8c\\u8bc1Merkle\\u6811\\u7684\\u5408\\u7ea6. proof\\u53ef\\u4ee5\\u7528JavaScript\\u5e93\\u751f\\u6210\\uff1a https://github.com/miguelmota/merkletreejs[merkletreejs]. \\u6ce8\\u610f: hash\\u7528keccak256\\uff0c\\u5e76\\u4e14\\u5f00\\u542fpair sorting \\uff08\\u6392\\u5e8f\\uff09. javascript\\u4f8b\\u5b50\\u89c1 `https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/test/utils/cryptography/MerkleProof.test.js`.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/36_MerkleTree/MerkleTree.sol\":\"MerkleProof\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/36_MerkleTree/MerkleTree.sol\":{\"keccak256\":\"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd\",\"dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/36_MerkleTree/MerkleTree.sol":"MerkleProof"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/36_MerkleTree/MerkleTree.sol":{"keccak256":"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651","urls":["bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd","dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/MerkleTree.sol/MerkleTree.json b/out/MerkleTree.sol/MerkleTree.json index f1f16389..f4af5fb7 100644 --- a/out/MerkleTree.sol/MerkleTree.json +++ b/out/MerkleTree.sol/MerkleTree.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"merkleroot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"root","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50604051612d3a380380612d3a833981810160405281019061003191906101e4565b8282815f9081610041919061048d565b508060019081610051919061048d565b505050806080818152505050505061055c565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100c38261007d565b810181811067ffffffffffffffff821117156100e2576100e161008d565b5b80604052505050565b5f6100f4610064565b905061010082826100ba565b919050565b5f67ffffffffffffffff82111561011f5761011e61008d565b5b6101288261007d565b9050602081019050919050565b8281835e5f83830152505050565b5f61015561015084610105565b6100eb565b90508281526020810184848401111561017157610170610079565b5b61017c848285610135565b509392505050565b5f82601f83011261019857610197610075565b5b81516101a8848260208601610143565b91505092915050565b5f819050919050565b6101c3816101b1565b81146101cd575f5ffd5b50565b5f815190506101de816101ba565b92915050565b5f5f5f606084860312156101fb576101fa61006d565b5b5f84015167ffffffffffffffff81111561021857610217610071565b5b61022486828701610184565b935050602084015167ffffffffffffffff81111561024557610244610071565b5b61025186828701610184565b9250506040610262868287016101d0565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102ba57607f821691505b6020821081036102cd576102cc610276565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261032f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f4565b61033986836102f4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61037d61037861037384610351565b61035a565b610351565b9050919050565b5f819050919050565b61039683610363565b6103aa6103a282610384565b848454610300565b825550505050565b5f5f905090565b6103c16103b2565b6103cc81848461038d565b505050565b5f5b828110156103f2576103e75f8284016103b9565b6001810190506103d3565b505050565b601f821115610445578282111561044457610411816102d3565b61041a836102e5565b610423856102e5565b6020861015610430575f90505b80830161043f828403826103d1565b505050505b5b505050565b5f82821c905092915050565b5f6104655f198460080261044a565b1980831691505092915050565b5f61047d8383610456565b9150826002028217905092915050565b6104968261026c565b67ffffffffffffffff8111156104af576104ae61008d565b5b6104b982546102a3565b6104c48282856103f7565b5f60209050601f8311600181146104f5575f84156104e3578287015190505b6104ed8582610472565b865550610554565b601f198416610503866102d3565b5f5b8281101561052a57848901518255600182019150602085019450602081019050610505565b868310156105475784890151610543601f891682610456565b8355505b6001600288020188555050505b505050505050565b6080516127bf61057b5f395f8181610e24015261129501526127bf5ff3fe608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c8063641ce14011610095578063b88d4fde11610064578063b88d4fde146102ba578063c87b56dd146102d6578063e985e9c514610306578063ebf0c71714610336576100fe565b8063641ce1401461023457806370a082311461025057806395d89b4114610280578063a22cb4651461029e576100fe565b806323b872dd116100d157806323b872dd1461019c57806342842e0e146101b8578063630303c6146101d45780636352211e14610204576100fe565b806301ffc9a71461010257806306fdde0314610132578063081812fc14610150578063095ea7b314610180575b5f5ffd5b61011c6004803603810190610117919061193e565b610354565b6040516101299190611983565b60405180910390f35b61013a61048d565b6040516101479190611a0c565b60405180910390f35b61016a60048036038101906101659190611a5f565b610518565b6040516101779190611ac9565b60405180910390f35b61019a60048036038101906101959190611b0c565b6105ef565b005b6101b660048036038101906101b19190611b4a565b61072d565b005b6101d260048036038101906101cd9190611b4a565b610795565b005b6101ee60048036038101906101e99190611b9a565b6107b4565b6040516101fb9190611983565b60405180910390f35b61021e60048036038101906102199190611a5f565b6107d1565b60405161022b9190611ac9565b60405180910390f35b61024e60048036038101906102499190611c26565b610878565b005b61026a60048036038101906102659190611b9a565b6109f8565b6040516102779190611ca6565b60405180910390f35b610288610aac565b6040516102959190611a0c565b60405180910390f35b6102b860048036038101906102b39190611ce9565b610b38565b005b6102d460048036038101906102cf9190611e4f565b610c30565b005b6102f060048036038101906102eb9190611a5f565b610c9a565b6040516102fd9190611a0c565b60405180910390f35b610320600480360381019061031b9190611ecf565b610d94565b60405161032d9190611983565b60405180910390f35b61033e610e22565b60405161034b9190611f25565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061048657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461049990611f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590611f6b565b80156105105780601f106104e757610100808354040283529160200191610510565b820191905f5260205f20905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fe5565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106de575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107149061204d565b60405180910390fd5b610728818484610e46565b505050565b5f610737826107d1565b9050610744813384610ef5565b610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906120b5565b60405180910390fd5b61078f81858585611020565b50505050565b6107af83838360405180602001604052805f815250610c30565b505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90611fe5565b60405180910390fd5b919050565b6108ca6108848561125f565b8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505061128e565b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109009061211d565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612185565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109f284846112c2565b50505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e906121ed565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610ab990611f6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae590611f6b565b8015610b305780601f10610b0757610100808354040283529160200191610b30565b820191905f5260205f20905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c249190611983565b60405180910390a35050565b5f610c3a836107d1565b9050610c47813385610ef5565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d906120b5565b60405180910390fd5b610c9381868686866114d0565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612255565b60405180910390fd5b5f610d436114ef565b90505f815111610d615760405180602001604052805f815250610d8c565b80610d6b84611505565b604051602001610d7c9291906122ad565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f8b57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611017575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061231a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612382565b60405180910390fd5b611107845f83610e46565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461115491906123cd565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111a89190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f816040516020016112719190612478565b604051602081830303815290604052805190602001209050919050565b5f6112ba827f00000000000000000000000000000000000000000000000000000000000000008561165e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611327906124dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590612544565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461141b9190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6114dc85858585611020565b6114e884848484611674565b5050505050565b606060405180602001604052805f815250905090565b60605f820361154b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611659565b5f8290505f5b5f821461157a57808061156390612562565b915050600a8261157391906125d6565b9150611551565b5f8167ffffffffffffffff81111561159557611594611d2b565b5b6040519080825280601f01601f1916602001820160405280156115c75781602001600182028036833780820191505090505b5090505b5f8514611652576001826115df91906123cd565b9150600a856115ee9190612606565b60306115fa9190612400565b60f81b8183815181106116105761160f612636565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561164b91906125d6565b94506115cb565b8093505050505b919050565b5f8261166a858461181f565b1490509392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611819578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016116d294939291906126b5565b6020604051808303815f875af192505050801561170d57506040513d601f19601f8201168201806040525081019061170a9190612713565b60015b61178e573d805f811461173b576040519150601f19603f3d011682016040523d82523d5f602084013e611740565b606091505b505f81510361178657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161177d9190611ac9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161180e9190611ac9565b60405180910390fd5b505b50505050565b5f5f8290505f5f90505b8451811015611865576118568286838151811061184957611848612636565b5b6020026020010151611870565b91508080600101915050611829565b508091505092915050565b5f8183106118a657818360405160200161188b92919061275e565b604051602081830303815290604052805190602001206118d0565b82826040516020016118b992919061275e565b604051602081830303815290604052805190602001205b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61191d816118e9565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f60208284031215611953576119526118e1565b5b5f6119608482850161192a565b91505092915050565b5f8115159050919050565b61197d81611969565b82525050565b5f6020820190506119965f830184611974565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119de8261199c565b6119e881856119a6565b93506119f88185602086016119b6565b611a01816119c4565b840191505092915050565b5f6020820190508181035f830152611a2481846119d4565b905092915050565b5f819050919050565b611a3e81611a2c565b8114611a48575f5ffd5b50565b5f81359050611a5981611a35565b92915050565b5f60208284031215611a7457611a736118e1565b5b5f611a8184828501611a4b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ab382611a8a565b9050919050565b611ac381611aa9565b82525050565b5f602082019050611adc5f830184611aba565b92915050565b611aeb81611aa9565b8114611af5575f5ffd5b50565b5f81359050611b0681611ae2565b92915050565b5f5f60408385031215611b2257611b216118e1565b5b5f611b2f85828601611af8565b9250506020611b4085828601611a4b565b9150509250929050565b5f5f5f60608486031215611b6157611b606118e1565b5b5f611b6e86828701611af8565b9350506020611b7f86828701611af8565b9250506040611b9086828701611a4b565b9150509250925092565b5f60208284031215611baf57611bae6118e1565b5b5f611bbc84828501611af8565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611be657611be5611bc5565b5b8235905067ffffffffffffffff811115611c0357611c02611bc9565b5b602083019150836020820283011115611c1f57611c1e611bcd565b5b9250929050565b5f5f5f5f60608587031215611c3e57611c3d6118e1565b5b5f611c4b87828801611af8565b9450506020611c5c87828801611a4b565b935050604085013567ffffffffffffffff811115611c7d57611c7c6118e5565b5b611c8987828801611bd1565b925092505092959194509250565b611ca081611a2c565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611969565b8114611cd2575f5ffd5b50565b5f81359050611ce381611cbf565b92915050565b5f5f60408385031215611cff57611cfe6118e1565b5b5f611d0c85828601611af8565b9250506020611d1d85828601611cd5565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d61826119c4565b810181811067ffffffffffffffff82111715611d8057611d7f611d2b565b5b80604052505050565b5f611d926118d8565b9050611d9e8282611d58565b919050565b5f67ffffffffffffffff821115611dbd57611dbc611d2b565b5b611dc6826119c4565b9050602081019050919050565b828183375f83830152505050565b5f611df3611dee84611da3565b611d89565b905082815260208101848484011115611e0f57611e0e611d27565b5b611e1a848285611dd3565b509392505050565b5f82601f830112611e3657611e35611bc5565b5b8135611e46848260208601611de1565b91505092915050565b5f5f5f5f60808587031215611e6757611e666118e1565b5b5f611e7487828801611af8565b9450506020611e8587828801611af8565b9350506040611e9687828801611a4b565b925050606085013567ffffffffffffffff811115611eb757611eb66118e5565b5b611ec387828801611e22565b91505092959194509250565b5f5f60408385031215611ee557611ee46118e1565b5b5f611ef285828601611af8565b9250506020611f0385828601611af8565b9150509250929050565b5f819050919050565b611f1f81611f0d565b82525050565b5f602082019050611f385f830184611f16565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f8257607f821691505b602082108103611f9557611f94611f3e565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611fcf6013836119a6565b9150611fda82611f9b565b602082019050919050565b5f6020820190508181035f830152611ffc81611fc3565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f612037601e836119a6565b915061204282612003565b602082019050919050565b5f6020820190508181035f8301526120648161202b565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f61209f6016836119a6565b91506120aa8261206b565b602082019050919050565b5f6020820190508181035f8301526120cc81612093565b9050919050565b7f496e76616c6964206d65726b6c652070726f6f660000000000000000000000005f82015250565b5f6121076014836119a6565b9150612112826120d3565b602082019050919050565b5f6020820190508181035f830152612134816120fb565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f61216f600f836119a6565b915061217a8261213b565b602082019050919050565b5f6020820190508181035f83015261219c81612163565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f6121d76014836119a6565b91506121e2826121a3565b602082019050919050565b5f6020820190508181035f830152612204816121cb565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f61223f600f836119a6565b915061224a8261220b565b602082019050919050565b5f6020820190508181035f83015261226c81612233565b9050919050565b5f81905092915050565b5f6122878261199c565b6122918185612273565b93506122a18185602086016119b6565b80840191505092915050565b5f6122b8828561227d565b91506122c4828461227d565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6123046009836119a6565b915061230f826122d0565b602082019050919050565b5f6020820190508181035f830152612331816122f8565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f61236c601c836119a6565b915061237782612338565b602082019050919050565b5f6020820190508181035f83015261239981612360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123d782611a2c565b91506123e283611a2c565b92508282039050818111156123fa576123f96123a0565b5b92915050565b5f61240a82611a2c565b915061241583611a2c565b925082820190508082111561242d5761242c6123a0565b5b92915050565b5f8160601b9050919050565b5f61244982612433565b9050919050565b5f61245a8261243f565b9050919050565b61247261246d82611aa9565b612450565b82525050565b5f6124838284612461565b60148201915081905092915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6124c66014836119a6565b91506124d182612492565b602082019050919050565b5f6020820190508181035f8301526124f3816124ba565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f61252e6014836119a6565b9150612539826124fa565b602082019050919050565b5f6020820190508181035f83015261255b81612522565b9050919050565b5f61256c82611a2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361259e5761259d6123a0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e082611a2c565b91506125eb83611a2c565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f61261082611a2c565b915061261b83611a2c565b92508261262b5761262a6125a9565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61268782612663565b612691818561266d565b93506126a18185602086016119b6565b6126aa816119c4565b840191505092915050565b5f6080820190506126c85f830187611aba565b6126d56020830186611aba565b6126e26040830185611c97565b81810360608301526126f4818461267d565b905095945050505050565b5f8151905061270d81611914565b92915050565b5f60208284031215612728576127276118e1565b5b5f612735848285016126ff565b91505092915050565b5f819050919050565b61275861275382611f0d565b61273e565b82525050565b5f6127698285612747565b6020820191506127798284612747565b602082019150819050939250505056fea264697066735822122010ea1879b50c985b3f190a6c8f972e01c1017f6a7c419e7d7b7493477e13940b64736f6c63430008220033","sourceMap":"2303:1230:92:-:0;;;2553:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2638:4;2644:6;1078:5:84;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;2673:10:92::1;2666:17;;;;::::0;::::1;2553:137:::0;;;2303:1230;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:77::-;2607:7;2636:5;2625:16;;2570:77;;;:::o;2653:122::-;2726:24;2744:5;2726:24;:::i;:::-;2719:5;2716:35;2706:63;;2765:1;2762;2755:12;2706:63;2653:122;:::o;2781:143::-;2838:5;2869:6;2863:13;2854:22;;2885:33;2912:5;2885:33;:::i;:::-;2781:143;;;;:::o;2930:1009::-;3038:6;3046;3054;3103:2;3091:9;3082:7;3078:23;3074:32;3071:119;;;3109:79;;:::i;:::-;3071:119;3250:1;3239:9;3235:17;3229:24;3280:18;3272:6;3269:30;3266:117;;;3302:79;;:::i;:::-;3266:117;3407:74;3473:7;3464:6;3453:9;3449:22;3407:74;:::i;:::-;3397:84;;3200:291;3551:2;3540:9;3536:18;3530:25;3582:18;3574:6;3571:30;3568:117;;;3604:79;;:::i;:::-;3568:117;3709:74;3775:7;3766:6;3755:9;3751:22;3709:74;:::i;:::-;3699:84;;3501:292;3832:2;3858:64;3914:7;3905:6;3894:9;3890:22;3858:64;:::i;:::-;3848:74;;3803:129;2930:1009;;;;;:::o;3945:99::-;3997:6;4031:5;4025:12;4015:22;;3945:99;;;:::o;4050:180::-;4098:77;4095:1;4088:88;4195:4;4192:1;4185:15;4219:4;4216:1;4209:15;4236:320;4280:6;4317:1;4311:4;4307:12;4297:22;;4364:1;4358:4;4354:12;4385:18;4375:81;;4441:4;4433:6;4429:17;4419:27;;4375:81;4503:2;4495:6;4492:14;4472:18;4469:38;4466:84;;4522:18;;:::i;:::-;4466:84;4287:269;4236:320;;;:::o;4562:141::-;4611:4;4634:3;4626:11;;4657:3;4654:1;4647:14;4691:4;4688:1;4678:18;4670:26;;4562:141;;;:::o;4709:93::-;4746:6;4793:2;4788;4781:5;4777:14;4773:23;4763:33;;4709:93;;;:::o;4808:107::-;4852:8;4902:5;4896:4;4892:16;4871:37;;4808:107;;;;:::o;4921:393::-;4990:6;5040:1;5028:10;5024:18;5063:97;5093:66;5082:9;5063:97;:::i;:::-;5181:39;5211:8;5200:9;5181:39;:::i;:::-;5169:51;;5253:4;5249:9;5242:5;5238:21;5229:30;;5302:4;5292:8;5288:19;5281:5;5278:30;5268:40;;4997:317;;4921:393;;;;;:::o;5320:77::-;5357:7;5386:5;5375:16;;5320:77;;;:::o;5403:60::-;5431:3;5452:5;5445:12;;5403:60;;;:::o;5469:142::-;5519:9;5552:53;5570:34;5579:24;5597:5;5579:24;:::i;:::-;5570:34;:::i;:::-;5552:53;:::i;:::-;5539:66;;5469:142;;;:::o;5617:75::-;5660:3;5681:5;5674:12;;5617:75;;;:::o;5698:269::-;5808:39;5839:7;5808:39;:::i;:::-;5869:91;5918:41;5942:16;5918:41;:::i;:::-;5910:6;5903:4;5897:11;5869:91;:::i;:::-;5863:4;5856:105;5774:193;5698:269;;;:::o;5973:73::-;6018:3;6039:1;6032:8;;5973:73;:::o;6052:189::-;6129:32;;:::i;:::-;6170:65;6228:6;6220;6214:4;6170:65;:::i;:::-;6105:136;6052:189;;:::o;6247:214::-;6332:1;6317:138;6342:9;6339:1;6336:16;6317:138;;;6394:51;6443:1;6439;6428:9;6424:17;6394:51;:::i;:::-;6367:1;6364;6360:9;6355:14;;6317:138;;;6321:14;6247:214;;:::o;6467:746::-;6568:2;6563:3;6560:11;6557:649;;;6597:10;6592:3;6589:19;6586:610;;;6643:38;6675:5;6643:38;:::i;:::-;6718:22;6736:3;6718:22;:::i;:::-;6777:29;6795:10;6777:29;:::i;:::-;6967:2;6955:10;6952:18;6949:79;;;7009:1;6993:17;;6949:79;7078:12;7068:8;7064:27;7108:74;7168:12;7154;7150:31;7137:11;7108:74;:::i;:::-;6609:587;;;;6586:610;6557:649;6467:746;;;:::o;7219:117::-;7273:8;7323:5;7317:4;7313:16;7292:37;;7219:117;;;;:::o;7342:169::-;7386:6;7419:51;7467:1;7463:6;7455:5;7452:1;7448:13;7419:51;:::i;:::-;7415:56;7500:4;7494;7490:15;7480:25;;7393:118;7342:169;;;;:::o;7516:295::-;7592:4;7738:29;7763:3;7757:4;7738:29;:::i;:::-;7730:37;;7800:3;7797:1;7793:11;7787:4;7784:21;7776:29;;7516:295;;;;:::o;7816:1395::-;7933:37;7966:3;7933:37;:::i;:::-;8035:18;8027:6;8024:30;8021:56;;;8057:18;;:::i;:::-;8021:56;8101:38;8133:4;8127:11;8101:38;:::i;:::-;8186:67;8246:6;8238;8232:4;8186:67;:::i;:::-;8280:1;8304:4;8291:17;;8336:2;8328:6;8325:14;8353:1;8348:618;;;;9010:1;9027:6;9024:77;;;9076:9;9071:3;9067:19;9061:26;9052:35;;9024:77;9127:67;9187:6;9180:5;9127:67;:::i;:::-;9121:4;9114:81;8983:222;8318:887;;8348:618;8400:4;8396:9;8388:6;8384:22;8434:37;8466:4;8434:37;:::i;:::-;8493:1;8507:208;8521:7;8518:1;8515:14;8507:208;;;8600:9;8595:3;8591:19;8585:26;8577:6;8570:42;8651:1;8643:6;8639:14;8629:24;;8698:2;8687:9;8683:18;8670:31;;8544:4;8541:1;8537:12;8532:17;;8507:208;;;8743:6;8734:7;8731:19;8728:179;;;8801:9;8796:3;8792:19;8786:26;8844:48;8886:4;8878:6;8874:17;8863:9;8844:48;:::i;:::-;8836:6;8829:64;8751:156;8728:179;8953:1;8949;8941:6;8937:14;8933:22;8927:4;8920:36;8355:611;;;8318:887;;7908:1303;;;7816:1395;;:::o;2303:1230:92:-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c8063641ce14011610095578063b88d4fde11610064578063b88d4fde146102ba578063c87b56dd146102d6578063e985e9c514610306578063ebf0c71714610336576100fe565b8063641ce1401461023457806370a082311461025057806395d89b4114610280578063a22cb4651461029e576100fe565b806323b872dd116100d157806323b872dd1461019c57806342842e0e146101b8578063630303c6146101d45780636352211e14610204576100fe565b806301ffc9a71461010257806306fdde0314610132578063081812fc14610150578063095ea7b314610180575b5f5ffd5b61011c6004803603810190610117919061193e565b610354565b6040516101299190611983565b60405180910390f35b61013a61048d565b6040516101479190611a0c565b60405180910390f35b61016a60048036038101906101659190611a5f565b610518565b6040516101779190611ac9565b60405180910390f35b61019a60048036038101906101959190611b0c565b6105ef565b005b6101b660048036038101906101b19190611b4a565b61072d565b005b6101d260048036038101906101cd9190611b4a565b610795565b005b6101ee60048036038101906101e99190611b9a565b6107b4565b6040516101fb9190611983565b60405180910390f35b61021e60048036038101906102199190611a5f565b6107d1565b60405161022b9190611ac9565b60405180910390f35b61024e60048036038101906102499190611c26565b610878565b005b61026a60048036038101906102659190611b9a565b6109f8565b6040516102779190611ca6565b60405180910390f35b610288610aac565b6040516102959190611a0c565b60405180910390f35b6102b860048036038101906102b39190611ce9565b610b38565b005b6102d460048036038101906102cf9190611e4f565b610c30565b005b6102f060048036038101906102eb9190611a5f565b610c9a565b6040516102fd9190611a0c565b60405180910390f35b610320600480360381019061031b9190611ecf565b610d94565b60405161032d9190611983565b60405180910390f35b61033e610e22565b60405161034b9190611f25565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061048657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461049990611f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590611f6b565b80156105105780601f106104e757610100808354040283529160200191610510565b820191905f5260205f20905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fe5565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106de575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107149061204d565b60405180910390fd5b610728818484610e46565b505050565b5f610737826107d1565b9050610744813384610ef5565b610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906120b5565b60405180910390fd5b61078f81858585611020565b50505050565b6107af83838360405180602001604052805f815250610c30565b505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90611fe5565b60405180910390fd5b919050565b6108ca6108848561125f565b8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505061128e565b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109009061211d565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612185565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109f284846112c2565b50505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e906121ed565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610ab990611f6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae590611f6b565b8015610b305780601f10610b0757610100808354040283529160200191610b30565b820191905f5260205f20905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c249190611983565b60405180910390a35050565b5f610c3a836107d1565b9050610c47813385610ef5565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d906120b5565b60405180910390fd5b610c9381868686866114d0565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612255565b60405180910390fd5b5f610d436114ef565b90505f815111610d615760405180602001604052805f815250610d8c565b80610d6b84611505565b604051602001610d7c9291906122ad565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f8b57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611017575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061231a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612382565b60405180910390fd5b611107845f83610e46565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461115491906123cd565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111a89190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f816040516020016112719190612478565b604051602081830303815290604052805190602001209050919050565b5f6112ba827f00000000000000000000000000000000000000000000000000000000000000008561165e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611327906124dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590612544565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461141b9190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6114dc85858585611020565b6114e884848484611674565b5050505050565b606060405180602001604052805f815250905090565b60605f820361154b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611659565b5f8290505f5b5f821461157a57808061156390612562565b915050600a8261157391906125d6565b9150611551565b5f8167ffffffffffffffff81111561159557611594611d2b565b5b6040519080825280601f01601f1916602001820160405280156115c75781602001600182028036833780820191505090505b5090505b5f8514611652576001826115df91906123cd565b9150600a856115ee9190612606565b60306115fa9190612400565b60f81b8183815181106116105761160f612636565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561164b91906125d6565b94506115cb565b8093505050505b919050565b5f8261166a858461181f565b1490509392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611819578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016116d294939291906126b5565b6020604051808303815f875af192505050801561170d57506040513d601f19601f8201168201806040525081019061170a9190612713565b60015b61178e573d805f811461173b576040519150601f19603f3d011682016040523d82523d5f602084013e611740565b606091505b505f81510361178657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161177d9190611ac9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161180e9190611ac9565b60405180910390fd5b505b50505050565b5f5f8290505f5f90505b8451811015611865576118568286838151811061184957611848612636565b5b6020026020010151611870565b91508080600101915050611829565b508091505092915050565b5f8183106118a657818360405160200161188b92919061275e565b604051602081830303815290604052805190602001206118d0565b82826040516020016118b992919061275e565b604051602081830303815290604052805190602001205b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61191d816118e9565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f60208284031215611953576119526118e1565b5b5f6119608482850161192a565b91505092915050565b5f8115159050919050565b61197d81611969565b82525050565b5f6020820190506119965f830184611974565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119de8261199c565b6119e881856119a6565b93506119f88185602086016119b6565b611a01816119c4565b840191505092915050565b5f6020820190508181035f830152611a2481846119d4565b905092915050565b5f819050919050565b611a3e81611a2c565b8114611a48575f5ffd5b50565b5f81359050611a5981611a35565b92915050565b5f60208284031215611a7457611a736118e1565b5b5f611a8184828501611a4b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ab382611a8a565b9050919050565b611ac381611aa9565b82525050565b5f602082019050611adc5f830184611aba565b92915050565b611aeb81611aa9565b8114611af5575f5ffd5b50565b5f81359050611b0681611ae2565b92915050565b5f5f60408385031215611b2257611b216118e1565b5b5f611b2f85828601611af8565b9250506020611b4085828601611a4b565b9150509250929050565b5f5f5f60608486031215611b6157611b606118e1565b5b5f611b6e86828701611af8565b9350506020611b7f86828701611af8565b9250506040611b9086828701611a4b565b9150509250925092565b5f60208284031215611baf57611bae6118e1565b5b5f611bbc84828501611af8565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611be657611be5611bc5565b5b8235905067ffffffffffffffff811115611c0357611c02611bc9565b5b602083019150836020820283011115611c1f57611c1e611bcd565b5b9250929050565b5f5f5f5f60608587031215611c3e57611c3d6118e1565b5b5f611c4b87828801611af8565b9450506020611c5c87828801611a4b565b935050604085013567ffffffffffffffff811115611c7d57611c7c6118e5565b5b611c8987828801611bd1565b925092505092959194509250565b611ca081611a2c565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611969565b8114611cd2575f5ffd5b50565b5f81359050611ce381611cbf565b92915050565b5f5f60408385031215611cff57611cfe6118e1565b5b5f611d0c85828601611af8565b9250506020611d1d85828601611cd5565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d61826119c4565b810181811067ffffffffffffffff82111715611d8057611d7f611d2b565b5b80604052505050565b5f611d926118d8565b9050611d9e8282611d58565b919050565b5f67ffffffffffffffff821115611dbd57611dbc611d2b565b5b611dc6826119c4565b9050602081019050919050565b828183375f83830152505050565b5f611df3611dee84611da3565b611d89565b905082815260208101848484011115611e0f57611e0e611d27565b5b611e1a848285611dd3565b509392505050565b5f82601f830112611e3657611e35611bc5565b5b8135611e46848260208601611de1565b91505092915050565b5f5f5f5f60808587031215611e6757611e666118e1565b5b5f611e7487828801611af8565b9450506020611e8587828801611af8565b9350506040611e9687828801611a4b565b925050606085013567ffffffffffffffff811115611eb757611eb66118e5565b5b611ec387828801611e22565b91505092959194509250565b5f5f60408385031215611ee557611ee46118e1565b5b5f611ef285828601611af8565b9250506020611f0385828601611af8565b9150509250929050565b5f819050919050565b611f1f81611f0d565b82525050565b5f602082019050611f385f830184611f16565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f8257607f821691505b602082108103611f9557611f94611f3e565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611fcf6013836119a6565b9150611fda82611f9b565b602082019050919050565b5f6020820190508181035f830152611ffc81611fc3565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f612037601e836119a6565b915061204282612003565b602082019050919050565b5f6020820190508181035f8301526120648161202b565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f61209f6016836119a6565b91506120aa8261206b565b602082019050919050565b5f6020820190508181035f8301526120cc81612093565b9050919050565b7f496e76616c6964206d65726b6c652070726f6f660000000000000000000000005f82015250565b5f6121076014836119a6565b9150612112826120d3565b602082019050919050565b5f6020820190508181035f830152612134816120fb565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f61216f600f836119a6565b915061217a8261213b565b602082019050919050565b5f6020820190508181035f83015261219c81612163565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f6121d76014836119a6565b91506121e2826121a3565b602082019050919050565b5f6020820190508181035f830152612204816121cb565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f61223f600f836119a6565b915061224a8261220b565b602082019050919050565b5f6020820190508181035f83015261226c81612233565b9050919050565b5f81905092915050565b5f6122878261199c565b6122918185612273565b93506122a18185602086016119b6565b80840191505092915050565b5f6122b8828561227d565b91506122c4828461227d565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6123046009836119a6565b915061230f826122d0565b602082019050919050565b5f6020820190508181035f830152612331816122f8565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f61236c601c836119a6565b915061237782612338565b602082019050919050565b5f6020820190508181035f83015261239981612360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123d782611a2c565b91506123e283611a2c565b92508282039050818111156123fa576123f96123a0565b5b92915050565b5f61240a82611a2c565b915061241583611a2c565b925082820190508082111561242d5761242c6123a0565b5b92915050565b5f8160601b9050919050565b5f61244982612433565b9050919050565b5f61245a8261243f565b9050919050565b61247261246d82611aa9565b612450565b82525050565b5f6124838284612461565b60148201915081905092915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6124c66014836119a6565b91506124d182612492565b602082019050919050565b5f6020820190508181035f8301526124f3816124ba565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f61252e6014836119a6565b9150612539826124fa565b602082019050919050565b5f6020820190508181035f83015261255b81612522565b9050919050565b5f61256c82611a2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361259e5761259d6123a0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e082611a2c565b91506125eb83611a2c565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f61261082611a2c565b915061261b83611a2c565b92508261262b5761262a6125a9565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61268782612663565b612691818561266d565b93506126a18185602086016119b6565b6126aa816119c4565b840191505092915050565b5f6080820190506126c85f830187611aba565b6126d56020830186611aba565b6126e26040830185611c97565b81810360608301526126f4818461267d565b905095945050505050565b5f8151905061270d81611914565b92915050565b5f60208284031215612728576127276118e1565b5b5f612735848285016126ff565b91505092915050565b5f819050919050565b61275861275382611f0d565b61273e565b82525050565b5f6127698285612747565b6020820191506127798284612747565b602082019150819050939250505056fea264697066735822122010ea1879b50c985b3f190a6c8f972e01c1017f6a7c419e7d7b7493477e13940b64736f6c63430008220033","sourceMap":"2303:1230:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2393:45:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2738:392:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1576:174:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2339:29:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317:84;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;2393:45:92:-;;;;;;;;;;;;;;;;;;;;;;:::o;1833:178:84:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;2738:392:92:-;2847:30;2855:14;2861:7;2855:5;:14::i;:::-;2871:5;;2847:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:30::i;:::-;2839:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2943:13;:22;2957:7;2943:22;;;;;;;;;;;;;;;;;;;;;;;;;2942:23;2934:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;3052:4;3027:13;:22;3041:7;3027:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3092:23;3098:7;3107;3092:5;:23::i;:::-;2738:392;;;;:::o;1576:174:84:-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;2339:29:92:-;;;:::o;3116:186:84:-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;3177:132:92:-;3236:7;3293;3276:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;3266:36;;;;;;3259:43;;3177:132;;;:::o;3378:153::-;3460:4;3487:37;3506:5;3513:4;3519;3487:18;:37::i;:::-;3480:44;;3378:153;;;;:::o;7051:306:84:-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;1381:184:92:-;1502:4;1554;1525:25;1538:5;1545:4;1525:12;:25::i;:::-;:33;1518:40;;1381:184;;;;;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;1806:290:92:-;1889:7;1908:20;1931:4;1908:27;;1950:9;1962:1;1950:13;;1945:116;1969:5;:12;1965:1;:16;1945:116;;;2017:33;2027:12;2041:5;2047:1;2041:8;;;;;;;;:::i;:::-;;;;;;;;2017:9;:33::i;:::-;2002:48;;1983:3;;;;;;;1945:116;;;;2077:12;2070:19;;;1806:290;;;;:::o;2126:173::-;2189:7;2219:1;2215;:5;:77;;2286:1;2289;2269:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2259:33;;;;;;2215:77;;;2250:1;2253;2233:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2223:33;;;;;;2215:77;2208:84;;2126:173;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:117::-;5852:1;5849;5842:12;5866:117;5975:1;5972;5965:12;5989:117;6098:1;6095;6088:12;6129:568;6202:8;6212:6;6262:3;6255:4;6247:6;6243:17;6239:27;6229:122;;6270:79;;:::i;:::-;6229:122;6383:6;6370:20;6360:30;;6413:18;6405:6;6402:30;6399:117;;;6435:79;;:::i;:::-;6399:117;6549:4;6541:6;6537:17;6525:29;;6603:3;6595:4;6587:6;6583:17;6573:8;6569:32;6566:41;6563:128;;;6610:79;;:::i;:::-;6563:128;6129:568;;;;;:::o;6703:849::-;6807:6;6815;6823;6831;6880:2;6868:9;6859:7;6855:23;6851:32;6848:119;;;6886:79;;:::i;:::-;6848:119;7006:1;7031:53;7076:7;7067:6;7056:9;7052:22;7031:53;:::i;:::-;7021:63;;6977:117;7133:2;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7104:118;7289:2;7278:9;7274:18;7261:32;7320:18;7312:6;7309:30;7306:117;;;7342:79;;:::i;:::-;7306:117;7455:80;7527:7;7518:6;7507:9;7503:22;7455:80;:::i;:::-;7437:98;;;;7232:313;6703:849;;;;;;;:::o;7558:118::-;7645:24;7663:5;7645:24;:::i;:::-;7640:3;7633:37;7558:118;;:::o;7682:222::-;7775:4;7813:2;7802:9;7798:18;7790:26;;7826:71;7894:1;7883:9;7879:17;7870:6;7826:71;:::i;:::-;7682:222;;;;:::o;7910:116::-;7980:21;7995:5;7980:21;:::i;:::-;7973:5;7970:32;7960:60;;8016:1;8013;8006:12;7960:60;7910:116;:::o;8032:133::-;8075:5;8113:6;8100:20;8091:29;;8129:30;8153:5;8129:30;:::i;:::-;8032:133;;;;:::o;8171:468::-;8236:6;8244;8293:2;8281:9;8272:7;8268:23;8264:32;8261:119;;;8299:79;;:::i;:::-;8261:119;8419:1;8444:53;8489:7;8480:6;8469:9;8465:22;8444:53;:::i;:::-;8434:63;;8390:117;8546:2;8572:50;8614:7;8605:6;8594:9;8590:22;8572:50;:::i;:::-;8562:60;;8517:115;8171:468;;;;;:::o;8645:117::-;8754:1;8751;8744:12;8768:180;8816:77;8813:1;8806:88;8913:4;8910:1;8903:15;8937:4;8934:1;8927:15;8954:281;9037:27;9059:4;9037:27;:::i;:::-;9029:6;9025:40;9167:6;9155:10;9152:22;9131:18;9119:10;9116:34;9113:62;9110:88;;;9178:18;;:::i;:::-;9110:88;9218:10;9214:2;9207:22;8997:238;8954:281;;:::o;9241:129::-;9275:6;9302:20;;:::i;:::-;9292:30;;9331:33;9359:4;9351:6;9331:33;:::i;:::-;9241:129;;;:::o;9376:307::-;9437:4;9527:18;9519:6;9516:30;9513:56;;;9549:18;;:::i;:::-;9513:56;9587:29;9609:6;9587:29;:::i;:::-;9579:37;;9671:4;9665;9661:15;9653:23;;9376:307;;;:::o;9689:148::-;9787:6;9782:3;9777;9764:30;9828:1;9819:6;9814:3;9810:16;9803:27;9689:148;;;:::o;9843:423::-;9920:5;9945:65;9961:48;10002:6;9961:48;:::i;:::-;9945:65;:::i;:::-;9936:74;;10033:6;10026:5;10019:21;10071:4;10064:5;10060:16;10109:3;10100:6;10095:3;10091:16;10088:25;10085:112;;;10116:79;;:::i;:::-;10085:112;10206:54;10253:6;10248:3;10243;10206:54;:::i;:::-;9926:340;9843:423;;;;;:::o;10285:338::-;10340:5;10389:3;10382:4;10374:6;10370:17;10366:27;10356:122;;10397:79;;:::i;:::-;10356:122;10514:6;10501:20;10539:78;10613:3;10605:6;10598:4;10590:6;10586:17;10539:78;:::i;:::-;10530:87;;10346:277;10285:338;;;;:::o;10629:943::-;10724:6;10732;10740;10748;10797:3;10785:9;10776:7;10772:23;10768:33;10765:120;;;10804:79;;:::i;:::-;10765:120;10924:1;10949:53;10994:7;10985:6;10974:9;10970:22;10949:53;:::i;:::-;10939:63;;10895:117;11051:2;11077:53;11122:7;11113:6;11102:9;11098:22;11077:53;:::i;:::-;11067:63;;11022:118;11179:2;11205:53;11250:7;11241:6;11230:9;11226:22;11205:53;:::i;:::-;11195:63;;11150:118;11335:2;11324:9;11320:18;11307:32;11366:18;11358:6;11355:30;11352:117;;;11388:79;;:::i;:::-;11352:117;11493:62;11547:7;11538:6;11527:9;11523:22;11493:62;:::i;:::-;11483:72;;11278:287;10629:943;;;;;;;:::o;11578:474::-;11646:6;11654;11703:2;11691:9;11682:7;11678:23;11674:32;11671:119;;;11709:79;;:::i;:::-;11671:119;11829:1;11854:53;11899:7;11890:6;11879:9;11875:22;11854:53;:::i;:::-;11844:63;;11800:117;11956:2;11982:53;12027:7;12018:6;12007:9;12003:22;11982:53;:::i;:::-;11972:63;;11927:118;11578:474;;;;;:::o;12058:77::-;12095:7;12124:5;12113:16;;12058:77;;;:::o;12141:118::-;12228:24;12246:5;12228:24;:::i;:::-;12223:3;12216:37;12141:118;;:::o;12265:222::-;12358:4;12396:2;12385:9;12381:18;12373:26;;12409:71;12477:1;12466:9;12462:17;12453:6;12409:71;:::i;:::-;12265:222;;;;:::o;12493:180::-;12541:77;12538:1;12531:88;12638:4;12635:1;12628:15;12662:4;12659:1;12652:15;12679:320;12723:6;12760:1;12754:4;12750:12;12740:22;;12807:1;12801:4;12797:12;12828:18;12818:81;;12884:4;12876:6;12872:17;12862:27;;12818:81;12946:2;12938:6;12935:14;12915:18;12912:38;12909:84;;12965:18;;:::i;:::-;12909:84;12730:269;12679:320;;;:::o;13005:169::-;13145:21;13141:1;13133:6;13129:14;13122:45;13005:169;:::o;13180:366::-;13322:3;13343:67;13407:2;13402:3;13343:67;:::i;:::-;13336:74;;13419:93;13508:3;13419:93;:::i;:::-;13537:2;13532:3;13528:12;13521:19;;13180:366;;;:::o;13552:419::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:131;13959:4;13833:131;:::i;:::-;13825:139;;13552:419;;;:::o;13977:180::-;14117:32;14113:1;14105:6;14101:14;14094:56;13977:180;:::o;14163:366::-;14305:3;14326:67;14390:2;14385:3;14326:67;:::i;:::-;14319:74;;14402:93;14491:3;14402:93;:::i;:::-;14520:2;14515:3;14511:12;14504:19;;14163:366;;;:::o;14535:419::-;14701:4;14739:2;14728:9;14724:18;14716:26;;14788:9;14782:4;14778:20;14774:1;14763:9;14759:17;14752:47;14816:131;14942:4;14816:131;:::i;:::-;14808:139;;14535:419;;;:::o;14960:172::-;15100:24;15096:1;15088:6;15084:14;15077:48;14960:172;:::o;15138:366::-;15280:3;15301:67;15365:2;15360:3;15301:67;:::i;:::-;15294:74;;15377:93;15466:3;15377:93;:::i;:::-;15495:2;15490:3;15486:12;15479:19;;15138:366;;;:::o;15510:419::-;15676:4;15714:2;15703:9;15699:18;15691:26;;15763:9;15757:4;15753:20;15749:1;15738:9;15734:17;15727:47;15791:131;15917:4;15791:131;:::i;:::-;15783:139;;15510:419;;;:::o;15935:170::-;16075:22;16071:1;16063:6;16059:14;16052:46;15935:170;:::o;16111:366::-;16253:3;16274:67;16338:2;16333:3;16274:67;:::i;:::-;16267:74;;16350:93;16439:3;16350:93;:::i;:::-;16468:2;16463:3;16459:12;16452:19;;16111:366;;;:::o;16483:419::-;16649:4;16687:2;16676:9;16672:18;16664:26;;16736:9;16730:4;16726:20;16722:1;16711:9;16707:17;16700:47;16764:131;16890:4;16764:131;:::i;:::-;16756:139;;16483:419;;;:::o;16908:165::-;17048:17;17044:1;17036:6;17032:14;17025:41;16908:165;:::o;17079:366::-;17221:3;17242:67;17306:2;17301:3;17242:67;:::i;:::-;17235:74;;17318:93;17407:3;17318:93;:::i;:::-;17436:2;17431:3;17427:12;17420:19;;17079:366;;;:::o;17451:419::-;17617:4;17655:2;17644:9;17640:18;17632:26;;17704:9;17698:4;17694:20;17690:1;17679:9;17675:17;17668:47;17732:131;17858:4;17732:131;:::i;:::-;17724:139;;17451:419;;;:::o;17876:170::-;18016:22;18012:1;18004:6;18000:14;17993:46;17876:170;:::o;18052:366::-;18194:3;18215:67;18279:2;18274:3;18215:67;:::i;:::-;18208:74;;18291:93;18380:3;18291:93;:::i;:::-;18409:2;18404:3;18400:12;18393:19;;18052:366;;;:::o;18424:419::-;18590:4;18628:2;18617:9;18613:18;18605:26;;18677:9;18671:4;18667:20;18663:1;18652:9;18648:17;18641:47;18705:131;18831:4;18705:131;:::i;:::-;18697:139;;18424:419;;;:::o;18849:165::-;18989:17;18985:1;18977:6;18973:14;18966:41;18849:165;:::o;19020:366::-;19162:3;19183:67;19247:2;19242:3;19183:67;:::i;:::-;19176:74;;19259:93;19348:3;19259:93;:::i;:::-;19377:2;19372:3;19368:12;19361:19;;19020:366;;;:::o;19392:419::-;19558:4;19596:2;19585:9;19581:18;19573:26;;19645:9;19639:4;19635:20;19631:1;19620:9;19616:17;19609:47;19673:131;19799:4;19673:131;:::i;:::-;19665:139;;19392:419;;;:::o;19817:148::-;19919:11;19956:3;19941:18;;19817:148;;;;:::o;19971:390::-;20077:3;20105:39;20138:5;20105:39;:::i;:::-;20160:89;20242:6;20237:3;20160:89;:::i;:::-;20153:96;;20258:65;20316:6;20311:3;20304:4;20297:5;20293:16;20258:65;:::i;:::-;20348:6;20343:3;20339:16;20332:23;;20081:280;19971:390;;;;:::o;20367:435::-;20547:3;20569:95;20660:3;20651:6;20569:95;:::i;:::-;20562:102;;20681:95;20772:3;20763:6;20681:95;:::i;:::-;20674:102;;20793:3;20786:10;;20367:435;;;;;:::o;20808:159::-;20948:11;20944:1;20936:6;20932:14;20925:35;20808:159;:::o;20973:365::-;21115:3;21136:66;21200:1;21195:3;21136:66;:::i;:::-;21129:73;;21211:93;21300:3;21211:93;:::i;:::-;21329:2;21324:3;21320:12;21313:19;;20973:365;;;:::o;21344:419::-;21510:4;21548:2;21537:9;21533:18;21525:26;;21597:9;21591:4;21587:20;21583:1;21572:9;21568:17;21561:47;21625:131;21751:4;21625:131;:::i;:::-;21617:139;;21344:419;;;:::o;21769:178::-;21909:30;21905:1;21897:6;21893:14;21886:54;21769:178;:::o;21953:366::-;22095:3;22116:67;22180:2;22175:3;22116:67;:::i;:::-;22109:74;;22192:93;22281:3;22192:93;:::i;:::-;22310:2;22305:3;22301:12;22294:19;;21953:366;;;:::o;22325:419::-;22491:4;22529:2;22518:9;22514:18;22506:26;;22578:9;22572:4;22568:20;22564:1;22553:9;22549:17;22542:47;22606:131;22732:4;22606:131;:::i;:::-;22598:139;;22325:419;;;:::o;22750:180::-;22798:77;22795:1;22788:88;22895:4;22892:1;22885:15;22919:4;22916:1;22909:15;22936:194;22976:4;22996:20;23014:1;22996:20;:::i;:::-;22991:25;;23030:20;23048:1;23030:20;:::i;:::-;23025:25;;23074:1;23071;23067:9;23059:17;;23098:1;23092:4;23089:11;23086:37;;;23103:18;;:::i;:::-;23086:37;22936:194;;;;:::o;23136:191::-;23176:3;23195:20;23213:1;23195:20;:::i;:::-;23190:25;;23229:20;23247:1;23229:20;:::i;:::-;23224:25;;23272:1;23269;23265:9;23258:16;;23293:3;23290:1;23287:10;23284:36;;;23300:18;;:::i;:::-;23284:36;23136:191;;;;:::o;23333:94::-;23366:8;23414:5;23410:2;23406:14;23385:35;;23333:94;;;:::o;23433:::-;23472:7;23501:20;23515:5;23501:20;:::i;:::-;23490:31;;23433:94;;;:::o;23533:100::-;23572:7;23601:26;23621:5;23601:26;:::i;:::-;23590:37;;23533:100;;;:::o;23639:157::-;23744:45;23764:24;23782:5;23764:24;:::i;:::-;23744:45;:::i;:::-;23739:3;23732:58;23639:157;;:::o;23802:256::-;23914:3;23929:75;24000:3;23991:6;23929:75;:::i;:::-;24029:2;24024:3;24020:12;24013:19;;24049:3;24042:10;;23802:256;;;;:::o;24064:170::-;24204:22;24200:1;24192:6;24188:14;24181:46;24064:170;:::o;24240:366::-;24382:3;24403:67;24467:2;24462:3;24403:67;:::i;:::-;24396:74;;24479:93;24568:3;24479:93;:::i;:::-;24597:2;24592:3;24588:12;24581:19;;24240:366;;;:::o;24612:419::-;24778:4;24816:2;24805:9;24801:18;24793:26;;24865:9;24859:4;24855:20;24851:1;24840:9;24836:17;24829:47;24893:131;25019:4;24893:131;:::i;:::-;24885:139;;24612:419;;;:::o;25037:170::-;25177:22;25173:1;25165:6;25161:14;25154:46;25037:170;:::o;25213:366::-;25355:3;25376:67;25440:2;25435:3;25376:67;:::i;:::-;25369:74;;25452:93;25541:3;25452:93;:::i;:::-;25570:2;25565:3;25561:12;25554:19;;25213:366;;;:::o;25585:419::-;25751:4;25789:2;25778:9;25774:18;25766:26;;25838:9;25832:4;25828:20;25824:1;25813:9;25809:17;25802:47;25866:131;25992:4;25866:131;:::i;:::-;25858:139;;25585:419;;;:::o;26010:233::-;26049:3;26072:24;26090:5;26072:24;:::i;:::-;26063:33;;26118:66;26111:5;26108:77;26105:103;;26188:18;;:::i;:::-;26105:103;26235:1;26228:5;26224:13;26217:20;;26010:233;;;:::o;26249:180::-;26297:77;26294:1;26287:88;26394:4;26391:1;26384:15;26418:4;26415:1;26408:15;26435:185;26475:1;26492:20;26510:1;26492:20;:::i;:::-;26487:25;;26526:20;26544:1;26526:20;:::i;:::-;26521:25;;26565:1;26555:35;;26570:18;;:::i;:::-;26555:35;26612:1;26609;26605:9;26600:14;;26435:185;;;;:::o;26626:176::-;26658:1;26675:20;26693:1;26675:20;:::i;:::-;26670:25;;26709:20;26727:1;26709:20;:::i;:::-;26704:25;;26748:1;26738:35;;26753:18;;:::i;:::-;26738:35;26794:1;26791;26787:9;26782:14;;26626:176;;;;:::o;26808:180::-;26856:77;26853:1;26846:88;26953:4;26950:1;26943:15;26977:4;26974:1;26967:15;26994:98;27045:6;27079:5;27073:12;27063:22;;26994:98;;;:::o;27098:168::-;27181:11;27215:6;27210:3;27203:19;27255:4;27250:3;27246:14;27231:29;;27098:168;;;;:::o;27272:373::-;27358:3;27386:38;27418:5;27386:38;:::i;:::-;27440:70;27503:6;27498:3;27440:70;:::i;:::-;27433:77;;27519:65;27577:6;27572:3;27565:4;27558:5;27554:16;27519:65;:::i;:::-;27609:29;27631:6;27609:29;:::i;:::-;27604:3;27600:39;27593:46;;27362:283;27272:373;;;;:::o;27651:640::-;27846:4;27884:3;27873:9;27869:19;27861:27;;27898:71;27966:1;27955:9;27951:17;27942:6;27898:71;:::i;:::-;27979:72;28047:2;28036:9;28032:18;28023:6;27979:72;:::i;:::-;28061;28129:2;28118:9;28114:18;28105:6;28061:72;:::i;:::-;28180:9;28174:4;28170:20;28165:2;28154:9;28150:18;28143:48;28208:76;28279:4;28270:6;28208:76;:::i;:::-;28200:84;;27651:640;;;;;;;:::o;28297:141::-;28353:5;28384:6;28378:13;28369:22;;28400:32;28426:5;28400:32;:::i;:::-;28297:141;;;;:::o;28444:349::-;28513:6;28562:2;28550:9;28541:7;28537:23;28533:32;28530:119;;;28568:79;;:::i;:::-;28530:119;28688:1;28713:63;28768:7;28759:6;28748:9;28744:22;28713:63;:::i;:::-;28703:73;;28659:127;28444:349;;;;:::o;28799:79::-;28838:7;28867:5;28856:16;;28799:79;;;:::o;28884:157::-;28989:45;29009:24;29027:5;29009:24;:::i;:::-;28989:45;:::i;:::-;28984:3;28977:58;28884:157;;:::o;29047:397::-;29187:3;29202:75;29273:3;29264:6;29202:75;:::i;:::-;29302:2;29297:3;29293:12;29286:19;;29315:75;29386:3;29377:6;29315:75;:::i;:::-;29415:2;29410:3;29406:12;29399:19;;29435:3;29428:10;;29047:397;;;;;:::o","linkReferences":{},"immutableReferences":{"55800":[{"start":3620,"length":32},{"start":4757,"length":32}]}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,bytes32[])":"641ce140","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","root()":"ebf0c717","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"merkleroot\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"root\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/36_MerkleTree/MerkleTree.sol\":\"MerkleTree\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/36_MerkleTree/MerkleTree.sol\":{\"keccak256\":\"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd\",\"dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bytes32","name":"merkleroot","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"root","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/36_MerkleTree/MerkleTree.sol":"MerkleTree"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/36_MerkleTree/MerkleTree.sol":{"keccak256":"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651","urls":["bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd","dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR"],"license":"MIT"}},"version":1},"id":92} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"merkleroot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"root","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50604051612d3a380380612d3a833981810160405281019061003191906101e4565b8282815f9081610041919061048d565b508060019081610051919061048d565b505050806080818152505050505061055c565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100c38261007d565b810181811067ffffffffffffffff821117156100e2576100e161008d565b5b80604052505050565b5f6100f4610064565b905061010082826100ba565b919050565b5f67ffffffffffffffff82111561011f5761011e61008d565b5b6101288261007d565b9050602081019050919050565b8281835e5f83830152505050565b5f61015561015084610105565b6100eb565b90508281526020810184848401111561017157610170610079565b5b61017c848285610135565b509392505050565b5f82601f83011261019857610197610075565b5b81516101a8848260208601610143565b91505092915050565b5f819050919050565b6101c3816101b1565b81146101cd575f5ffd5b50565b5f815190506101de816101ba565b92915050565b5f5f5f606084860312156101fb576101fa61006d565b5b5f84015167ffffffffffffffff81111561021857610217610071565b5b61022486828701610184565b935050602084015167ffffffffffffffff81111561024557610244610071565b5b61025186828701610184565b9250506040610262868287016101d0565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102ba57607f821691505b6020821081036102cd576102cc610276565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261032f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f4565b61033986836102f4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61037d61037861037384610351565b61035a565b610351565b9050919050565b5f819050919050565b61039683610363565b6103aa6103a282610384565b848454610300565b825550505050565b5f5f905090565b6103c16103b2565b6103cc81848461038d565b505050565b5f5b828110156103f2576103e75f8284016103b9565b6001810190506103d3565b505050565b601f821115610445578282111561044457610411816102d3565b61041a836102e5565b610423856102e5565b6020861015610430575f90505b80830161043f828403826103d1565b505050505b5b505050565b5f82821c905092915050565b5f6104655f198460080261044a565b1980831691505092915050565b5f61047d8383610456565b9150826002028217905092915050565b6104968261026c565b67ffffffffffffffff8111156104af576104ae61008d565b5b6104b982546102a3565b6104c48282856103f7565b5f60209050601f8311600181146104f5575f84156104e3578287015190505b6104ed8582610472565b865550610554565b601f198416610503866102d3565b5f5b8281101561052a57848901518255600182019150602085019450602081019050610505565b868310156105475784890151610543601f891682610456565b8355505b6001600288020188555050505b505050505050565b6080516127bf61057b5f395f8181610e24015261129501526127bf5ff3fe608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c8063641ce14011610095578063b88d4fde11610064578063b88d4fde146102ba578063c87b56dd146102d6578063e985e9c514610306578063ebf0c71714610336576100fe565b8063641ce1401461023457806370a082311461025057806395d89b4114610280578063a22cb4651461029e576100fe565b806323b872dd116100d157806323b872dd1461019c57806342842e0e146101b8578063630303c6146101d45780636352211e14610204576100fe565b806301ffc9a71461010257806306fdde0314610132578063081812fc14610150578063095ea7b314610180575b5f5ffd5b61011c6004803603810190610117919061193e565b610354565b6040516101299190611983565b60405180910390f35b61013a61048d565b6040516101479190611a0c565b60405180910390f35b61016a60048036038101906101659190611a5f565b610518565b6040516101779190611ac9565b60405180910390f35b61019a60048036038101906101959190611b0c565b6105ef565b005b6101b660048036038101906101b19190611b4a565b61072d565b005b6101d260048036038101906101cd9190611b4a565b610795565b005b6101ee60048036038101906101e99190611b9a565b6107b4565b6040516101fb9190611983565b60405180910390f35b61021e60048036038101906102199190611a5f565b6107d1565b60405161022b9190611ac9565b60405180910390f35b61024e60048036038101906102499190611c26565b610878565b005b61026a60048036038101906102659190611b9a565b6109f8565b6040516102779190611ca6565b60405180910390f35b610288610aac565b6040516102959190611a0c565b60405180910390f35b6102b860048036038101906102b39190611ce9565b610b38565b005b6102d460048036038101906102cf9190611e4f565b610c30565b005b6102f060048036038101906102eb9190611a5f565b610c9a565b6040516102fd9190611a0c565b60405180910390f35b610320600480360381019061031b9190611ecf565b610d94565b60405161032d9190611983565b60405180910390f35b61033e610e22565b60405161034b9190611f25565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061048657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461049990611f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590611f6b565b80156105105780601f106104e757610100808354040283529160200191610510565b820191905f5260205f20905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fe5565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106de575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107149061204d565b60405180910390fd5b610728818484610e46565b505050565b5f610737826107d1565b9050610744813384610ef5565b610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906120b5565b60405180910390fd5b61078f81858585611020565b50505050565b6107af83838360405180602001604052805f815250610c30565b505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90611fe5565b60405180910390fd5b919050565b6108ca6108848561125f565b8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505061128e565b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109009061211d565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612185565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109f284846112c2565b50505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e906121ed565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610ab990611f6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae590611f6b565b8015610b305780601f10610b0757610100808354040283529160200191610b30565b820191905f5260205f20905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c249190611983565b60405180910390a35050565b5f610c3a836107d1565b9050610c47813385610ef5565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d906120b5565b60405180910390fd5b610c9381868686866114d0565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612255565b60405180910390fd5b5f610d436114ef565b90505f815111610d615760405180602001604052805f815250610d8c565b80610d6b84611505565b604051602001610d7c9291906122ad565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f8b57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611017575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061231a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612382565b60405180910390fd5b611107845f83610e46565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461115491906123cd565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111a89190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f816040516020016112719190612478565b604051602081830303815290604052805190602001209050919050565b5f6112ba827f00000000000000000000000000000000000000000000000000000000000000008561165e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611327906124dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590612544565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461141b9190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6114dc85858585611020565b6114e884848484611674565b5050505050565b606060405180602001604052805f815250905090565b60605f820361154b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611659565b5f8290505f5b5f821461157a57808061156390612562565b915050600a8261157391906125d6565b9150611551565b5f8167ffffffffffffffff81111561159557611594611d2b565b5b6040519080825280601f01601f1916602001820160405280156115c75781602001600182028036833780820191505090505b5090505b5f8514611652576001826115df91906123cd565b9150600a856115ee9190612606565b60306115fa9190612400565b60f81b8183815181106116105761160f612636565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561164b91906125d6565b94506115cb565b8093505050505b919050565b5f8261166a858461181f565b1490509392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611819578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016116d294939291906126b5565b6020604051808303815f875af192505050801561170d57506040513d601f19601f8201168201806040525081019061170a9190612713565b60015b61178e573d805f811461173b576040519150601f19603f3d011682016040523d82523d5f602084013e611740565b606091505b505f81510361178657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161177d9190611ac9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161180e9190611ac9565b60405180910390fd5b505b50505050565b5f5f8290505f5f90505b8451811015611865576118568286838151811061184957611848612636565b5b6020026020010151611870565b91508080600101915050611829565b508091505092915050565b5f8183106118a657818360405160200161188b92919061275e565b604051602081830303815290604052805190602001206118d0565b82826040516020016118b992919061275e565b604051602081830303815290604052805190602001205b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61191d816118e9565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f60208284031215611953576119526118e1565b5b5f6119608482850161192a565b91505092915050565b5f8115159050919050565b61197d81611969565b82525050565b5f6020820190506119965f830184611974565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119de8261199c565b6119e881856119a6565b93506119f88185602086016119b6565b611a01816119c4565b840191505092915050565b5f6020820190508181035f830152611a2481846119d4565b905092915050565b5f819050919050565b611a3e81611a2c565b8114611a48575f5ffd5b50565b5f81359050611a5981611a35565b92915050565b5f60208284031215611a7457611a736118e1565b5b5f611a8184828501611a4b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ab382611a8a565b9050919050565b611ac381611aa9565b82525050565b5f602082019050611adc5f830184611aba565b92915050565b611aeb81611aa9565b8114611af5575f5ffd5b50565b5f81359050611b0681611ae2565b92915050565b5f5f60408385031215611b2257611b216118e1565b5b5f611b2f85828601611af8565b9250506020611b4085828601611a4b565b9150509250929050565b5f5f5f60608486031215611b6157611b606118e1565b5b5f611b6e86828701611af8565b9350506020611b7f86828701611af8565b9250506040611b9086828701611a4b565b9150509250925092565b5f60208284031215611baf57611bae6118e1565b5b5f611bbc84828501611af8565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611be657611be5611bc5565b5b8235905067ffffffffffffffff811115611c0357611c02611bc9565b5b602083019150836020820283011115611c1f57611c1e611bcd565b5b9250929050565b5f5f5f5f60608587031215611c3e57611c3d6118e1565b5b5f611c4b87828801611af8565b9450506020611c5c87828801611a4b565b935050604085013567ffffffffffffffff811115611c7d57611c7c6118e5565b5b611c8987828801611bd1565b925092505092959194509250565b611ca081611a2c565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611969565b8114611cd2575f5ffd5b50565b5f81359050611ce381611cbf565b92915050565b5f5f60408385031215611cff57611cfe6118e1565b5b5f611d0c85828601611af8565b9250506020611d1d85828601611cd5565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d61826119c4565b810181811067ffffffffffffffff82111715611d8057611d7f611d2b565b5b80604052505050565b5f611d926118d8565b9050611d9e8282611d58565b919050565b5f67ffffffffffffffff821115611dbd57611dbc611d2b565b5b611dc6826119c4565b9050602081019050919050565b828183375f83830152505050565b5f611df3611dee84611da3565b611d89565b905082815260208101848484011115611e0f57611e0e611d27565b5b611e1a848285611dd3565b509392505050565b5f82601f830112611e3657611e35611bc5565b5b8135611e46848260208601611de1565b91505092915050565b5f5f5f5f60808587031215611e6757611e666118e1565b5b5f611e7487828801611af8565b9450506020611e8587828801611af8565b9350506040611e9687828801611a4b565b925050606085013567ffffffffffffffff811115611eb757611eb66118e5565b5b611ec387828801611e22565b91505092959194509250565b5f5f60408385031215611ee557611ee46118e1565b5b5f611ef285828601611af8565b9250506020611f0385828601611af8565b9150509250929050565b5f819050919050565b611f1f81611f0d565b82525050565b5f602082019050611f385f830184611f16565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f8257607f821691505b602082108103611f9557611f94611f3e565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611fcf6013836119a6565b9150611fda82611f9b565b602082019050919050565b5f6020820190508181035f830152611ffc81611fc3565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f612037601e836119a6565b915061204282612003565b602082019050919050565b5f6020820190508181035f8301526120648161202b565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f61209f6016836119a6565b91506120aa8261206b565b602082019050919050565b5f6020820190508181035f8301526120cc81612093565b9050919050565b7f496e76616c6964206d65726b6c652070726f6f660000000000000000000000005f82015250565b5f6121076014836119a6565b9150612112826120d3565b602082019050919050565b5f6020820190508181035f830152612134816120fb565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f61216f600f836119a6565b915061217a8261213b565b602082019050919050565b5f6020820190508181035f83015261219c81612163565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f6121d76014836119a6565b91506121e2826121a3565b602082019050919050565b5f6020820190508181035f830152612204816121cb565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f61223f600f836119a6565b915061224a8261220b565b602082019050919050565b5f6020820190508181035f83015261226c81612233565b9050919050565b5f81905092915050565b5f6122878261199c565b6122918185612273565b93506122a18185602086016119b6565b80840191505092915050565b5f6122b8828561227d565b91506122c4828461227d565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6123046009836119a6565b915061230f826122d0565b602082019050919050565b5f6020820190508181035f830152612331816122f8565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f61236c601c836119a6565b915061237782612338565b602082019050919050565b5f6020820190508181035f83015261239981612360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123d782611a2c565b91506123e283611a2c565b92508282039050818111156123fa576123f96123a0565b5b92915050565b5f61240a82611a2c565b915061241583611a2c565b925082820190508082111561242d5761242c6123a0565b5b92915050565b5f8160601b9050919050565b5f61244982612433565b9050919050565b5f61245a8261243f565b9050919050565b61247261246d82611aa9565b612450565b82525050565b5f6124838284612461565b60148201915081905092915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6124c66014836119a6565b91506124d182612492565b602082019050919050565b5f6020820190508181035f8301526124f3816124ba565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f61252e6014836119a6565b9150612539826124fa565b602082019050919050565b5f6020820190508181035f83015261255b81612522565b9050919050565b5f61256c82611a2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361259e5761259d6123a0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e082611a2c565b91506125eb83611a2c565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f61261082611a2c565b915061261b83611a2c565b92508261262b5761262a6125a9565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61268782612663565b612691818561266d565b93506126a18185602086016119b6565b6126aa816119c4565b840191505092915050565b5f6080820190506126c85f830187611aba565b6126d56020830186611aba565b6126e26040830185611c97565b81810360608301526126f4818461267d565b905095945050505050565b5f8151905061270d81611914565b92915050565b5f60208284031215612728576127276118e1565b5b5f612735848285016126ff565b91505092915050565b5f819050919050565b61275861275382611f0d565b61273e565b82525050565b5f6127698285612747565b6020820191506127798284612747565b602082019150819050939250505056fea264697066735822122010ea1879b50c985b3f190a6c8f972e01c1017f6a7c419e7d7b7493477e13940b64736f6c63430008220033","sourceMap":"2303:1230:86:-:0;;;2553:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2638:4;2644:6;1078:5:78;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;2673:10:86::1;2666:17;;;;::::0;::::1;2553:137:::0;;;2303:1230;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:77::-;2607:7;2636:5;2625:16;;2570:77;;;:::o;2653:122::-;2726:24;2744:5;2726:24;:::i;:::-;2719:5;2716:35;2706:63;;2765:1;2762;2755:12;2706:63;2653:122;:::o;2781:143::-;2838:5;2869:6;2863:13;2854:22;;2885:33;2912:5;2885:33;:::i;:::-;2781:143;;;;:::o;2930:1009::-;3038:6;3046;3054;3103:2;3091:9;3082:7;3078:23;3074:32;3071:119;;;3109:79;;:::i;:::-;3071:119;3250:1;3239:9;3235:17;3229:24;3280:18;3272:6;3269:30;3266:117;;;3302:79;;:::i;:::-;3266:117;3407:74;3473:7;3464:6;3453:9;3449:22;3407:74;:::i;:::-;3397:84;;3200:291;3551:2;3540:9;3536:18;3530:25;3582:18;3574:6;3571:30;3568:117;;;3604:79;;:::i;:::-;3568:117;3709:74;3775:7;3766:6;3755:9;3751:22;3709:74;:::i;:::-;3699:84;;3501:292;3832:2;3858:64;3914:7;3905:6;3894:9;3890:22;3858:64;:::i;:::-;3848:74;;3803:129;2930:1009;;;;;:::o;3945:99::-;3997:6;4031:5;4025:12;4015:22;;3945:99;;;:::o;4050:180::-;4098:77;4095:1;4088:88;4195:4;4192:1;4185:15;4219:4;4216:1;4209:15;4236:320;4280:6;4317:1;4311:4;4307:12;4297:22;;4364:1;4358:4;4354:12;4385:18;4375:81;;4441:4;4433:6;4429:17;4419:27;;4375:81;4503:2;4495:6;4492:14;4472:18;4469:38;4466:84;;4522:18;;:::i;:::-;4466:84;4287:269;4236:320;;;:::o;4562:141::-;4611:4;4634:3;4626:11;;4657:3;4654:1;4647:14;4691:4;4688:1;4678:18;4670:26;;4562:141;;;:::o;4709:93::-;4746:6;4793:2;4788;4781:5;4777:14;4773:23;4763:33;;4709:93;;;:::o;4808:107::-;4852:8;4902:5;4896:4;4892:16;4871:37;;4808:107;;;;:::o;4921:393::-;4990:6;5040:1;5028:10;5024:18;5063:97;5093:66;5082:9;5063:97;:::i;:::-;5181:39;5211:8;5200:9;5181:39;:::i;:::-;5169:51;;5253:4;5249:9;5242:5;5238:21;5229:30;;5302:4;5292:8;5288:19;5281:5;5278:30;5268:40;;4997:317;;4921:393;;;;;:::o;5320:77::-;5357:7;5386:5;5375:16;;5320:77;;;:::o;5403:60::-;5431:3;5452:5;5445:12;;5403:60;;;:::o;5469:142::-;5519:9;5552:53;5570:34;5579:24;5597:5;5579:24;:::i;:::-;5570:34;:::i;:::-;5552:53;:::i;:::-;5539:66;;5469:142;;;:::o;5617:75::-;5660:3;5681:5;5674:12;;5617:75;;;:::o;5698:269::-;5808:39;5839:7;5808:39;:::i;:::-;5869:91;5918:41;5942:16;5918:41;:::i;:::-;5910:6;5903:4;5897:11;5869:91;:::i;:::-;5863:4;5856:105;5774:193;5698:269;;;:::o;5973:73::-;6018:3;6039:1;6032:8;;5973:73;:::o;6052:189::-;6129:32;;:::i;:::-;6170:65;6228:6;6220;6214:4;6170:65;:::i;:::-;6105:136;6052:189;;:::o;6247:214::-;6332:1;6317:138;6342:9;6339:1;6336:16;6317:138;;;6394:51;6443:1;6439;6428:9;6424:17;6394:51;:::i;:::-;6367:1;6364;6360:9;6355:14;;6317:138;;;6321:14;6247:214;;:::o;6467:746::-;6568:2;6563:3;6560:11;6557:649;;;6597:10;6592:3;6589:19;6586:610;;;6643:38;6675:5;6643:38;:::i;:::-;6718:22;6736:3;6718:22;:::i;:::-;6777:29;6795:10;6777:29;:::i;:::-;6967:2;6955:10;6952:18;6949:79;;;7009:1;6993:17;;6949:79;7078:12;7068:8;7064:27;7108:74;7168:12;7154;7150:31;7137:11;7108:74;:::i;:::-;6609:587;;;;6586:610;6557:649;6467:746;;;:::o;7219:117::-;7273:8;7323:5;7317:4;7313:16;7292:37;;7219:117;;;;:::o;7342:169::-;7386:6;7419:51;7467:1;7463:6;7455:5;7452:1;7448:13;7419:51;:::i;:::-;7415:56;7500:4;7494;7490:15;7480:25;;7393:118;7342:169;;;;:::o;7516:295::-;7592:4;7738:29;7763:3;7757:4;7738:29;:::i;:::-;7730:37;;7800:3;7797:1;7793:11;7787:4;7784:21;7776:29;;7516:295;;;;:::o;7816:1395::-;7933:37;7966:3;7933:37;:::i;:::-;8035:18;8027:6;8024:30;8021:56;;;8057:18;;:::i;:::-;8021:56;8101:38;8133:4;8127:11;8101:38;:::i;:::-;8186:67;8246:6;8238;8232:4;8186:67;:::i;:::-;8280:1;8304:4;8291:17;;8336:2;8328:6;8325:14;8353:1;8348:618;;;;9010:1;9027:6;9024:77;;;9076:9;9071:3;9067:19;9061:26;9052:35;;9024:77;9127:67;9187:6;9180:5;9127:67;:::i;:::-;9121:4;9114:81;8983:222;8318:887;;8348:618;8400:4;8396:9;8388:6;8384:22;8434:37;8466:4;8434:37;:::i;:::-;8493:1;8507:208;8521:7;8518:1;8515:14;8507:208;;;8600:9;8595:3;8591:19;8585:26;8577:6;8570:42;8651:1;8643:6;8639:14;8629:24;;8698:2;8687:9;8683:18;8670:31;;8544:4;8541:1;8537:12;8532:17;;8507:208;;;8743:6;8734:7;8731:19;8728:179;;;8801:9;8796:3;8792:19;8786:26;8844:48;8886:4;8878:6;8874:17;8863:9;8844:48;:::i;:::-;8836:6;8829:64;8751:156;8728:179;8953:1;8949;8941:6;8937:14;8933:22;8927:4;8920:36;8355:611;;;8318:887;;7908:1303;;;7816:1395;;:::o;2303:1230:86:-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100fe575f3560e01c8063641ce14011610095578063b88d4fde11610064578063b88d4fde146102ba578063c87b56dd146102d6578063e985e9c514610306578063ebf0c71714610336576100fe565b8063641ce1401461023457806370a082311461025057806395d89b4114610280578063a22cb4651461029e576100fe565b806323b872dd116100d157806323b872dd1461019c57806342842e0e146101b8578063630303c6146101d45780636352211e14610204576100fe565b806301ffc9a71461010257806306fdde0314610132578063081812fc14610150578063095ea7b314610180575b5f5ffd5b61011c6004803603810190610117919061193e565b610354565b6040516101299190611983565b60405180910390f35b61013a61048d565b6040516101479190611a0c565b60405180910390f35b61016a60048036038101906101659190611a5f565b610518565b6040516101779190611ac9565b60405180910390f35b61019a60048036038101906101959190611b0c565b6105ef565b005b6101b660048036038101906101b19190611b4a565b61072d565b005b6101d260048036038101906101cd9190611b4a565b610795565b005b6101ee60048036038101906101e99190611b9a565b6107b4565b6040516101fb9190611983565b60405180910390f35b61021e60048036038101906102199190611a5f565b6107d1565b60405161022b9190611ac9565b60405180910390f35b61024e60048036038101906102499190611c26565b610878565b005b61026a60048036038101906102659190611b9a565b6109f8565b6040516102779190611ca6565b60405180910390f35b610288610aac565b6040516102959190611a0c565b60405180910390f35b6102b860048036038101906102b39190611ce9565b610b38565b005b6102d460048036038101906102cf9190611e4f565b610c30565b005b6102f060048036038101906102eb9190611a5f565b610c9a565b6040516102fd9190611a0c565b60405180910390f35b610320600480360381019061031b9190611ecf565b610d94565b60405161032d9190611983565b60405180910390f35b61033e610e22565b60405161034b9190611f25565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061041e57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061048657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461049990611f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590611f6b565b80156105105780601f106104e757610100808354040283529160200191610510565b820191905f5260205f20905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ae90611fe5565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106de575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107149061204d565b60405180910390fd5b610728818484610e46565b505050565b5f610737826107d1565b9050610744813384610ef5565b610783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077a906120b5565b60405180910390fd5b61078f81858585611020565b50505050565b6107af83838360405180602001604052805f815250610c30565b505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90611fe5565b60405180910390fd5b919050565b6108ca6108848561125f565b8383808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f8201169050808301925050505050505061128e565b610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109009061211d565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612185565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506109f284846112c2565b50505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5e906121ed565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60018054610ab990611f6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae590611f6b565b8015610b305780601f10610b0757610100808354040283529160200191610b30565b820191905f5260205f20905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c249190611983565b60405180910390a35050565b5f610c3a836107d1565b9050610c47813385610ef5565b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d906120b5565b60405180910390fd5b610c9381868686866114d0565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612255565b60405180910390fd5b5f610d436114ef565b90505f815111610d615760405180602001604052805f815250610d8c565b80610d6b84611505565b604051602001610d7c9291906122ad565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f8b57508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611017575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061231a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612382565b60405180910390fd5b611107845f83610e46565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461115491906123cd565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111a89190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f816040516020016112719190612478565b604051602081830303815290604052805190602001209050919050565b5f6112ba827f00000000000000000000000000000000000000000000000000000000000000008561165e565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611330576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611327906124dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590612544565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461141b9190612400565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6114dc85858585611020565b6114e884848484611674565b5050505050565b606060405180602001604052805f815250905090565b60605f820361154b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611659565b5f8290505f5b5f821461157a57808061156390612562565b915050600a8261157391906125d6565b9150611551565b5f8167ffffffffffffffff81111561159557611594611d2b565b5b6040519080825280601f01601f1916602001820160405280156115c75781602001600182028036833780820191505090505b5090505b5f8514611652576001826115df91906123cd565b9150600a856115ee9190612606565b60306115fa9190612400565b60f81b8183815181106116105761160f612636565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561164b91906125d6565b94506115cb565b8093505050505b919050565b5f8261166a858461181f565b1490509392505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611819578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016116d294939291906126b5565b6020604051808303815f875af192505050801561170d57506040513d601f19601f8201168201806040525081019061170a9190612713565b60015b61178e573d805f811461173b576040519150601f19603f3d011682016040523d82523d5f602084013e611740565b606091505b505f81510361178657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161177d9190611ac9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161180e9190611ac9565b60405180910390fd5b505b50505050565b5f5f8290505f5f90505b8451811015611865576118568286838151811061184957611848612636565b5b6020026020010151611870565b91508080600101915050611829565b508091505092915050565b5f8183106118a657818360405160200161188b92919061275e565b604051602081830303815290604052805190602001206118d0565b82826040516020016118b992919061275e565b604051602081830303815290604052805190602001205b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61191d816118e9565b8114611927575f5ffd5b50565b5f8135905061193881611914565b92915050565b5f60208284031215611953576119526118e1565b5b5f6119608482850161192a565b91505092915050565b5f8115159050919050565b61197d81611969565b82525050565b5f6020820190506119965f830184611974565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119de8261199c565b6119e881856119a6565b93506119f88185602086016119b6565b611a01816119c4565b840191505092915050565b5f6020820190508181035f830152611a2481846119d4565b905092915050565b5f819050919050565b611a3e81611a2c565b8114611a48575f5ffd5b50565b5f81359050611a5981611a35565b92915050565b5f60208284031215611a7457611a736118e1565b5b5f611a8184828501611a4b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ab382611a8a565b9050919050565b611ac381611aa9565b82525050565b5f602082019050611adc5f830184611aba565b92915050565b611aeb81611aa9565b8114611af5575f5ffd5b50565b5f81359050611b0681611ae2565b92915050565b5f5f60408385031215611b2257611b216118e1565b5b5f611b2f85828601611af8565b9250506020611b4085828601611a4b565b9150509250929050565b5f5f5f60608486031215611b6157611b606118e1565b5b5f611b6e86828701611af8565b9350506020611b7f86828701611af8565b9250506040611b9086828701611a4b565b9150509250925092565b5f60208284031215611baf57611bae6118e1565b5b5f611bbc84828501611af8565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611be657611be5611bc5565b5b8235905067ffffffffffffffff811115611c0357611c02611bc9565b5b602083019150836020820283011115611c1f57611c1e611bcd565b5b9250929050565b5f5f5f5f60608587031215611c3e57611c3d6118e1565b5b5f611c4b87828801611af8565b9450506020611c5c87828801611a4b565b935050604085013567ffffffffffffffff811115611c7d57611c7c6118e5565b5b611c8987828801611bd1565b925092505092959194509250565b611ca081611a2c565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611969565b8114611cd2575f5ffd5b50565b5f81359050611ce381611cbf565b92915050565b5f5f60408385031215611cff57611cfe6118e1565b5b5f611d0c85828601611af8565b9250506020611d1d85828601611cd5565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d61826119c4565b810181811067ffffffffffffffff82111715611d8057611d7f611d2b565b5b80604052505050565b5f611d926118d8565b9050611d9e8282611d58565b919050565b5f67ffffffffffffffff821115611dbd57611dbc611d2b565b5b611dc6826119c4565b9050602081019050919050565b828183375f83830152505050565b5f611df3611dee84611da3565b611d89565b905082815260208101848484011115611e0f57611e0e611d27565b5b611e1a848285611dd3565b509392505050565b5f82601f830112611e3657611e35611bc5565b5b8135611e46848260208601611de1565b91505092915050565b5f5f5f5f60808587031215611e6757611e666118e1565b5b5f611e7487828801611af8565b9450506020611e8587828801611af8565b9350506040611e9687828801611a4b565b925050606085013567ffffffffffffffff811115611eb757611eb66118e5565b5b611ec387828801611e22565b91505092959194509250565b5f5f60408385031215611ee557611ee46118e1565b5b5f611ef285828601611af8565b9250506020611f0385828601611af8565b9150509250929050565b5f819050919050565b611f1f81611f0d565b82525050565b5f602082019050611f385f830184611f16565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f8257607f821691505b602082108103611f9557611f94611f3e565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611fcf6013836119a6565b9150611fda82611f9b565b602082019050919050565b5f6020820190508181035f830152611ffc81611fc3565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f612037601e836119a6565b915061204282612003565b602082019050919050565b5f6020820190508181035f8301526120648161202b565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f61209f6016836119a6565b91506120aa8261206b565b602082019050919050565b5f6020820190508181035f8301526120cc81612093565b9050919050565b7f496e76616c6964206d65726b6c652070726f6f660000000000000000000000005f82015250565b5f6121076014836119a6565b9150612112826120d3565b602082019050919050565b5f6020820190508181035f830152612134816120fb565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f61216f600f836119a6565b915061217a8261213b565b602082019050919050565b5f6020820190508181035f83015261219c81612163565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f6121d76014836119a6565b91506121e2826121a3565b602082019050919050565b5f6020820190508181035f830152612204816121cb565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f61223f600f836119a6565b915061224a8261220b565b602082019050919050565b5f6020820190508181035f83015261226c81612233565b9050919050565b5f81905092915050565b5f6122878261199c565b6122918185612273565b93506122a18185602086016119b6565b80840191505092915050565b5f6122b8828561227d565b91506122c4828461227d565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6123046009836119a6565b915061230f826122d0565b602082019050919050565b5f6020820190508181035f830152612331816122f8565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f61236c601c836119a6565b915061237782612338565b602082019050919050565b5f6020820190508181035f83015261239981612360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6123d782611a2c565b91506123e283611a2c565b92508282039050818111156123fa576123f96123a0565b5b92915050565b5f61240a82611a2c565b915061241583611a2c565b925082820190508082111561242d5761242c6123a0565b5b92915050565b5f8160601b9050919050565b5f61244982612433565b9050919050565b5f61245a8261243f565b9050919050565b61247261246d82611aa9565b612450565b82525050565b5f6124838284612461565b60148201915081905092915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6124c66014836119a6565b91506124d182612492565b602082019050919050565b5f6020820190508181035f8301526124f3816124ba565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f61252e6014836119a6565b9150612539826124fa565b602082019050919050565b5f6020820190508181035f83015261255b81612522565b9050919050565b5f61256c82611a2c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361259e5761259d6123a0565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e082611a2c565b91506125eb83611a2c565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f61261082611a2c565b915061261b83611a2c565b92508261262b5761262a6125a9565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61268782612663565b612691818561266d565b93506126a18185602086016119b6565b6126aa816119c4565b840191505092915050565b5f6080820190506126c85f830187611aba565b6126d56020830186611aba565b6126e26040830185611c97565b81810360608301526126f4818461267d565b905095945050505050565b5f8151905061270d81611914565b92915050565b5f60208284031215612728576127276118e1565b5b5f612735848285016126ff565b91505092915050565b5f819050919050565b61275861275382611f0d565b61273e565b82525050565b5f6127698285612747565b6020820191506127798284612747565b602082019150819050939250505056fea264697066735822122010ea1879b50c985b3f190a6c8f972e01c1017f6a7c419e7d7b7493477e13940b64736f6c63430008220033","sourceMap":"2303:1230:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2393:45:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2738:392:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1576:174:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2339:29:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317:78;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;6437:170::-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;2393:45:86:-;;;;;;;;;;;;;;;;;;;;;;:::o;1833:178:78:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;2738:392:86:-;2847:30;2855:14;2861:7;2855:5;:14::i;:::-;2871:5;;2847:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:30::i;:::-;2839:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2943:13;:22;2957:7;2943:22;;;;;;;;;;;;;;;;;;;;;;;;;2942:23;2934:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;3052:4;3027:13;:22;3041:7;3027:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3092:23;3098:7;3107;3092:5;:23::i;:::-;2738:392;;;;:::o;1576:174:78:-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;2339:29:86:-;;;:::o;3116:186:78:-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;3177:132:86:-;3236:7;3293;3276:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;3266:36;;;;;;3259:43;;3177:132;;;:::o;3378:153::-;3460:4;3487:37;3506:5;3513:4;3519;3487:18;:37::i;:::-;3480:44;;3378:153;;;;:::o;7051:306:78:-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;1381:184:86:-;1502:4;1554;1525:25;1538:5;1545:4;1525:12;:25::i;:::-;:33;1518:40;;1381:184;;;;;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;1806:290:86:-;1889:7;1908:20;1931:4;1908:27;;1950:9;1962:1;1950:13;;1945:116;1969:5;:12;1965:1;:16;1945:116;;;2017:33;2027:12;2041:5;2047:1;2041:8;;;;;;;;:::i;:::-;;;;;;;;2017:9;:33::i;:::-;2002:48;;1983:3;;;;;;;1945:116;;;;2077:12;2070:19;;;1806:290;;;;:::o;2126:173::-;2189:7;2219:1;2215;:5;:77;;2286:1;2289;2269:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2259:33;;;;;;2215:77;;;2250:1;2253;2233:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2223:33;;;;;;2215:77;2208:84;;2126:173;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:117::-;5852:1;5849;5842:12;5866:117;5975:1;5972;5965:12;5989:117;6098:1;6095;6088:12;6129:568;6202:8;6212:6;6262:3;6255:4;6247:6;6243:17;6239:27;6229:122;;6270:79;;:::i;:::-;6229:122;6383:6;6370:20;6360:30;;6413:18;6405:6;6402:30;6399:117;;;6435:79;;:::i;:::-;6399:117;6549:4;6541:6;6537:17;6525:29;;6603:3;6595:4;6587:6;6583:17;6573:8;6569:32;6566:41;6563:128;;;6610:79;;:::i;:::-;6563:128;6129:568;;;;;:::o;6703:849::-;6807:6;6815;6823;6831;6880:2;6868:9;6859:7;6855:23;6851:32;6848:119;;;6886:79;;:::i;:::-;6848:119;7006:1;7031:53;7076:7;7067:6;7056:9;7052:22;7031:53;:::i;:::-;7021:63;;6977:117;7133:2;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7104:118;7289:2;7278:9;7274:18;7261:32;7320:18;7312:6;7309:30;7306:117;;;7342:79;;:::i;:::-;7306:117;7455:80;7527:7;7518:6;7507:9;7503:22;7455:80;:::i;:::-;7437:98;;;;7232:313;6703:849;;;;;;;:::o;7558:118::-;7645:24;7663:5;7645:24;:::i;:::-;7640:3;7633:37;7558:118;;:::o;7682:222::-;7775:4;7813:2;7802:9;7798:18;7790:26;;7826:71;7894:1;7883:9;7879:17;7870:6;7826:71;:::i;:::-;7682:222;;;;:::o;7910:116::-;7980:21;7995:5;7980:21;:::i;:::-;7973:5;7970:32;7960:60;;8016:1;8013;8006:12;7960:60;7910:116;:::o;8032:133::-;8075:5;8113:6;8100:20;8091:29;;8129:30;8153:5;8129:30;:::i;:::-;8032:133;;;;:::o;8171:468::-;8236:6;8244;8293:2;8281:9;8272:7;8268:23;8264:32;8261:119;;;8299:79;;:::i;:::-;8261:119;8419:1;8444:53;8489:7;8480:6;8469:9;8465:22;8444:53;:::i;:::-;8434:63;;8390:117;8546:2;8572:50;8614:7;8605:6;8594:9;8590:22;8572:50;:::i;:::-;8562:60;;8517:115;8171:468;;;;;:::o;8645:117::-;8754:1;8751;8744:12;8768:180;8816:77;8813:1;8806:88;8913:4;8910:1;8903:15;8937:4;8934:1;8927:15;8954:281;9037:27;9059:4;9037:27;:::i;:::-;9029:6;9025:40;9167:6;9155:10;9152:22;9131:18;9119:10;9116:34;9113:62;9110:88;;;9178:18;;:::i;:::-;9110:88;9218:10;9214:2;9207:22;8997:238;8954:281;;:::o;9241:129::-;9275:6;9302:20;;:::i;:::-;9292:30;;9331:33;9359:4;9351:6;9331:33;:::i;:::-;9241:129;;;:::o;9376:307::-;9437:4;9527:18;9519:6;9516:30;9513:56;;;9549:18;;:::i;:::-;9513:56;9587:29;9609:6;9587:29;:::i;:::-;9579:37;;9671:4;9665;9661:15;9653:23;;9376:307;;;:::o;9689:148::-;9787:6;9782:3;9777;9764:30;9828:1;9819:6;9814:3;9810:16;9803:27;9689:148;;;:::o;9843:423::-;9920:5;9945:65;9961:48;10002:6;9961:48;:::i;:::-;9945:65;:::i;:::-;9936:74;;10033:6;10026:5;10019:21;10071:4;10064:5;10060:16;10109:3;10100:6;10095:3;10091:16;10088:25;10085:112;;;10116:79;;:::i;:::-;10085:112;10206:54;10253:6;10248:3;10243;10206:54;:::i;:::-;9926:340;9843:423;;;;;:::o;10285:338::-;10340:5;10389:3;10382:4;10374:6;10370:17;10366:27;10356:122;;10397:79;;:::i;:::-;10356:122;10514:6;10501:20;10539:78;10613:3;10605:6;10598:4;10590:6;10586:17;10539:78;:::i;:::-;10530:87;;10346:277;10285:338;;;;:::o;10629:943::-;10724:6;10732;10740;10748;10797:3;10785:9;10776:7;10772:23;10768:33;10765:120;;;10804:79;;:::i;:::-;10765:120;10924:1;10949:53;10994:7;10985:6;10974:9;10970:22;10949:53;:::i;:::-;10939:63;;10895:117;11051:2;11077:53;11122:7;11113:6;11102:9;11098:22;11077:53;:::i;:::-;11067:63;;11022:118;11179:2;11205:53;11250:7;11241:6;11230:9;11226:22;11205:53;:::i;:::-;11195:63;;11150:118;11335:2;11324:9;11320:18;11307:32;11366:18;11358:6;11355:30;11352:117;;;11388:79;;:::i;:::-;11352:117;11493:62;11547:7;11538:6;11527:9;11523:22;11493:62;:::i;:::-;11483:72;;11278:287;10629:943;;;;;;;:::o;11578:474::-;11646:6;11654;11703:2;11691:9;11682:7;11678:23;11674:32;11671:119;;;11709:79;;:::i;:::-;11671:119;11829:1;11854:53;11899:7;11890:6;11879:9;11875:22;11854:53;:::i;:::-;11844:63;;11800:117;11956:2;11982:53;12027:7;12018:6;12007:9;12003:22;11982:53;:::i;:::-;11972:63;;11927:118;11578:474;;;;;:::o;12058:77::-;12095:7;12124:5;12113:16;;12058:77;;;:::o;12141:118::-;12228:24;12246:5;12228:24;:::i;:::-;12223:3;12216:37;12141:118;;:::o;12265:222::-;12358:4;12396:2;12385:9;12381:18;12373:26;;12409:71;12477:1;12466:9;12462:17;12453:6;12409:71;:::i;:::-;12265:222;;;;:::o;12493:180::-;12541:77;12538:1;12531:88;12638:4;12635:1;12628:15;12662:4;12659:1;12652:15;12679:320;12723:6;12760:1;12754:4;12750:12;12740:22;;12807:1;12801:4;12797:12;12828:18;12818:81;;12884:4;12876:6;12872:17;12862:27;;12818:81;12946:2;12938:6;12935:14;12915:18;12912:38;12909:84;;12965:18;;:::i;:::-;12909:84;12730:269;12679:320;;;:::o;13005:169::-;13145:21;13141:1;13133:6;13129:14;13122:45;13005:169;:::o;13180:366::-;13322:3;13343:67;13407:2;13402:3;13343:67;:::i;:::-;13336:74;;13419:93;13508:3;13419:93;:::i;:::-;13537:2;13532:3;13528:12;13521:19;;13180:366;;;:::o;13552:419::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:131;13959:4;13833:131;:::i;:::-;13825:139;;13552:419;;;:::o;13977:180::-;14117:32;14113:1;14105:6;14101:14;14094:56;13977:180;:::o;14163:366::-;14305:3;14326:67;14390:2;14385:3;14326:67;:::i;:::-;14319:74;;14402:93;14491:3;14402:93;:::i;:::-;14520:2;14515:3;14511:12;14504:19;;14163:366;;;:::o;14535:419::-;14701:4;14739:2;14728:9;14724:18;14716:26;;14788:9;14782:4;14778:20;14774:1;14763:9;14759:17;14752:47;14816:131;14942:4;14816:131;:::i;:::-;14808:139;;14535:419;;;:::o;14960:172::-;15100:24;15096:1;15088:6;15084:14;15077:48;14960:172;:::o;15138:366::-;15280:3;15301:67;15365:2;15360:3;15301:67;:::i;:::-;15294:74;;15377:93;15466:3;15377:93;:::i;:::-;15495:2;15490:3;15486:12;15479:19;;15138:366;;;:::o;15510:419::-;15676:4;15714:2;15703:9;15699:18;15691:26;;15763:9;15757:4;15753:20;15749:1;15738:9;15734:17;15727:47;15791:131;15917:4;15791:131;:::i;:::-;15783:139;;15510:419;;;:::o;15935:170::-;16075:22;16071:1;16063:6;16059:14;16052:46;15935:170;:::o;16111:366::-;16253:3;16274:67;16338:2;16333:3;16274:67;:::i;:::-;16267:74;;16350:93;16439:3;16350:93;:::i;:::-;16468:2;16463:3;16459:12;16452:19;;16111:366;;;:::o;16483:419::-;16649:4;16687:2;16676:9;16672:18;16664:26;;16736:9;16730:4;16726:20;16722:1;16711:9;16707:17;16700:47;16764:131;16890:4;16764:131;:::i;:::-;16756:139;;16483:419;;;:::o;16908:165::-;17048:17;17044:1;17036:6;17032:14;17025:41;16908:165;:::o;17079:366::-;17221:3;17242:67;17306:2;17301:3;17242:67;:::i;:::-;17235:74;;17318:93;17407:3;17318:93;:::i;:::-;17436:2;17431:3;17427:12;17420:19;;17079:366;;;:::o;17451:419::-;17617:4;17655:2;17644:9;17640:18;17632:26;;17704:9;17698:4;17694:20;17690:1;17679:9;17675:17;17668:47;17732:131;17858:4;17732:131;:::i;:::-;17724:139;;17451:419;;;:::o;17876:170::-;18016:22;18012:1;18004:6;18000:14;17993:46;17876:170;:::o;18052:366::-;18194:3;18215:67;18279:2;18274:3;18215:67;:::i;:::-;18208:74;;18291:93;18380:3;18291:93;:::i;:::-;18409:2;18404:3;18400:12;18393:19;;18052:366;;;:::o;18424:419::-;18590:4;18628:2;18617:9;18613:18;18605:26;;18677:9;18671:4;18667:20;18663:1;18652:9;18648:17;18641:47;18705:131;18831:4;18705:131;:::i;:::-;18697:139;;18424:419;;;:::o;18849:165::-;18989:17;18985:1;18977:6;18973:14;18966:41;18849:165;:::o;19020:366::-;19162:3;19183:67;19247:2;19242:3;19183:67;:::i;:::-;19176:74;;19259:93;19348:3;19259:93;:::i;:::-;19377:2;19372:3;19368:12;19361:19;;19020:366;;;:::o;19392:419::-;19558:4;19596:2;19585:9;19581:18;19573:26;;19645:9;19639:4;19635:20;19631:1;19620:9;19616:17;19609:47;19673:131;19799:4;19673:131;:::i;:::-;19665:139;;19392:419;;;:::o;19817:148::-;19919:11;19956:3;19941:18;;19817:148;;;;:::o;19971:390::-;20077:3;20105:39;20138:5;20105:39;:::i;:::-;20160:89;20242:6;20237:3;20160:89;:::i;:::-;20153:96;;20258:65;20316:6;20311:3;20304:4;20297:5;20293:16;20258:65;:::i;:::-;20348:6;20343:3;20339:16;20332:23;;20081:280;19971:390;;;;:::o;20367:435::-;20547:3;20569:95;20660:3;20651:6;20569:95;:::i;:::-;20562:102;;20681:95;20772:3;20763:6;20681:95;:::i;:::-;20674:102;;20793:3;20786:10;;20367:435;;;;;:::o;20808:159::-;20948:11;20944:1;20936:6;20932:14;20925:35;20808:159;:::o;20973:365::-;21115:3;21136:66;21200:1;21195:3;21136:66;:::i;:::-;21129:73;;21211:93;21300:3;21211:93;:::i;:::-;21329:2;21324:3;21320:12;21313:19;;20973:365;;;:::o;21344:419::-;21510:4;21548:2;21537:9;21533:18;21525:26;;21597:9;21591:4;21587:20;21583:1;21572:9;21568:17;21561:47;21625:131;21751:4;21625:131;:::i;:::-;21617:139;;21344:419;;;:::o;21769:178::-;21909:30;21905:1;21897:6;21893:14;21886:54;21769:178;:::o;21953:366::-;22095:3;22116:67;22180:2;22175:3;22116:67;:::i;:::-;22109:74;;22192:93;22281:3;22192:93;:::i;:::-;22310:2;22305:3;22301:12;22294:19;;21953:366;;;:::o;22325:419::-;22491:4;22529:2;22518:9;22514:18;22506:26;;22578:9;22572:4;22568:20;22564:1;22553:9;22549:17;22542:47;22606:131;22732:4;22606:131;:::i;:::-;22598:139;;22325:419;;;:::o;22750:180::-;22798:77;22795:1;22788:88;22895:4;22892:1;22885:15;22919:4;22916:1;22909:15;22936:194;22976:4;22996:20;23014:1;22996:20;:::i;:::-;22991:25;;23030:20;23048:1;23030:20;:::i;:::-;23025:25;;23074:1;23071;23067:9;23059:17;;23098:1;23092:4;23089:11;23086:37;;;23103:18;;:::i;:::-;23086:37;22936:194;;;;:::o;23136:191::-;23176:3;23195:20;23213:1;23195:20;:::i;:::-;23190:25;;23229:20;23247:1;23229:20;:::i;:::-;23224:25;;23272:1;23269;23265:9;23258:16;;23293:3;23290:1;23287:10;23284:36;;;23300:18;;:::i;:::-;23284:36;23136:191;;;;:::o;23333:94::-;23366:8;23414:5;23410:2;23406:14;23385:35;;23333:94;;;:::o;23433:::-;23472:7;23501:20;23515:5;23501:20;:::i;:::-;23490:31;;23433:94;;;:::o;23533:100::-;23572:7;23601:26;23621:5;23601:26;:::i;:::-;23590:37;;23533:100;;;:::o;23639:157::-;23744:45;23764:24;23782:5;23764:24;:::i;:::-;23744:45;:::i;:::-;23739:3;23732:58;23639:157;;:::o;23802:256::-;23914:3;23929:75;24000:3;23991:6;23929:75;:::i;:::-;24029:2;24024:3;24020:12;24013:19;;24049:3;24042:10;;23802:256;;;;:::o;24064:170::-;24204:22;24200:1;24192:6;24188:14;24181:46;24064:170;:::o;24240:366::-;24382:3;24403:67;24467:2;24462:3;24403:67;:::i;:::-;24396:74;;24479:93;24568:3;24479:93;:::i;:::-;24597:2;24592:3;24588:12;24581:19;;24240:366;;;:::o;24612:419::-;24778:4;24816:2;24805:9;24801:18;24793:26;;24865:9;24859:4;24855:20;24851:1;24840:9;24836:17;24829:47;24893:131;25019:4;24893:131;:::i;:::-;24885:139;;24612:419;;;:::o;25037:170::-;25177:22;25173:1;25165:6;25161:14;25154:46;25037:170;:::o;25213:366::-;25355:3;25376:67;25440:2;25435:3;25376:67;:::i;:::-;25369:74;;25452:93;25541:3;25452:93;:::i;:::-;25570:2;25565:3;25561:12;25554:19;;25213:366;;;:::o;25585:419::-;25751:4;25789:2;25778:9;25774:18;25766:26;;25838:9;25832:4;25828:20;25824:1;25813:9;25809:17;25802:47;25866:131;25992:4;25866:131;:::i;:::-;25858:139;;25585:419;;;:::o;26010:233::-;26049:3;26072:24;26090:5;26072:24;:::i;:::-;26063:33;;26118:66;26111:5;26108:77;26105:103;;26188:18;;:::i;:::-;26105:103;26235:1;26228:5;26224:13;26217:20;;26010:233;;;:::o;26249:180::-;26297:77;26294:1;26287:88;26394:4;26391:1;26384:15;26418:4;26415:1;26408:15;26435:185;26475:1;26492:20;26510:1;26492:20;:::i;:::-;26487:25;;26526:20;26544:1;26526:20;:::i;:::-;26521:25;;26565:1;26555:35;;26570:18;;:::i;:::-;26555:35;26612:1;26609;26605:9;26600:14;;26435:185;;;;:::o;26626:176::-;26658:1;26675:20;26693:1;26675:20;:::i;:::-;26670:25;;26709:20;26727:1;26709:20;:::i;:::-;26704:25;;26748:1;26738:35;;26753:18;;:::i;:::-;26738:35;26794:1;26791;26787:9;26782:14;;26626:176;;;;:::o;26808:180::-;26856:77;26853:1;26846:88;26953:4;26950:1;26943:15;26977:4;26974:1;26967:15;26994:98;27045:6;27079:5;27073:12;27063:22;;26994:98;;;:::o;27098:168::-;27181:11;27215:6;27210:3;27203:19;27255:4;27250:3;27246:14;27231:29;;27098:168;;;;:::o;27272:373::-;27358:3;27386:38;27418:5;27386:38;:::i;:::-;27440:70;27503:6;27498:3;27440:70;:::i;:::-;27433:77;;27519:65;27577:6;27572:3;27565:4;27558:5;27554:16;27519:65;:::i;:::-;27609:29;27631:6;27609:29;:::i;:::-;27604:3;27600:39;27593:46;;27362:283;27272:373;;;;:::o;27651:640::-;27846:4;27884:3;27873:9;27869:19;27861:27;;27898:71;27966:1;27955:9;27951:17;27942:6;27898:71;:::i;:::-;27979:72;28047:2;28036:9;28032:18;28023:6;27979:72;:::i;:::-;28061;28129:2;28118:9;28114:18;28105:6;28061:72;:::i;:::-;28180:9;28174:4;28170:20;28165:2;28154:9;28150:18;28143:48;28208:76;28279:4;28270:6;28208:76;:::i;:::-;28200:84;;27651:640;;;;;;;:::o;28297:141::-;28353:5;28384:6;28378:13;28369:22;;28400:32;28426:5;28400:32;:::i;:::-;28297:141;;;;:::o;28444:349::-;28513:6;28562:2;28550:9;28541:7;28537:23;28533:32;28530:119;;;28568:79;;:::i;:::-;28530:119;28688:1;28713:63;28768:7;28759:6;28748:9;28744:22;28713:63;:::i;:::-;28703:73;;28659:127;28444:349;;;;:::o;28799:79::-;28838:7;28867:5;28856:16;;28799:79;;;:::o;28884:157::-;28989:45;29009:24;29027:5;29009:24;:::i;:::-;28989:45;:::i;:::-;28984:3;28977:58;28884:157;;:::o;29047:397::-;29187:3;29202:75;29273:3;29264:6;29202:75;:::i;:::-;29302:2;29297:3;29293:12;29286:19;;29315:75;29386:3;29377:6;29315:75;:::i;:::-;29415:2;29410:3;29406:12;29399:19;;29435:3;29428:10;;29047:397;;;;;:::o","linkReferences":{},"immutableReferences":{"54892":[{"start":3620,"length":32},{"start":4757,"length":32}]}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,bytes32[])":"641ce140","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","root()":"ebf0c717","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"merkleroot\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"root\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/36_MerkleTree/MerkleTree.sol\":\"MerkleTree\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/36_MerkleTree/MerkleTree.sol\":{\"keccak256\":\"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd\",\"dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bytes32","name":"merkleroot","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"root","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/36_MerkleTree/MerkleTree.sol":"MerkleTree"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/36_MerkleTree/MerkleTree.sol":{"keccak256":"0x283b639e708a7977b6eec61651051dbc0de4ee602732a561a93e21b3b378a651","urls":["bzz-raw://e47dd3720e0d605124b1995776356da9a91a6797b054d95fde706428c04917dd","dweb:/ipfs/QmZj7waWZDg1X2SstbHvMGeAin1N3ivG8eqyBWBV2RYZmR"],"license":"MIT"}},"version":1},"id":86} \ No newline at end of file diff --git a/out/MultiCall.sol/Multicall.json b/out/MultiCall.sol/Multicall.json index 840f73c8..9addf7b8 100644 --- a/out/MultiCall.sol/Multicall.json +++ b/out/MultiCall.sol/Multicall.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"multicall","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107558061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063e8bbf5d71461002d575b5f5ffd5b610047600480360381019061004291906102a0565b61005d565b604051610054919061046a565b60405180910390f35b60605f8383905090508067ffffffffffffffff8111156100805761007f61048a565b5b6040519080825280602002602001820160405280156100b957816020015b6100a661021c565b81526020019060019003908161009e5790505b509150365f5f90505b82811015610213575f8482815181106100de576100dd6104b7565b5b602002602001015190508686838181106100fb576100fa6104b7565b5b905060200281019061010d91906104f0565b9250825f0160208101906101219190610571565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610147919061059c565b60405161015592919061063a565b5f604051808303815f865af19150503d805f811461018e576040519150601f19603f3d011682016040523d82523d5f602084013e610193565b606091505b50825f0183602001829052821515151581525050508260200160208101906101bb919061067c565b806101c65750805f01515b610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610701565b60405180910390fd5b5080806001019150506100c2565b50505092915050565b60405180604001604052805f15158152602001606081525090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102605761025f61023f565b5b8235905067ffffffffffffffff81111561027d5761027c610243565b5b60208301915083602082028301111561029957610298610247565b5b9250929050565b5f5f602083850312156102b6576102b5610237565b5b5f83013567ffffffffffffffff8111156102d3576102d261023b565b5b6102df8582860161024b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b61032881610314565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103708261032e565b61037a8185610338565b935061038a818560208601610348565b61039381610356565b840191505092915050565b5f604083015f8301516103b35f86018261031f565b50602083015184820360208601526103cb8282610366565b9150508091505092915050565b5f6103e3838361039e565b905092915050565b5f602082019050919050565b5f610401826102eb565b61040b81856102f5565b93508360208202850161041d85610305565b805f5b85811015610458578484038952815161043985826103d8565b9450610444836103eb565b925060208a01995050600181019050610420565b50829750879550505050505092915050565b5f6020820190508181035f83015261048281846103f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f8235600160600383360303811261050b5761050a6104e4565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61054082610517565b9050919050565b61055081610536565b811461055a575f5ffd5b50565b5f8135905061056b81610547565b92915050565b5f6020828403121561058657610585610237565b5b5f6105938482850161055d565b91505092915050565b5f5f833560016020038436030381126105b8576105b76104e4565b5b80840192508235915067ffffffffffffffff8211156105da576105d96104e8565b5b6020830192506001820236038313156105f6576105f56104ec565b5b509250929050565b5f81905092915050565b828183375f83830152505050565b5f61062183856105fe565b935061062e838584610608565b82840190509392505050565b5f610646828486610616565b91508190509392505050565b61065b81610314565b8114610665575f5ffd5b50565b5f8135905061067681610652565b92915050565b5f6020828403121561069157610690610237565b5b5f61069e84828501610668565b91505092915050565b5f82825260208201905092915050565b7f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000005f82015250565b5f6106eb6016836106a7565b91506106f6826106b7565b602082019050919050565b5f6020820190508181035f830152610718816106df565b905091905056fea26469706673582212209ddbb6838c8796d947b7d0f0002c39ca76335215ca7f601f9a28cf1e4493240064736f6c63430008220033","sourceMap":"58:1258:118:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063e8bbf5d71461002d575b5f5ffd5b610047600480360381019061004291906102a0565b61005d565b604051610054919061046a565b60405180910390f35b60605f8383905090508067ffffffffffffffff8111156100805761007f61048a565b5b6040519080825280602002602001820160405280156100b957816020015b6100a661021c565b81526020019060019003908161009e5790505b509150365f5f90505b82811015610213575f8482815181106100de576100dd6104b7565b5b602002602001015190508686838181106100fb576100fa6104b7565b5b905060200281019061010d91906104f0565b9250825f0160208101906101219190610571565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610147919061059c565b60405161015592919061063a565b5f604051808303815f865af19150503d805f811461018e576040519150601f19603f3d011682016040523d82523d5f602084013e610193565b606091505b50825f0183602001829052821515151581525050508260200160208101906101bb919061067c565b806101c65750805f01515b610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610701565b60405180910390fd5b5080806001019150506100c2565b50505092915050565b60405180604001604052805f15158152602001606081525090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102605761025f61023f565b5b8235905067ffffffffffffffff81111561027d5761027c610243565b5b60208301915083602082028301111561029957610298610247565b5b9250929050565b5f5f602083850312156102b6576102b5610237565b5b5f83013567ffffffffffffffff8111156102d3576102d261023b565b5b6102df8582860161024b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b61032881610314565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103708261032e565b61037a8185610338565b935061038a818560208601610348565b61039381610356565b840191505092915050565b5f604083015f8301516103b35f86018261031f565b50602083015184820360208601526103cb8282610366565b9150508091505092915050565b5f6103e3838361039e565b905092915050565b5f602082019050919050565b5f610401826102eb565b61040b81856102f5565b93508360208202850161041d85610305565b805f5b85811015610458578484038952815161043985826103d8565b9450610444836103eb565b925060208a01995050600181019050610420565b50829750879550505050505092915050565b5f6020820190508181035f83015261048281846103f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f8235600160600383360303811261050b5761050a6104e4565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61054082610517565b9050919050565b61055081610536565b811461055a575f5ffd5b50565b5f8135905061056b81610547565b92915050565b5f6020828403121561058657610585610237565b5b5f6105938482850161055d565b91505092915050565b5f5f833560016020038436030381126105b8576105b76104e4565b5b80840192508235915067ffffffffffffffff8211156105da576105d96104e8565b5b6020830192506001820236038313156105f6576105f56104ec565b5b509250929050565b5f81905092915050565b828183375f83830152505050565b5f61062183856105fe565b935061062e838584610608565b82840190509392505050565b5f610646828486610616565b91508190509392505050565b61065b81610314565b8114610665575f5ffd5b50565b5f8135905061067681610652565b92915050565b5f6020828403121561069157610690610237565b5b5f61069e84828501610668565b91505092915050565b5f82825260208201905092915050565b7f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000005f82015250565b5f6106eb6016836106a7565b91506106f6826106b7565b602082019050919050565b5f6020820190508181035f830152610718816106df565b905091905056fea26469706673582212209ddbb6838c8796d947b7d0f0002c39ca76335215ca7f601f9a28cf1e4493240064736f6c63430008220033","sourceMap":"58:1258:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;635:679;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;693:26;731:14;748:5;;:12;;731:29;;796:6;783:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;770:33;;813:19;892:9;904:1;892:13;;887:421;911:6;907:1;:10;887:421;;;938:20;961:10;972:1;961:13;;;;;;;;:::i;:::-;;;;;;;;938:36;;996:5;;1002:1;996:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;988:16;;1056:5;:12;;;;;;;;;;:::i;:::-;:17;;1074:5;:14;;;;;;;;:::i;:::-;1056:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:6;:14;;1035:6;:17;;1018:71;;;;;;;;;;;;;1195:5;:18;;;;;;;;;;:::i;:::-;:36;;;;1217:6;:14;;;1195:36;1189:109;;1251:32;;;;;;;;;;:::i;:::-;;;;;;;;1189:109;924:384;919:3;;;;;;;887:421;;;;721:593;;635:679;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;734:593;832:8;842:6;892:3;885:4;877:6;873:17;869:27;859:122;;900:79;;:::i;:::-;859:122;1013:6;1000:20;990:30;;1043:18;1035:6;1032:30;1029:117;;;1065:79;;:::i;:::-;1029:117;1179:4;1171:6;1167:17;1155:29;;1233:3;1225:4;1217:6;1213:17;1203:8;1199:32;1196:41;1193:128;;;1240:79;;:::i;:::-;1193:128;734:593;;;;;:::o;1333:609::-;1444:6;1452;1501:2;1489:9;1480:7;1476:23;1472:32;1469:119;;;1507:79;;:::i;:::-;1469:119;1655:1;1644:9;1640:17;1627:31;1685:18;1677:6;1674:30;1671:117;;;1707:79;;:::i;:::-;1671:117;1820:105;1917:7;1908:6;1897:9;1893:22;1820:105;:::i;:::-;1802:123;;;;1598:337;1333:609;;;;;:::o;1948:139::-;2040:6;2074:5;2068:12;2058:22;;1948:139;;;:::o;2093:209::-;2217:11;2251:6;2246:3;2239:19;2291:4;2286:3;2282:14;2267:29;;2093:209;;;;:::o;2308:157::-;2400:4;2423:3;2415:11;;2453:4;2448:3;2444:14;2436:22;;2308:157;;;:::o;2471:90::-;2505:7;2548:5;2541:13;2534:21;2523:32;;2471:90;;;:::o;2567:99::-;2638:21;2653:5;2638:21;:::i;:::-;2633:3;2626:34;2567:99;;:::o;2672:98::-;2723:6;2757:5;2751:12;2741:22;;2672:98;;;:::o;2776:158::-;2849:11;2883:6;2878:3;2871:19;2923:4;2918:3;2914:14;2899:29;;2776:158;;;;:::o;2940:139::-;3029:6;3024:3;3019;3013:23;3070:1;3061:6;3056:3;3052:16;3045:27;2940:139;;;:::o;3085:102::-;3126:6;3177:2;3173:7;3168:2;3161:5;3157:14;3153:28;3143:38;;3085:102;;;:::o;3193:353::-;3269:3;3297:38;3329:5;3297:38;:::i;:::-;3351:60;3404:6;3399:3;3351:60;:::i;:::-;3344:67;;3420:65;3478:6;3473:3;3466:4;3459:5;3455:16;3420:65;:::i;:::-;3510:29;3532:6;3510:29;:::i;:::-;3505:3;3501:39;3494:46;;3273:273;3193:353;;;;:::o;3610:597::-;3719:3;3755:4;3750:3;3746:14;3845:4;3838:5;3834:16;3828:23;3864:57;3915:4;3910:3;3906:14;3892:12;3864:57;:::i;:::-;3770:161;4019:4;4012:5;4008:16;4002:23;4072:3;4066:4;4062:14;4055:4;4050:3;4046:14;4039:38;4098:71;4164:4;4150:12;4098:71;:::i;:::-;4090:79;;3941:239;4197:4;4190:11;;3724:483;3610:597;;;;:::o;4213:256::-;4332:10;4367:96;4459:3;4451:6;4367:96;:::i;:::-;4353:110;;4213:256;;;;:::o;4475:138::-;4570:4;4602;4597:3;4593:14;4585:22;;4475:138;;;:::o;4681:1111::-;4850:3;4879:79;4952:5;4879:79;:::i;:::-;4974:111;5078:6;5073:3;4974:111;:::i;:::-;4967:118;;5111:3;5156:4;5148:6;5144:17;5139:3;5135:27;5186:81;5261:5;5186:81;:::i;:::-;5290:7;5321:1;5306:441;5331:6;5328:1;5325:13;5306:441;;;5402:9;5396:4;5392:20;5387:3;5380:33;5453:6;5447:13;5481:114;5590:4;5575:13;5481:114;:::i;:::-;5473:122;;5618:85;5696:6;5618:85;:::i;:::-;5608:95;;5732:4;5727:3;5723:14;5716:21;;5366:381;5353:1;5350;5346:9;5341:14;;5306:441;;;5310:14;5763:4;5756:11;;5783:3;5776:10;;4855:937;;;;;4681:1111;;;;:::o;5798:473::-;5991:4;6029:2;6018:9;6014:18;6006:26;;6078:9;6072:4;6068:20;6064:1;6053:9;6049:17;6042:47;6106:158;6259:4;6250:6;6106:158;:::i;:::-;6098:166;;5798:473;;;;:::o;6277:180::-;6325:77;6322:1;6315:88;6422:4;6419:1;6412:15;6446:4;6443:1;6436:15;6463:180;6511:77;6508:1;6501:88;6608:4;6605:1;6598:15;6632:4;6629:1;6622:15;6649:117;6758:1;6755;6748:12;6772:117;6881:1;6878;6871:12;6895:117;7004:1;7001;6994:12;7018:391;7109:4;7163:11;7150:25;7263:1;7257:4;7253:12;7242:8;7226:14;7222:29;7218:48;7198:18;7194:73;7184:168;;7271:79;;:::i;:::-;7184:168;7383:18;7373:8;7369:33;7361:41;;7114:295;7018:391;;;;:::o;7415:126::-;7452:7;7492:42;7485:5;7481:54;7470:65;;7415:126;;;:::o;7547:96::-;7584:7;7613:24;7631:5;7613:24;:::i;:::-;7602:35;;7547:96;;;:::o;7649:122::-;7722:24;7740:5;7722:24;:::i;:::-;7715:5;7712:35;7702:63;;7761:1;7758;7751:12;7702:63;7649:122;:::o;7777:139::-;7823:5;7861:6;7848:20;7839:29;;7877:33;7904:5;7877:33;:::i;:::-;7777:139;;;;:::o;7922:329::-;7981:6;8030:2;8018:9;8009:7;8005:23;8001:32;7998:119;;;8036:79;;:::i;:::-;7998:119;8156:1;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8127:117;7922:329;;;;:::o;8257:724::-;8334:4;8340:6;8396:11;8383:25;8496:1;8490:4;8486:12;8475:8;8459:14;8455:29;8451:48;8431:18;8427:73;8417:168;;8504:79;;:::i;:::-;8417:168;8616:18;8606:8;8602:33;8594:41;;8668:4;8655:18;8645:28;;8696:18;8688:6;8685:30;8682:117;;;8718:79;;:::i;:::-;8682:117;8826:2;8820:4;8816:13;8808:21;;8883:4;8875:6;8871:17;8855:14;8851:38;8845:4;8841:49;8838:136;;;8893:79;;:::i;:::-;8838:136;8347:634;8257:724;;;;;:::o;8987:147::-;9088:11;9125:3;9110:18;;8987:147;;;;:::o;9140:148::-;9238:6;9233:3;9228;9215:30;9279:1;9270:6;9265:3;9261:16;9254:27;9140:148;;;:::o;9316:327::-;9430:3;9451:88;9532:6;9527:3;9451:88;:::i;:::-;9444:95;;9549:56;9598:6;9593:3;9586:5;9549:56;:::i;:::-;9630:6;9625:3;9621:16;9614:23;;9316:327;;;;;:::o;9649:291::-;9789:3;9811:103;9910:3;9901:6;9893;9811:103;:::i;:::-;9804:110;;9931:3;9924:10;;9649:291;;;;;:::o;9946:116::-;10016:21;10031:5;10016:21;:::i;:::-;10009:5;10006:32;9996:60;;10052:1;10049;10042:12;9996:60;9946:116;:::o;10068:133::-;10111:5;10149:6;10136:20;10127:29;;10165:30;10189:5;10165:30;:::i;:::-;10068:133;;;;:::o;10207:323::-;10263:6;10312:2;10300:9;10291:7;10287:23;10283:32;10280:119;;;10318:79;;:::i;:::-;10280:119;10438:1;10463:50;10505:7;10496:6;10485:9;10481:22;10463:50;:::i;:::-;10453:60;;10409:114;10207:323;;;;:::o;10536:169::-;10620:11;10654:6;10649:3;10642:19;10694:4;10689:3;10685:14;10670:29;;10536:169;;;;:::o;10711:172::-;10851:24;10847:1;10839:6;10835:14;10828:48;10711:172;:::o;10889:366::-;11031:3;11052:67;11116:2;11111:3;11052:67;:::i;:::-;11045:74;;11128:93;11217:3;11128:93;:::i;:::-;11246:2;11241:3;11237:12;11230:19;;10889:366;;;:::o;11261:419::-;11427:4;11465:2;11454:9;11450:18;11442:26;;11514:9;11508:4;11504:20;11500:1;11489:9;11485:17;11478:47;11542:131;11668:4;11542:131;:::i;:::-;11534:139;;11261:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"multicall((address,bool,bytes)[])":"e8bbf5d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"multicall\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multicall((address,bool,bytes)[])\":{\"params\":{\"calls\":\"Call\\u7ed3\\u6784\\u4f53\\u7ec4\\u6210\\u7684\\u6570\\u7ec4\"},\"returns\":{\"returnData\":\"Result\\u7ed3\\u6784\\u4f53\\u7ec4\\u6210\\u7684\\u6570\\u7ec4\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multicall((address,bool,bytes)[])\":{\"notice\":\"\\u5c06\\u591a\\u4e2a\\u8c03\\u7528\\uff08\\u652f\\u6301\\u4e0d\\u540c\\u5408\\u7ea6/\\u4e0d\\u540c\\u65b9\\u6cd5/\\u4e0d\\u540c\\u53c2\\u6570\\uff09\\u5408\\u5e76\\u5230\\u4e00\\u6b21\\u8c03\\u7528\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/55_MultiCall/MultiCall.sol\":\"Multicall\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/55_MultiCall/MultiCall.sol\":{\"keccak256\":\"0x21a1176513005a977b675f7e0918edccc9eb0bd8b3c4a92a63ca384db9924a81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae98562f13439ff5406065034e0ddfef5afb34d4cdf0e26dc2304dff93daa959\",\"dweb:/ipfs/Qmdg88wUMeP49zXHTBUfZTiX9qEdftiWcHwozf7a13vxZu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Multicall.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"multicall","outputs":[{"internalType":"struct Multicall.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{"multicall((address,bool,bytes)[])":{"params":{"calls":"Call结构体组成的数组"},"returns":{"returnData":"Result结构体组成的数组"}}},"version":1},"userdoc":{"kind":"user","methods":{"multicall((address,bool,bytes)[])":{"notice":"将多个调用(支持不同合约/不同方法/不同参数)合并到一次调用"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/55_MultiCall/MultiCall.sol":"Multicall"},"evmVersion":"prague","libraries":{}},"sources":{"src/55_MultiCall/MultiCall.sol":{"keccak256":"0x21a1176513005a977b675f7e0918edccc9eb0bd8b3c4a92a63ca384db9924a81","urls":["bzz-raw://ae98562f13439ff5406065034e0ddfef5afb34d4cdf0e26dc2304dff93daa959","dweb:/ipfs/Qmdg88wUMeP49zXHTBUfZTiX9qEdftiWcHwozf7a13vxZu"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file +{"abi":[{"type":"function","name":"multicall","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107558061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063e8bbf5d71461002d575b5f5ffd5b610047600480360381019061004291906102a0565b61005d565b604051610054919061046a565b60405180910390f35b60605f8383905090508067ffffffffffffffff8111156100805761007f61048a565b5b6040519080825280602002602001820160405280156100b957816020015b6100a661021c565b81526020019060019003908161009e5790505b509150365f5f90505b82811015610213575f8482815181106100de576100dd6104b7565b5b602002602001015190508686838181106100fb576100fa6104b7565b5b905060200281019061010d91906104f0565b9250825f0160208101906101219190610571565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610147919061059c565b60405161015592919061063a565b5f604051808303815f865af19150503d805f811461018e576040519150601f19603f3d011682016040523d82523d5f602084013e610193565b606091505b50825f0183602001829052821515151581525050508260200160208101906101bb919061067c565b806101c65750805f01515b610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610701565b60405180910390fd5b5080806001019150506100c2565b50505092915050565b60405180604001604052805f15158152602001606081525090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102605761025f61023f565b5b8235905067ffffffffffffffff81111561027d5761027c610243565b5b60208301915083602082028301111561029957610298610247565b5b9250929050565b5f5f602083850312156102b6576102b5610237565b5b5f83013567ffffffffffffffff8111156102d3576102d261023b565b5b6102df8582860161024b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b61032881610314565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103708261032e565b61037a8185610338565b935061038a818560208601610348565b61039381610356565b840191505092915050565b5f604083015f8301516103b35f86018261031f565b50602083015184820360208601526103cb8282610366565b9150508091505092915050565b5f6103e3838361039e565b905092915050565b5f602082019050919050565b5f610401826102eb565b61040b81856102f5565b93508360208202850161041d85610305565b805f5b85811015610458578484038952815161043985826103d8565b9450610444836103eb565b925060208a01995050600181019050610420565b50829750879550505050505092915050565b5f6020820190508181035f83015261048281846103f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f8235600160600383360303811261050b5761050a6104e4565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61054082610517565b9050919050565b61055081610536565b811461055a575f5ffd5b50565b5f8135905061056b81610547565b92915050565b5f6020828403121561058657610585610237565b5b5f6105938482850161055d565b91505092915050565b5f5f833560016020038436030381126105b8576105b76104e4565b5b80840192508235915067ffffffffffffffff8211156105da576105d96104e8565b5b6020830192506001820236038313156105f6576105f56104ec565b5b509250929050565b5f81905092915050565b828183375f83830152505050565b5f61062183856105fe565b935061062e838584610608565b82840190509392505050565b5f610646828486610616565b91508190509392505050565b61065b81610314565b8114610665575f5ffd5b50565b5f8135905061067681610652565b92915050565b5f6020828403121561069157610690610237565b5b5f61069e84828501610668565b91505092915050565b5f82825260208201905092915050565b7f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000005f82015250565b5f6106eb6016836106a7565b91506106f6826106b7565b602082019050919050565b5f6020820190508181035f830152610718816106df565b905091905056fea26469706673582212209ddbb6838c8796d947b7d0f0002c39ca76335215ca7f601f9a28cf1e4493240064736f6c63430008220033","sourceMap":"58:1258:112:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063e8bbf5d71461002d575b5f5ffd5b610047600480360381019061004291906102a0565b61005d565b604051610054919061046a565b60405180910390f35b60605f8383905090508067ffffffffffffffff8111156100805761007f61048a565b5b6040519080825280602002602001820160405280156100b957816020015b6100a661021c565b81526020019060019003908161009e5790505b509150365f5f90505b82811015610213575f8482815181106100de576100dd6104b7565b5b602002602001015190508686838181106100fb576100fa6104b7565b5b905060200281019061010d91906104f0565b9250825f0160208101906101219190610571565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610147919061059c565b60405161015592919061063a565b5f604051808303815f865af19150503d805f811461018e576040519150601f19603f3d011682016040523d82523d5f602084013e610193565b606091505b50825f0183602001829052821515151581525050508260200160208101906101bb919061067c565b806101c65750805f01515b610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610701565b60405180910390fd5b5080806001019150506100c2565b50505092915050565b60405180604001604052805f15158152602001606081525090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126102605761025f61023f565b5b8235905067ffffffffffffffff81111561027d5761027c610243565b5b60208301915083602082028301111561029957610298610247565b5b9250929050565b5f5f602083850312156102b6576102b5610237565b5b5f83013567ffffffffffffffff8111156102d3576102d261023b565b5b6102df8582860161024b565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f8115159050919050565b61032881610314565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103708261032e565b61037a8185610338565b935061038a818560208601610348565b61039381610356565b840191505092915050565b5f604083015f8301516103b35f86018261031f565b50602083015184820360208601526103cb8282610366565b9150508091505092915050565b5f6103e3838361039e565b905092915050565b5f602082019050919050565b5f610401826102eb565b61040b81856102f5565b93508360208202850161041d85610305565b805f5b85811015610458578484038952815161043985826103d8565b9450610444836103eb565b925060208a01995050600181019050610420565b50829750879550505050505092915050565b5f6020820190508181035f83015261048281846103f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f8235600160600383360303811261050b5761050a6104e4565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61054082610517565b9050919050565b61055081610536565b811461055a575f5ffd5b50565b5f8135905061056b81610547565b92915050565b5f6020828403121561058657610585610237565b5b5f6105938482850161055d565b91505092915050565b5f5f833560016020038436030381126105b8576105b76104e4565b5b80840192508235915067ffffffffffffffff8211156105da576105d96104e8565b5b6020830192506001820236038313156105f6576105f56104ec565b5b509250929050565b5f81905092915050565b828183375f83830152505050565b5f61062183856105fe565b935061062e838584610608565b82840190509392505050565b5f610646828486610616565b91508190509392505050565b61065b81610314565b8114610665575f5ffd5b50565b5f8135905061067681610652565b92915050565b5f6020828403121561069157610690610237565b5b5f61069e84828501610668565b91505092915050565b5f82825260208201905092915050565b7f4d756c746963616c6c3a2063616c6c206661696c6564000000000000000000005f82015250565b5f6106eb6016836106a7565b91506106f6826106b7565b602082019050919050565b5f6020820190508181035f830152610718816106df565b905091905056fea26469706673582212209ddbb6838c8796d947b7d0f0002c39ca76335215ca7f601f9a28cf1e4493240064736f6c63430008220033","sourceMap":"58:1258:112:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;635:679;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;693:26;731:14;748:5;;:12;;731:29;;796:6;783:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;770:33;;813:19;892:9;904:1;892:13;;887:421;911:6;907:1;:10;887:421;;;938:20;961:10;972:1;961:13;;;;;;;;:::i;:::-;;;;;;;;938:36;;996:5;;1002:1;996:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;988:16;;1056:5;:12;;;;;;;;;;:::i;:::-;:17;;1074:5;:14;;;;;;;;:::i;:::-;1056:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:6;:14;;1035:6;:17;;1018:71;;;;;;;;;;;;;1195:5;:18;;;;;;;;;;:::i;:::-;:36;;;;1217:6;:14;;;1195:36;1189:109;;1251:32;;;;;;;;;;:::i;:::-;;;;;;;;1189:109;924:384;919:3;;;;;;;887:421;;;;721:593;;635:679;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;734:593;832:8;842:6;892:3;885:4;877:6;873:17;869:27;859:122;;900:79;;:::i;:::-;859:122;1013:6;1000:20;990:30;;1043:18;1035:6;1032:30;1029:117;;;1065:79;;:::i;:::-;1029:117;1179:4;1171:6;1167:17;1155:29;;1233:3;1225:4;1217:6;1213:17;1203:8;1199:32;1196:41;1193:128;;;1240:79;;:::i;:::-;1193:128;734:593;;;;;:::o;1333:609::-;1444:6;1452;1501:2;1489:9;1480:7;1476:23;1472:32;1469:119;;;1507:79;;:::i;:::-;1469:119;1655:1;1644:9;1640:17;1627:31;1685:18;1677:6;1674:30;1671:117;;;1707:79;;:::i;:::-;1671:117;1820:105;1917:7;1908:6;1897:9;1893:22;1820:105;:::i;:::-;1802:123;;;;1598:337;1333:609;;;;;:::o;1948:139::-;2040:6;2074:5;2068:12;2058:22;;1948:139;;;:::o;2093:209::-;2217:11;2251:6;2246:3;2239:19;2291:4;2286:3;2282:14;2267:29;;2093:209;;;;:::o;2308:157::-;2400:4;2423:3;2415:11;;2453:4;2448:3;2444:14;2436:22;;2308:157;;;:::o;2471:90::-;2505:7;2548:5;2541:13;2534:21;2523:32;;2471:90;;;:::o;2567:99::-;2638:21;2653:5;2638:21;:::i;:::-;2633:3;2626:34;2567:99;;:::o;2672:98::-;2723:6;2757:5;2751:12;2741:22;;2672:98;;;:::o;2776:158::-;2849:11;2883:6;2878:3;2871:19;2923:4;2918:3;2914:14;2899:29;;2776:158;;;;:::o;2940:139::-;3029:6;3024:3;3019;3013:23;3070:1;3061:6;3056:3;3052:16;3045:27;2940:139;;;:::o;3085:102::-;3126:6;3177:2;3173:7;3168:2;3161:5;3157:14;3153:28;3143:38;;3085:102;;;:::o;3193:353::-;3269:3;3297:38;3329:5;3297:38;:::i;:::-;3351:60;3404:6;3399:3;3351:60;:::i;:::-;3344:67;;3420:65;3478:6;3473:3;3466:4;3459:5;3455:16;3420:65;:::i;:::-;3510:29;3532:6;3510:29;:::i;:::-;3505:3;3501:39;3494:46;;3273:273;3193:353;;;;:::o;3610:597::-;3719:3;3755:4;3750:3;3746:14;3845:4;3838:5;3834:16;3828:23;3864:57;3915:4;3910:3;3906:14;3892:12;3864:57;:::i;:::-;3770:161;4019:4;4012:5;4008:16;4002:23;4072:3;4066:4;4062:14;4055:4;4050:3;4046:14;4039:38;4098:71;4164:4;4150:12;4098:71;:::i;:::-;4090:79;;3941:239;4197:4;4190:11;;3724:483;3610:597;;;;:::o;4213:256::-;4332:10;4367:96;4459:3;4451:6;4367:96;:::i;:::-;4353:110;;4213:256;;;;:::o;4475:138::-;4570:4;4602;4597:3;4593:14;4585:22;;4475:138;;;:::o;4681:1111::-;4850:3;4879:79;4952:5;4879:79;:::i;:::-;4974:111;5078:6;5073:3;4974:111;:::i;:::-;4967:118;;5111:3;5156:4;5148:6;5144:17;5139:3;5135:27;5186:81;5261:5;5186:81;:::i;:::-;5290:7;5321:1;5306:441;5331:6;5328:1;5325:13;5306:441;;;5402:9;5396:4;5392:20;5387:3;5380:33;5453:6;5447:13;5481:114;5590:4;5575:13;5481:114;:::i;:::-;5473:122;;5618:85;5696:6;5618:85;:::i;:::-;5608:95;;5732:4;5727:3;5723:14;5716:21;;5366:381;5353:1;5350;5346:9;5341:14;;5306:441;;;5310:14;5763:4;5756:11;;5783:3;5776:10;;4855:937;;;;;4681:1111;;;;:::o;5798:473::-;5991:4;6029:2;6018:9;6014:18;6006:26;;6078:9;6072:4;6068:20;6064:1;6053:9;6049:17;6042:47;6106:158;6259:4;6250:6;6106:158;:::i;:::-;6098:166;;5798:473;;;;:::o;6277:180::-;6325:77;6322:1;6315:88;6422:4;6419:1;6412:15;6446:4;6443:1;6436:15;6463:180;6511:77;6508:1;6501:88;6608:4;6605:1;6598:15;6632:4;6629:1;6622:15;6649:117;6758:1;6755;6748:12;6772:117;6881:1;6878;6871:12;6895:117;7004:1;7001;6994:12;7018:391;7109:4;7163:11;7150:25;7263:1;7257:4;7253:12;7242:8;7226:14;7222:29;7218:48;7198:18;7194:73;7184:168;;7271:79;;:::i;:::-;7184:168;7383:18;7373:8;7369:33;7361:41;;7114:295;7018:391;;;;:::o;7415:126::-;7452:7;7492:42;7485:5;7481:54;7470:65;;7415:126;;;:::o;7547:96::-;7584:7;7613:24;7631:5;7613:24;:::i;:::-;7602:35;;7547:96;;;:::o;7649:122::-;7722:24;7740:5;7722:24;:::i;:::-;7715:5;7712:35;7702:63;;7761:1;7758;7751:12;7702:63;7649:122;:::o;7777:139::-;7823:5;7861:6;7848:20;7839:29;;7877:33;7904:5;7877:33;:::i;:::-;7777:139;;;;:::o;7922:329::-;7981:6;8030:2;8018:9;8009:7;8005:23;8001:32;7998:119;;;8036:79;;:::i;:::-;7998:119;8156:1;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8127:117;7922:329;;;;:::o;8257:724::-;8334:4;8340:6;8396:11;8383:25;8496:1;8490:4;8486:12;8475:8;8459:14;8455:29;8451:48;8431:18;8427:73;8417:168;;8504:79;;:::i;:::-;8417:168;8616:18;8606:8;8602:33;8594:41;;8668:4;8655:18;8645:28;;8696:18;8688:6;8685:30;8682:117;;;8718:79;;:::i;:::-;8682:117;8826:2;8820:4;8816:13;8808:21;;8883:4;8875:6;8871:17;8855:14;8851:38;8845:4;8841:49;8838:136;;;8893:79;;:::i;:::-;8838:136;8347:634;8257:724;;;;;:::o;8987:147::-;9088:11;9125:3;9110:18;;8987:147;;;;:::o;9140:148::-;9238:6;9233:3;9228;9215:30;9279:1;9270:6;9265:3;9261:16;9254:27;9140:148;;;:::o;9316:327::-;9430:3;9451:88;9532:6;9527:3;9451:88;:::i;:::-;9444:95;;9549:56;9598:6;9593:3;9586:5;9549:56;:::i;:::-;9630:6;9625:3;9621:16;9614:23;;9316:327;;;;;:::o;9649:291::-;9789:3;9811:103;9910:3;9901:6;9893;9811:103;:::i;:::-;9804:110;;9931:3;9924:10;;9649:291;;;;;:::o;9946:116::-;10016:21;10031:5;10016:21;:::i;:::-;10009:5;10006:32;9996:60;;10052:1;10049;10042:12;9996:60;9946:116;:::o;10068:133::-;10111:5;10149:6;10136:20;10127:29;;10165:30;10189:5;10165:30;:::i;:::-;10068:133;;;;:::o;10207:323::-;10263:6;10312:2;10300:9;10291:7;10287:23;10283:32;10280:119;;;10318:79;;:::i;:::-;10280:119;10438:1;10463:50;10505:7;10496:6;10485:9;10481:22;10463:50;:::i;:::-;10453:60;;10409:114;10207:323;;;;:::o;10536:169::-;10620:11;10654:6;10649:3;10642:19;10694:4;10689:3;10685:14;10670:29;;10536:169;;;;:::o;10711:172::-;10851:24;10847:1;10839:6;10835:14;10828:48;10711:172;:::o;10889:366::-;11031:3;11052:67;11116:2;11111:3;11052:67;:::i;:::-;11045:74;;11128:93;11217:3;11128:93;:::i;:::-;11246:2;11241:3;11237:12;11230:19;;10889:366;;;:::o;11261:419::-;11427:4;11465:2;11454:9;11450:18;11442:26;;11514:9;11508:4;11504:20;11500:1;11489:9;11485:17;11478:47;11542:131;11668:4;11542:131;:::i;:::-;11534:139;;11261:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"multicall((address,bool,bytes)[])":"e8bbf5d7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"multicall\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"multicall((address,bool,bytes)[])\":{\"params\":{\"calls\":\"Call\\u7ed3\\u6784\\u4f53\\u7ec4\\u6210\\u7684\\u6570\\u7ec4\"},\"returns\":{\"returnData\":\"Result\\u7ed3\\u6784\\u4f53\\u7ec4\\u6210\\u7684\\u6570\\u7ec4\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"multicall((address,bool,bytes)[])\":{\"notice\":\"\\u5c06\\u591a\\u4e2a\\u8c03\\u7528\\uff08\\u652f\\u6301\\u4e0d\\u540c\\u5408\\u7ea6/\\u4e0d\\u540c\\u65b9\\u6cd5/\\u4e0d\\u540c\\u53c2\\u6570\\uff09\\u5408\\u5e76\\u5230\\u4e00\\u6b21\\u8c03\\u7528\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/55_MultiCall/MultiCall.sol\":\"Multicall\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/55_MultiCall/MultiCall.sol\":{\"keccak256\":\"0x21a1176513005a977b675f7e0918edccc9eb0bd8b3c4a92a63ca384db9924a81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae98562f13439ff5406065034e0ddfef5afb34d4cdf0e26dc2304dff93daa959\",\"dweb:/ipfs/Qmdg88wUMeP49zXHTBUfZTiX9qEdftiWcHwozf7a13vxZu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Multicall.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"multicall","outputs":[{"internalType":"struct Multicall.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{"multicall((address,bool,bytes)[])":{"params":{"calls":"Call结构体组成的数组"},"returns":{"returnData":"Result结构体组成的数组"}}},"version":1},"userdoc":{"kind":"user","methods":{"multicall((address,bool,bytes)[])":{"notice":"将多个调用(支持不同合约/不同方法/不同参数)合并到一次调用"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/55_MultiCall/MultiCall.sol":"Multicall"},"evmVersion":"prague","libraries":{}},"sources":{"src/55_MultiCall/MultiCall.sol":{"keccak256":"0x21a1176513005a977b675f7e0918edccc9eb0bd8b3c4a92a63ca384db9924a81","urls":["bzz-raw://ae98562f13439ff5406065034e0ddfef5afb34d4cdf0e26dc2304dff93daa959","dweb:/ipfs/Qmdg88wUMeP49zXHTBUfZTiX9qEdftiWcHwozf7a13vxZu"],"license":"MIT"}},"version":1},"id":112} \ No newline at end of file diff --git a/out/MultisigWallet.sol/MultisigWallet.json b/out/MultisigWallet.sol/MultisigWallet.json index 8c5faea0..db8b2b1c 100644 --- a/out/MultisigWallet.sol/MultisigWallet.json +++ b/out/MultisigWallet.sol/MultisigWallet.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_owners","type":"address[]","internalType":"address[]"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"checkSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"encodeTransactionData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"chainid","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"execTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isOwner","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owners","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516115df3803806115df833981810160405281019061003191906104fd565b610041828261004860201b60201c565b5050610734565b5f6003541461008c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610083906105b1565b60405180910390fd5b81518111156100d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c790610619565b60405180910390fd5b6001811015610114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010b90610681565b60405180910390fd5b5f5f90505b82518110156102fb575f8382815181106101365761013561069f565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156101a857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156101fb575060015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610716565b60405180910390fd5b5f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550508080600101915050610119565b508151600281905550806003819055505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61036a82610324565b810181811067ffffffffffffffff8211171561038957610388610334565b5b80604052505050565b5f61039b61030f565b90506103a78282610361565b919050565b5f67ffffffffffffffff8211156103c6576103c5610334565b5b602082029050602081019050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610404826103db565b9050919050565b610414816103fa565b811461041e575f5ffd5b50565b5f8151905061042f8161040b565b92915050565b5f610447610442846103ac565b610392565b9050808382526020820190506020840283018581111561046a576104696103d7565b5b835b81811015610493578061047f8882610421565b84526020840193505060208101905061046c565b5050509392505050565b5f82601f8301126104b1576104b0610320565b5b81516104c1848260208601610435565b91505092915050565b5f819050919050565b6104dc816104ca565b81146104e6575f5ffd5b50565b5f815190506104f7816104d3565b92915050565b5f5f6040838503121561051357610512610318565b5b5f83015167ffffffffffffffff8111156105305761052f61031c565b5b61053c8582860161049d565b925050602061054d858286016104e9565b9150509250929050565b5f82825260208201905092915050565b7f57544635303030000000000000000000000000000000000000000000000000005f82015250565b5f61059b600783610557565b91506105a682610567565b602082019050919050565b5f6020820190508181035f8301526105c88161058f565b9050919050565b7f57544635303031000000000000000000000000000000000000000000000000005f82015250565b5f610603600783610557565b915061060e826105cf565b602082019050919050565b5f6020820190508181035f830152610630816105f7565b9050919050565b7f57544635303032000000000000000000000000000000000000000000000000005f82015250565b5f61066b600783610557565b915061067682610637565b602082019050919050565b5f6020820190508181035f8301526106988161065f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f57544635303033000000000000000000000000000000000000000000000000005f82015250565b5f610700600783610557565b915061070b826106cc565b602082019050919050565b5f6020820190508181035f83015261072d816106f4565b9050919050565b610e9e806107415f395ff3fe60806040526004361061007e575f3560e01c8063a67dd5091161004d578063a67dd50914610155578063affed0e014610191578063d01aa318146101bb578063ed516d51146101eb57610085565b8063025e7c27146100895780630db02622146100c55780632f54bf6e146100ef57806342cde4e81461012b57610085565b3661008557005b5f5ffd5b348015610094575f5ffd5b506100af60048036038101906100aa9190610668565b610213565b6040516100bc91906106d2565b60405180910390f35b3480156100d0575f5ffd5b506100d961024d565b6040516100e691906106fa565b60405180910390f35b3480156100fa575f5ffd5b506101156004803603810190610110919061073d565b610253565b6040516101229190610782565b60405180910390f35b348015610136575f5ffd5b5061013f610270565b60405161014c91906106fa565b60405180910390f35b348015610160575f5ffd5b5061017b600480360381019061017691906108d7565b610276565b6040516101889190610982565b60405180910390f35b34801561019c575f5ffd5b506101a56102bd565b6040516101b291906106fa565b60405180910390f35b6101d560048036038101906101d0919061099b565b6102c3565b6040516101e29190610782565b60405180910390f35b3480156101f6575f5ffd5b50610211600480360381019061020c9190610a61565b6103e5565b005b5f8181548110610221575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6001602052805f5260405f205f915054906101000a900460ff1681565b60035481565b5f5f868686805190602001208686604051602001610298959493929190610abb565b6040516020818303038152906040528051906020012090508091505095945050505050565b60045481565b5f5f6102d486868660045446610276565b905060045f8154809291906102e890610b39565b91905055506102f781846103e5565b8573ffffffffffffffffffffffffffffffffffffffff16858560405161031d9190610bd2565b5f6040518083038185875af1925050503d805f8114610357576040519150601f19603f3d011682016040523d82523d5f602084013e61035c565b606091505b50508092505081156103a4577fdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0816040516103979190610982565b60405180910390a16103dc565b7fdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32816040516103d39190610982565b60405180910390a15b50949350505050565b5f60035490505f811161042d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042490610c42565b60405180910390fd5b60418161043a9190610c60565b8251101561047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490610ceb565b60405180910390fd5b5f5f90505f5f5f5f5f5f90505b868110156105ec5761049c88826105f7565b8094508195508296505050506001896040516020016104bb9190610d7d565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516104f09493929190610dbd565b6020604051602081039080840390855afa158015610510573d5f5f3e3d5ffd5b5050506020604051035194508573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1611801561059d575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610e4a565b60405180910390fd5b849550808060010191505061048a565b505050505050505050565b5f5f5f8360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61064781610635565b8114610651575f5ffd5b50565b5f813590506106628161063e565b92915050565b5f6020828403121561067d5761067c61062d565b5b5f61068a84828501610654565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bc82610693565b9050919050565b6106cc816106b2565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b6106f481610635565b82525050565b5f60208201905061070d5f8301846106eb565b92915050565b61071c816106b2565b8114610726575f5ffd5b50565b5f8135905061073781610713565b92915050565b5f602082840312156107525761075161062d565b5b5f61075f84828501610729565b91505092915050565b5f8115159050919050565b61077c81610768565b82525050565b5f6020820190506107955f830184610773565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107e9826107a3565b810181811067ffffffffffffffff82111715610808576108076107b3565b5b80604052505050565b5f61081a610624565b905061082682826107e0565b919050565b5f67ffffffffffffffff821115610845576108446107b3565b5b61084e826107a3565b9050602081019050919050565b828183375f83830152505050565b5f61087b6108768461082b565b610811565b9050828152602081018484840111156108975761089661079f565b5b6108a284828561085b565b509392505050565b5f82601f8301126108be576108bd61079b565b5b81356108ce848260208601610869565b91505092915050565b5f5f5f5f5f60a086880312156108f0576108ef61062d565b5b5f6108fd88828901610729565b955050602061090e88828901610654565b945050604086013567ffffffffffffffff81111561092f5761092e610631565b5b61093b888289016108aa565b935050606061094c88828901610654565b925050608061095d88828901610654565b9150509295509295909350565b5f819050919050565b61097c8161096a565b82525050565b5f6020820190506109955f830184610973565b92915050565b5f5f5f5f608085870312156109b3576109b261062d565b5b5f6109c087828801610729565b94505060206109d187828801610654565b935050604085013567ffffffffffffffff8111156109f2576109f1610631565b5b6109fe878288016108aa565b925050606085013567ffffffffffffffff811115610a1f57610a1e610631565b5b610a2b878288016108aa565b91505092959194509250565b610a408161096a565b8114610a4a575f5ffd5b50565b5f81359050610a5b81610a37565b92915050565b5f5f60408385031215610a7757610a7661062d565b5b5f610a8485828601610a4d565b925050602083013567ffffffffffffffff811115610aa557610aa4610631565b5b610ab1858286016108aa565b9150509250929050565b5f60a082019050610ace5f8301886106c3565b610adb60208301876106eb565b610ae86040830186610973565b610af560608301856106eb565b610b0260808301846106eb565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4382610635565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b7557610b74610b0c565b5b600182019050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610bac82610b80565b610bb68185610b8a565b9350610bc6818560208601610b94565b80840191505092915050565b5f610bdd8284610ba2565b915081905092915050565b5f82825260208201905092915050565b7f57544635303035000000000000000000000000000000000000000000000000005f82015250565b5f610c2c600783610be8565b9150610c3782610bf8565b602082019050919050565b5f6020820190508181035f830152610c5981610c20565b9050919050565b5f610c6a82610635565b9150610c7583610635565b9250828202610c8381610635565b91508282048414831517610c9a57610c99610b0c565b5b5092915050565b7f57544635303036000000000000000000000000000000000000000000000000005f82015250565b5f610cd5600783610be8565b9150610ce082610ca1565b602082019050919050565b5f6020820190508181035f830152610d0281610cc9565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f610d47601c83610d09565b9150610d5282610d13565b601c82019050919050565b5f819050919050565b610d77610d728261096a565b610d5d565b82525050565b5f610d8782610d3b565b9150610d938284610d66565b60208201915081905092915050565b5f60ff82169050919050565b610db781610da2565b82525050565b5f608082019050610dd05f830187610973565b610ddd6020830186610dae565b610dea6040830185610973565b610df76060830184610973565b95945050505050565b7f57544635303037000000000000000000000000000000000000000000000000005f82015250565b5f610e34600783610be8565b9150610e3f82610e00565b602082019050919050565b5f6020820190508181035f830152610e6181610e28565b905091905056fea2646970667358221220ca5f7c0dc896ff97815753b3b75fbb0d662b0592c18d416b84eb37faf453dfc464736f6c63430008220033","sourceMap":"185:5717:109:-:0;;;896:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;994:33;1007:7;1016:10;994:12;;;:33;;:::i;:::-;896:138;;185:5717;;1235:783;1382:1;1369:9;;:14;1361:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;1486:7;:14;1472:10;:28;;1464:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;1584:1;1570:10;:15;;1562:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;1613:9;1625:1;1613:13;;1608:335;1632:7;:14;1628:1;:18;1608:335;;;1667:13;1683:7;1691:1;1683:10;;;;;;;;:::i;:::-;;;;;;;;1667:26;;1806:1;1789:19;;:5;:19;;;;:45;;;;;1829:4;1812:22;;:5;:22;;;;1789:45;:64;;;;;1839:7;:14;1847:5;1839:14;;;;;;;;;;;;;;;;;;;;;;;;;1838:15;1789:64;1781:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;1879:6;1891:5;1879:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:4;1911:7;:14;1919:5;1911:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;1653:290;1648:3;;;;;;;1608:335;;;;1965:7;:14;1952:10;:27;;;;2001:10;1989:9;:22;;;;1235:783;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:77::-;3324:7;3353:5;3342:16;;3287:77;;;:::o;3370:122::-;3443:24;3461:5;3443:24;:::i;:::-;3436:5;3433:35;3423:63;;3482:1;3479;3472:12;3423:63;3370:122;:::o;3498:143::-;3555:5;3586:6;3580:13;3571:22;;3602:33;3629:5;3602:33;:::i;:::-;3498:143;;;;:::o;3647:710::-;3751:6;3759;3808:2;3796:9;3787:7;3783:23;3779:32;3776:119;;;3814:79;;:::i;:::-;3776:119;3955:1;3944:9;3940:17;3934:24;3985:18;3977:6;3974:30;3971:117;;;4007:79;;:::i;:::-;3971:117;4112:89;4193:7;4184:6;4173:9;4169:22;4112:89;:::i;:::-;4102:99;;3905:306;4250:2;4276:64;4332:7;4323:6;4312:9;4308:22;4276:64;:::i;:::-;4266:74;;4221:129;3647:710;;;;;:::o;4363:169::-;4447:11;4481:6;4476:3;4469:19;4521:4;4516:3;4512:14;4497:29;;4363:169;;;;:::o;4538:157::-;4678:9;4674:1;4666:6;4662:14;4655:33;4538:157;:::o;4701:365::-;4843:3;4864:66;4928:1;4923:3;4864:66;:::i;:::-;4857:73;;4939:93;5028:3;4939:93;:::i;:::-;5057:2;5052:3;5048:12;5041:19;;4701:365;;;:::o;5072:419::-;5238:4;5276:2;5265:9;5261:18;5253:26;;5325:9;5319:4;5315:20;5311:1;5300:9;5296:17;5289:47;5353:131;5479:4;5353:131;:::i;:::-;5345:139;;5072:419;;;:::o;5497:157::-;5637:9;5633:1;5625:6;5621:14;5614:33;5497:157;:::o;5660:365::-;5802:3;5823:66;5887:1;5882:3;5823:66;:::i;:::-;5816:73;;5898:93;5987:3;5898:93;:::i;:::-;6016:2;6011:3;6007:12;6000:19;;5660:365;;;:::o;6031:419::-;6197:4;6235:2;6224:9;6220:18;6212:26;;6284:9;6278:4;6274:20;6270:1;6259:9;6255:17;6248:47;6312:131;6438:4;6312:131;:::i;:::-;6304:139;;6031:419;;;:::o;6456:157::-;6596:9;6592:1;6584:6;6580:14;6573:33;6456:157;:::o;6619:365::-;6761:3;6782:66;6846:1;6841:3;6782:66;:::i;:::-;6775:73;;6857:93;6946:3;6857:93;:::i;:::-;6975:2;6970:3;6966:12;6959:19;;6619:365;;;:::o;6990:419::-;7156:4;7194:2;7183:9;7179:18;7171:26;;7243:9;7237:4;7233:20;7229:1;7218:9;7214:17;7207:47;7271:131;7397:4;7271:131;:::i;:::-;7263:139;;6990:419;;;:::o;7415:180::-;7463:77;7460:1;7453:88;7560:4;7557:1;7550:15;7584:4;7581:1;7574:15;7601:157;7741:9;7737:1;7729:6;7725:14;7718:33;7601:157;:::o;7764:365::-;7906:3;7927:66;7991:1;7986:3;7927:66;:::i;:::-;7920:73;;8002:93;8091:3;8002:93;:::i;:::-;8120:2;8115:3;8111:12;8104:19;;7764:365;;;:::o;8135:419::-;8301:4;8339:2;8328:9;8324:18;8316:26;;8388:9;8382:4;8378:20;8374:1;8363:9;8359:17;8352:47;8416:131;8542:4;8416:131;:::i;:::-;8408:139;;8135:419;;;:::o;185:5717:109:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007e575f3560e01c8063a67dd5091161004d578063a67dd50914610155578063affed0e014610191578063d01aa318146101bb578063ed516d51146101eb57610085565b8063025e7c27146100895780630db02622146100c55780632f54bf6e146100ef57806342cde4e81461012b57610085565b3661008557005b5f5ffd5b348015610094575f5ffd5b506100af60048036038101906100aa9190610668565b610213565b6040516100bc91906106d2565b60405180910390f35b3480156100d0575f5ffd5b506100d961024d565b6040516100e691906106fa565b60405180910390f35b3480156100fa575f5ffd5b506101156004803603810190610110919061073d565b610253565b6040516101229190610782565b60405180910390f35b348015610136575f5ffd5b5061013f610270565b60405161014c91906106fa565b60405180910390f35b348015610160575f5ffd5b5061017b600480360381019061017691906108d7565b610276565b6040516101889190610982565b60405180910390f35b34801561019c575f5ffd5b506101a56102bd565b6040516101b291906106fa565b60405180910390f35b6101d560048036038101906101d0919061099b565b6102c3565b6040516101e29190610782565b60405180910390f35b3480156101f6575f5ffd5b50610211600480360381019061020c9190610a61565b6103e5565b005b5f8181548110610221575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6001602052805f5260405f205f915054906101000a900460ff1681565b60035481565b5f5f868686805190602001208686604051602001610298959493929190610abb565b6040516020818303038152906040528051906020012090508091505095945050505050565b60045481565b5f5f6102d486868660045446610276565b905060045f8154809291906102e890610b39565b91905055506102f781846103e5565b8573ffffffffffffffffffffffffffffffffffffffff16858560405161031d9190610bd2565b5f6040518083038185875af1925050503d805f8114610357576040519150601f19603f3d011682016040523d82523d5f602084013e61035c565b606091505b50508092505081156103a4577fdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0816040516103979190610982565b60405180910390a16103dc565b7fdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32816040516103d39190610982565b60405180910390a15b50949350505050565b5f60035490505f811161042d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042490610c42565b60405180910390fd5b60418161043a9190610c60565b8251101561047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490610ceb565b60405180910390fd5b5f5f90505f5f5f5f5f5f90505b868110156105ec5761049c88826105f7565b8094508195508296505050506001896040516020016104bb9190610d7d565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516104f09493929190610dbd565b6020604051602081039080840390855afa158015610510573d5f5f3e3d5ffd5b5050506020604051035194508573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1611801561059d575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610e4a565b60405180910390fd5b849550808060010191505061048a565b505050505050505050565b5f5f5f8360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61064781610635565b8114610651575f5ffd5b50565b5f813590506106628161063e565b92915050565b5f6020828403121561067d5761067c61062d565b5b5f61068a84828501610654565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bc82610693565b9050919050565b6106cc816106b2565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b6106f481610635565b82525050565b5f60208201905061070d5f8301846106eb565b92915050565b61071c816106b2565b8114610726575f5ffd5b50565b5f8135905061073781610713565b92915050565b5f602082840312156107525761075161062d565b5b5f61075f84828501610729565b91505092915050565b5f8115159050919050565b61077c81610768565b82525050565b5f6020820190506107955f830184610773565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107e9826107a3565b810181811067ffffffffffffffff82111715610808576108076107b3565b5b80604052505050565b5f61081a610624565b905061082682826107e0565b919050565b5f67ffffffffffffffff821115610845576108446107b3565b5b61084e826107a3565b9050602081019050919050565b828183375f83830152505050565b5f61087b6108768461082b565b610811565b9050828152602081018484840111156108975761089661079f565b5b6108a284828561085b565b509392505050565b5f82601f8301126108be576108bd61079b565b5b81356108ce848260208601610869565b91505092915050565b5f5f5f5f5f60a086880312156108f0576108ef61062d565b5b5f6108fd88828901610729565b955050602061090e88828901610654565b945050604086013567ffffffffffffffff81111561092f5761092e610631565b5b61093b888289016108aa565b935050606061094c88828901610654565b925050608061095d88828901610654565b9150509295509295909350565b5f819050919050565b61097c8161096a565b82525050565b5f6020820190506109955f830184610973565b92915050565b5f5f5f5f608085870312156109b3576109b261062d565b5b5f6109c087828801610729565b94505060206109d187828801610654565b935050604085013567ffffffffffffffff8111156109f2576109f1610631565b5b6109fe878288016108aa565b925050606085013567ffffffffffffffff811115610a1f57610a1e610631565b5b610a2b878288016108aa565b91505092959194509250565b610a408161096a565b8114610a4a575f5ffd5b50565b5f81359050610a5b81610a37565b92915050565b5f5f60408385031215610a7757610a7661062d565b5b5f610a8485828601610a4d565b925050602083013567ffffffffffffffff811115610aa557610aa4610631565b5b610ab1858286016108aa565b9150509250929050565b5f60a082019050610ace5f8301886106c3565b610adb60208301876106eb565b610ae86040830186610973565b610af560608301856106eb565b610b0260808301846106eb565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4382610635565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b7557610b74610b0c565b5b600182019050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610bac82610b80565b610bb68185610b8a565b9350610bc6818560208601610b94565b80840191505092915050565b5f610bdd8284610ba2565b915081905092915050565b5f82825260208201905092915050565b7f57544635303035000000000000000000000000000000000000000000000000005f82015250565b5f610c2c600783610be8565b9150610c3782610bf8565b602082019050919050565b5f6020820190508181035f830152610c5981610c20565b9050919050565b5f610c6a82610635565b9150610c7583610635565b9250828202610c8381610635565b91508282048414831517610c9a57610c99610b0c565b5b5092915050565b7f57544635303036000000000000000000000000000000000000000000000000005f82015250565b5f610cd5600783610be8565b9150610ce082610ca1565b602082019050919050565b5f6020820190508181035f830152610d0281610cc9565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f610d47601c83610d09565b9150610d5282610d13565b601c82019050919050565b5f819050919050565b610d77610d728261096a565b610d5d565b82525050565b5f610d8782610d3b565b9150610d938284610d66565b60208201915081905092915050565b5f60ff82169050919050565b610db781610da2565b82525050565b5f608082019050610dd05f830187610973565b610ddd6020830186610dae565b610dea6040830185610973565b610df76060830184610973565b95945050505050565b7f57544635303037000000000000000000000000000000000000000000000000005f82015250565b5f610e34600783610be8565b9150610e3f82610e00565b602082019050919050565b5f6020820190508181035f830152610e6181610e28565b905091905056fea2646970667358221220ca5f7c0dc896ff97815753b3b75fbb0d662b0592c18d416b84eb37faf453dfc464736f6c63430008220033","sourceMap":"185:5717:109:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;426:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;582:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;706:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2392:658;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3267:1208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;353:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;510:25::-;;;;:::o;426:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;582:24::-;;;;:::o;5423:477::-;5600:7;5619:18;5711:2;5735:5;5772:4;5762:15;;;;;;5799:6;5827:7;5679:173;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5652:214;;;;;;5619:247;;5883:10;5876:17;;;5423:477;;;;;;;:::o;706:20::-;;;;:::o;2392:658::-;2558:12;2627:14;2644:60;2666:2;2670:5;2677:4;2683:5;;2690:13;2644:21;:60::i;:::-;2627:77;;2714:5;;:7;;;;;;;;;:::i;:::-;;;;;;2747:35;2763:6;2771:10;2747:15;:35::i;:::-;2880:2;:7;;2895:5;2902:4;2880:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:41;;;;;2961:7;2957:86;;;2975:24;2992:6;2975:24;;;;;;:::i;:::-;;;;;;;;2957:86;;;3019:24;3036:6;3019:24;;;;;;:::i;:::-;;;;;;;;2957:86;2572:478;2392:658;;;;;;:::o;3267:1208::-;3415:18;3436:9;;3415:30;;3476:1;3463:10;:14;3455:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;3581:2;3568:10;:15;;;;:::i;:::-;3547:10;:17;:36;;3539:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3927:17;3955:1;3927:30;;3968:20;3998:7;4015:9;4034;4053;4081:1;4077:5;;4072:397;4088:10;4084:1;:14;4072:397;;;4131:29;4146:10;4158:1;4131:14;:29::i;:::-;4119:41;;;;;;;;;;;;4244:93;4317:8;4264:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;4254:73;;;;;;4329:1;4332;4335;4244:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:108;;4374:9;4359:24;;:12;:24;;;:49;;;;;4387:7;:21;4395:12;4387:21;;;;;;;;;;;;;;;;;;;;;;;;;4359:49;4351:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4446:12;4434:24;;4100:3;;;;;;;4072:397;;;3369:1106;;;;;;;3267:1208;;:::o;4625:540::-;4747:7;4768:9;4791;4939:3;4933:4;4929:14;5001:4;4987:12;4983:23;4971:10;4967:40;4961:47;4956:52;;5066:4;5052:12;5048:23;5036:10;5032:40;5026:47;5021:52;;5144:4;5135;5121:12;5117:23;5105:10;5101:40;5095:47;5091:58;5086:63;;4895:264;4625:540;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:122::-;2036:24;2054:5;2036:24;:::i;:::-;2029:5;2026:35;2016:63;;2075:1;2072;2065:12;2016:63;1963:122;:::o;2091:139::-;2137:5;2175:6;2162:20;2153:29;;2191:33;2218:5;2191:33;:::i;:::-;2091:139;;;;:::o;2236:329::-;2295:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;;:::i;:::-;2312:119;2470:1;2495:53;2540:7;2531:6;2520:9;2516:22;2495:53;:::i;:::-;2485:63;;2441:117;2236:329;;;;:::o;2571:90::-;2605:7;2648:5;2641:13;2634:21;2623:32;;2571:90;;;:::o;2667:109::-;2748:21;2763:5;2748:21;:::i;:::-;2743:3;2736:34;2667:109;;:::o;2782:210::-;2869:4;2907:2;2896:9;2892:18;2884:26;;2920:65;2982:1;2971:9;2967:17;2958:6;2920:65;:::i;:::-;2782:210;;;;:::o;2998:117::-;3107:1;3104;3097:12;3121:117;3230:1;3227;3220:12;3244:102;3285:6;3336:2;3332:7;3327:2;3320:5;3316:14;3312:28;3302:38;;3244:102;;;:::o;3352:180::-;3400:77;3397:1;3390:88;3497:4;3494:1;3487:15;3521:4;3518:1;3511:15;3538:281;3621:27;3643:4;3621:27;:::i;:::-;3613:6;3609:40;3751:6;3739:10;3736:22;3715:18;3703:10;3700:34;3697:62;3694:88;;;3762:18;;:::i;:::-;3694:88;3802:10;3798:2;3791:22;3581:238;3538:281;;:::o;3825:129::-;3859:6;3886:20;;:::i;:::-;3876:30;;3915:33;3943:4;3935:6;3915:33;:::i;:::-;3825:129;;;:::o;3960:307::-;4021:4;4111:18;4103:6;4100:30;4097:56;;;4133:18;;:::i;:::-;4097:56;4171:29;4193:6;4171:29;:::i;:::-;4163:37;;4255:4;4249;4245:15;4237:23;;3960:307;;;:::o;4273:148::-;4371:6;4366:3;4361;4348:30;4412:1;4403:6;4398:3;4394:16;4387:27;4273:148;;;:::o;4427:423::-;4504:5;4529:65;4545:48;4586:6;4545:48;:::i;:::-;4529:65;:::i;:::-;4520:74;;4617:6;4610:5;4603:21;4655:4;4648:5;4644:16;4693:3;4684:6;4679:3;4675:16;4672:25;4669:112;;;4700:79;;:::i;:::-;4669:112;4790:54;4837:6;4832:3;4827;4790:54;:::i;:::-;4510:340;4427:423;;;;;:::o;4869:338::-;4924:5;4973:3;4966:4;4958:6;4954:17;4950:27;4940:122;;4981:79;;:::i;:::-;4940:122;5098:6;5085:20;5123:78;5197:3;5189:6;5182:4;5174:6;5170:17;5123:78;:::i;:::-;5114:87;;4930:277;4869:338;;;;:::o;5213:1089::-;5317:6;5325;5333;5341;5349;5398:3;5386:9;5377:7;5373:23;5369:33;5366:120;;;5405:79;;:::i;:::-;5366:120;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5808:2;5797:9;5793:18;5780:32;5839:18;5831:6;5828:30;5825:117;;;5861:79;;:::i;:::-;5825:117;5966:62;6020:7;6011:6;6000:9;5996:22;5966:62;:::i;:::-;5956:72;;5751:287;6077:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6048:118;6205:3;6232:53;6277:7;6268:6;6257:9;6253:22;6232:53;:::i;:::-;6222:63;;6176:119;5213:1089;;;;;;;;:::o;6308:77::-;6345:7;6374:5;6363:16;;6308:77;;;:::o;6391:118::-;6478:24;6496:5;6478:24;:::i;:::-;6473:3;6466:37;6391:118;;:::o;6515:222::-;6608:4;6646:2;6635:9;6631:18;6623:26;;6659:71;6727:1;6716:9;6712:17;6703:6;6659:71;:::i;:::-;6515:222;;;;:::o;6743:1121::-;6847:6;6855;6863;6871;6920:3;6908:9;6899:7;6895:23;6891:33;6888:120;;;6927:79;;:::i;:::-;6888:120;7047:1;7072:53;7117:7;7108:6;7097:9;7093:22;7072:53;:::i;:::-;7062:63;;7018:117;7174:2;7200:53;7245:7;7236:6;7225:9;7221:22;7200:53;:::i;:::-;7190:63;;7145:118;7330:2;7319:9;7315:18;7302:32;7361:18;7353:6;7350:30;7347:117;;;7383:79;;:::i;:::-;7347:117;7488:62;7542:7;7533:6;7522:9;7518:22;7488:62;:::i;:::-;7478:72;;7273:287;7627:2;7616:9;7612:18;7599:32;7658:18;7650:6;7647:30;7644:117;;;7680:79;;:::i;:::-;7644:117;7785:62;7839:7;7830:6;7819:9;7815:22;7785:62;:::i;:::-;7775:72;;7570:287;6743:1121;;;;;;;:::o;7870:122::-;7943:24;7961:5;7943:24;:::i;:::-;7936:5;7933:35;7923:63;;7982:1;7979;7972:12;7923:63;7870:122;:::o;7998:139::-;8044:5;8082:6;8069:20;8060:29;;8098:33;8125:5;8098:33;:::i;:::-;7998:139;;;;:::o;8143:652::-;8220:6;8228;8277:2;8265:9;8256:7;8252:23;8248:32;8245:119;;;8283:79;;:::i;:::-;8245:119;8403:1;8428:53;8473:7;8464:6;8453:9;8449:22;8428:53;:::i;:::-;8418:63;;8374:117;8558:2;8547:9;8543:18;8530:32;8589:18;8581:6;8578:30;8575:117;;;8611:79;;:::i;:::-;8575:117;8716:62;8770:7;8761:6;8750:9;8746:22;8716:62;:::i;:::-;8706:72;;8501:287;8143:652;;;;;:::o;8801:664::-;9006:4;9044:3;9033:9;9029:19;9021:27;;9058:71;9126:1;9115:9;9111:17;9102:6;9058:71;:::i;:::-;9139:72;9207:2;9196:9;9192:18;9183:6;9139:72;:::i;:::-;9221;9289:2;9278:9;9274:18;9265:6;9221:72;:::i;:::-;9303;9371:2;9360:9;9356:18;9347:6;9303:72;:::i;:::-;9385:73;9453:3;9442:9;9438:19;9429:6;9385:73;:::i;:::-;8801:664;;;;;;;;:::o;9471:180::-;9519:77;9516:1;9509:88;9616:4;9613:1;9606:15;9640:4;9637:1;9630:15;9657:233;9696:3;9719:24;9737:5;9719:24;:::i;:::-;9710:33;;9765:66;9758:5;9755:77;9752:103;;9835:18;;:::i;:::-;9752:103;9882:1;9875:5;9871:13;9864:20;;9657:233;;;:::o;9896:98::-;9947:6;9981:5;9975:12;9965:22;;9896:98;;;:::o;10000:147::-;10101:11;10138:3;10123:18;;10000:147;;;;:::o;10153:139::-;10242:6;10237:3;10232;10226:23;10283:1;10274:6;10269:3;10265:16;10258:27;10153:139;;;:::o;10298:386::-;10402:3;10430:38;10462:5;10430:38;:::i;:::-;10484:88;10565:6;10560:3;10484:88;:::i;:::-;10477:95;;10581:65;10639:6;10634:3;10627:4;10620:5;10616:16;10581:65;:::i;:::-;10671:6;10666:3;10662:16;10655:23;;10406:278;10298:386;;;;:::o;10690:271::-;10820:3;10842:93;10931:3;10922:6;10842:93;:::i;:::-;10835:100;;10952:3;10945:10;;10690:271;;;;:::o;10967:169::-;11051:11;11085:6;11080:3;11073:19;11125:4;11120:3;11116:14;11101:29;;10967:169;;;;:::o;11142:157::-;11282:9;11278:1;11270:6;11266:14;11259:33;11142:157;:::o;11305:365::-;11447:3;11468:66;11532:1;11527:3;11468:66;:::i;:::-;11461:73;;11543:93;11632:3;11543:93;:::i;:::-;11661:2;11656:3;11652:12;11645:19;;11305:365;;;:::o;11676:419::-;11842:4;11880:2;11869:9;11865:18;11857:26;;11929:9;11923:4;11919:20;11915:1;11904:9;11900:17;11893:47;11957:131;12083:4;11957:131;:::i;:::-;11949:139;;11676:419;;;:::o;12101:410::-;12141:7;12164:20;12182:1;12164:20;:::i;:::-;12159:25;;12198:20;12216:1;12198:20;:::i;:::-;12193:25;;12253:1;12250;12246:9;12275:30;12293:11;12275:30;:::i;:::-;12264:41;;12454:1;12445:7;12441:15;12438:1;12435:22;12415:1;12408:9;12388:83;12365:139;;12484:18;;:::i;:::-;12365:139;12149:362;12101:410;;;;:::o;12517:157::-;12657:9;12653:1;12645:6;12641:14;12634:33;12517:157;:::o;12680:365::-;12822:3;12843:66;12907:1;12902:3;12843:66;:::i;:::-;12836:73;;12918:93;13007:3;12918:93;:::i;:::-;13036:2;13031:3;13027:12;13020:19;;12680:365;;;:::o;13051:419::-;13217:4;13255:2;13244:9;13240:18;13232:26;;13304:9;13298:4;13294:20;13290:1;13279:9;13275:17;13268:47;13332:131;13458:4;13332:131;:::i;:::-;13324:139;;13051:419;;;:::o;13476:148::-;13578:11;13615:3;13600:18;;13476:148;;;;:::o;13630:214::-;13770:66;13766:1;13758:6;13754:14;13747:90;13630:214;:::o;13850:402::-;14010:3;14031:85;14113:2;14108:3;14031:85;:::i;:::-;14024:92;;14125:93;14214:3;14125:93;:::i;:::-;14243:2;14238:3;14234:12;14227:19;;13850:402;;;:::o;14258:79::-;14297:7;14326:5;14315:16;;14258:79;;;:::o;14343:157::-;14448:45;14468:24;14486:5;14468:24;:::i;:::-;14448:45;:::i;:::-;14443:3;14436:58;14343:157;;:::o;14506:522::-;14719:3;14741:148;14885:3;14741:148;:::i;:::-;14734:155;;14899:75;14970:3;14961:6;14899:75;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;15019:3;15012:10;;14506:522;;;;:::o;15034:86::-;15069:7;15109:4;15102:5;15098:16;15087:27;;15034:86;;;:::o;15126:112::-;15209:22;15225:5;15209:22;:::i;:::-;15204:3;15197:35;15126:112;;:::o;15244:545::-;15417:4;15455:3;15444:9;15440:19;15432:27;;15469:71;15537:1;15526:9;15522:17;15513:6;15469:71;:::i;:::-;15550:68;15614:2;15603:9;15599:18;15590:6;15550:68;:::i;:::-;15628:72;15696:2;15685:9;15681:18;15672:6;15628:72;:::i;:::-;15710;15778:2;15767:9;15763:18;15754:6;15710:72;:::i;:::-;15244:545;;;;;;;:::o;15795:157::-;15935:9;15931:1;15923:6;15919:14;15912:33;15795:157;:::o;15958:365::-;16100:3;16121:66;16185:1;16180:3;16121:66;:::i;:::-;16114:73;;16196:93;16285:3;16196:93;:::i;:::-;16314:2;16309:3;16305:12;16298:19;;15958:365;;;:::o;16329:419::-;16495:4;16533:2;16522:9;16518:18;16510:26;;16582:9;16576:4;16572:20;16568:1;16557:9;16553:17;16546:47;16610:131;16736:4;16610:131;:::i;:::-;16602:139;;16329:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"checkSignatures(bytes32,bytes)":"ed516d51","encodeTransactionData(address,uint256,bytes,uint256,uint256)":"a67dd509","execTransaction(address,uint256,bytes,bytes)":"d01aa318","isOwner(address)":"2f54bf6e","nonce()":"affed0e0","ownerCount()":"0db02622","owners(uint256)":"025e7c27","threshold()":"42cde4e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"checkSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"name\":\"encodeTransactionData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"execTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ownerCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,bytes)\":{\"details\":\"\\u68c0\\u67e5\\u7b7e\\u540d\\u548c\\u4ea4\\u6613\\u6570\\u636e\\u662f\\u5426\\u5bf9\\u5e94\\u3002\\u5982\\u679c\\u662f\\u65e0\\u6548\\u7b7e\\u540d\\uff0c\\u4ea4\\u6613\\u4f1arevert\",\"params\":{\"dataHash\":\"\\u4ea4\\u6613\\u6570\\u636e\\u54c8\\u5e0c\",\"signatures\":\"\\u51e0\\u4e2a\\u591a\\u7b7e\\u7b7e\\u540d\\u6253\\u5305\\u5728\\u4e00\\u8d77\"}},\"encodeTransactionData(address,uint256,bytes,uint256,uint256)\":{\"details\":\"\\u7f16\\u7801\\u4ea4\\u6613\\u6570\\u636e\",\"params\":{\"_nonce\":\"\\u4ea4\\u6613\\u7684nonce.\",\"chainid\":\"\\u94feid\",\"data\":\"calldata\",\"to\":\"\\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\"msg.value\\uff0c\\u652f\\u4ed8\\u7684\\u4ee5\\u592a\\u574a\"},\"returns\":{\"_0\":\"\\u4ea4\\u6613\\u54c8\\u5e0cbytes.\"}},\"execTransaction(address,uint256,bytes,bytes)\":{\"details\":\"\\u5728\\u6536\\u96c6\\u8db3\\u591f\\u7684\\u591a\\u7b7e\\u7b7e\\u540d\\u540e\\uff0c\\u6267\\u884c\\u4ea4\\u6613\",\"params\":{\"data\":\"calldata\",\"signatures\":\"\\u6253\\u5305\\u7684\\u7b7e\\u540d\\uff0c\\u5bf9\\u5e94\\u7684\\u591a\\u7b7e\\u5730\\u5740\\u7531\\u5c0f\\u5230\\u8fbe\\uff0c\\u65b9\\u4fbf\\u68c0\\u67e5\\u3002 ({bytes32 r}{bytes32 s}{uint8 v}) (\\u7b2c\\u4e00\\u4e2a\\u591a\\u7b7e\\u7684\\u7b7e\\u540d, \\u7b2c\\u4e8c\\u4e2a\\u591a\\u7b7e\\u7684\\u7b7e\\u540d ... )\",\"to\":\"\\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\"msg.value\\uff0c\\u652f\\u4ed8\\u7684\\u4ee5\\u592a\\u574a\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"\\u57fa\\u4e8e\\u7b7e\\u540d\\u7684\\u591a\\u7b7e\\u94b1\\u5305\\uff0c\\u7531gnosis safe\\u5408\\u7ea6\\u7b80\\u5316\\u800c\\u6765\\uff0c\\u6559\\u5b66\\u4f7f\\u7528\\u3002\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/50_MultisigWallet/MultisigWallet.sol\":\"MultisigWallet\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/50_MultisigWallet/MultisigWallet.sol\":{\"keccak256\":\"0x52253024ca01aa1eb1617f9201189bbfbc04e57e3a4e0db8a30d15a500dbadc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f429af83547a0ebf340a0ab427dadd82cc15335b9119510936101171ed3911a\",\"dweb:/ipfs/QmcoXtiX2YeetBqXhgRLmPVQBhCgkXxex7RPtLCf1g1eq1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSignatures"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"chainid","type":"uint256"}],"stateMutability":"pure","type":"function","name":"encodeTransactionData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ownerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,bytes)":{"details":"检查签名和交易数据是否对应。如果是无效签名,交易会revert","params":{"dataHash":"交易数据哈希","signatures":"几个多签签名打包在一起"}},"encodeTransactionData(address,uint256,bytes,uint256,uint256)":{"details":"编码交易数据","params":{"_nonce":"交易的nonce.","chainid":"链id","data":"calldata","to":"目标合约地址","value":"msg.value,支付的以太坊"},"returns":{"_0":"交易哈希bytes."}},"execTransaction(address,uint256,bytes,bytes)":{"details":"在收集足够的多签签名后,执行交易","params":{"data":"calldata","signatures":"打包的签名,对应的多签地址由小到达,方便检查。 ({bytes32 r}{bytes32 s}{uint8 v}) (第一个多签的签名, 第二个多签的签名 ... )","to":"目标合约地址","value":"msg.value,支付的以太坊"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/50_MultisigWallet/MultisigWallet.sol":"MultisigWallet"},"evmVersion":"prague","libraries":{}},"sources":{"src/50_MultisigWallet/MultisigWallet.sol":{"keccak256":"0x52253024ca01aa1eb1617f9201189bbfbc04e57e3a4e0db8a30d15a500dbadc3","urls":["bzz-raw://7f429af83547a0ebf340a0ab427dadd82cc15335b9119510936101171ed3911a","dweb:/ipfs/QmcoXtiX2YeetBqXhgRLmPVQBhCgkXxex7RPtLCf1g1eq1"],"license":"MIT"}},"version":1},"id":109} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_owners","type":"address[]","internalType":"address[]"},{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"checkSignatures","inputs":[{"name":"dataHash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"encodeTransactionData","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"chainid","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"execTransaction","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"signatures","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"payable"},{"type":"function","name":"isOwner","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owners","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516115df3803806115df833981810160405281019061003191906104fd565b610041828261004860201b60201c565b5050610734565b5f6003541461008c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610083906105b1565b60405180910390fd5b81518111156100d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c790610619565b60405180910390fd5b6001811015610114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010b90610681565b60405180910390fd5b5f5f90505b82518110156102fb575f8382815181106101365761013561069f565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156101a857503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156101fb575060015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610716565b60405180910390fd5b5f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550508080600101915050610119565b508151600281905550806003819055505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61036a82610324565b810181811067ffffffffffffffff8211171561038957610388610334565b5b80604052505050565b5f61039b61030f565b90506103a78282610361565b919050565b5f67ffffffffffffffff8211156103c6576103c5610334565b5b602082029050602081019050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610404826103db565b9050919050565b610414816103fa565b811461041e575f5ffd5b50565b5f8151905061042f8161040b565b92915050565b5f610447610442846103ac565b610392565b9050808382526020820190506020840283018581111561046a576104696103d7565b5b835b81811015610493578061047f8882610421565b84526020840193505060208101905061046c565b5050509392505050565b5f82601f8301126104b1576104b0610320565b5b81516104c1848260208601610435565b91505092915050565b5f819050919050565b6104dc816104ca565b81146104e6575f5ffd5b50565b5f815190506104f7816104d3565b92915050565b5f5f6040838503121561051357610512610318565b5b5f83015167ffffffffffffffff8111156105305761052f61031c565b5b61053c8582860161049d565b925050602061054d858286016104e9565b9150509250929050565b5f82825260208201905092915050565b7f57544635303030000000000000000000000000000000000000000000000000005f82015250565b5f61059b600783610557565b91506105a682610567565b602082019050919050565b5f6020820190508181035f8301526105c88161058f565b9050919050565b7f57544635303031000000000000000000000000000000000000000000000000005f82015250565b5f610603600783610557565b915061060e826105cf565b602082019050919050565b5f6020820190508181035f830152610630816105f7565b9050919050565b7f57544635303032000000000000000000000000000000000000000000000000005f82015250565b5f61066b600783610557565b915061067682610637565b602082019050919050565b5f6020820190508181035f8301526106988161065f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f57544635303033000000000000000000000000000000000000000000000000005f82015250565b5f610700600783610557565b915061070b826106cc565b602082019050919050565b5f6020820190508181035f83015261072d816106f4565b9050919050565b610e9e806107415f395ff3fe60806040526004361061007e575f3560e01c8063a67dd5091161004d578063a67dd50914610155578063affed0e014610191578063d01aa318146101bb578063ed516d51146101eb57610085565b8063025e7c27146100895780630db02622146100c55780632f54bf6e146100ef57806342cde4e81461012b57610085565b3661008557005b5f5ffd5b348015610094575f5ffd5b506100af60048036038101906100aa9190610668565b610213565b6040516100bc91906106d2565b60405180910390f35b3480156100d0575f5ffd5b506100d961024d565b6040516100e691906106fa565b60405180910390f35b3480156100fa575f5ffd5b506101156004803603810190610110919061073d565b610253565b6040516101229190610782565b60405180910390f35b348015610136575f5ffd5b5061013f610270565b60405161014c91906106fa565b60405180910390f35b348015610160575f5ffd5b5061017b600480360381019061017691906108d7565b610276565b6040516101889190610982565b60405180910390f35b34801561019c575f5ffd5b506101a56102bd565b6040516101b291906106fa565b60405180910390f35b6101d560048036038101906101d0919061099b565b6102c3565b6040516101e29190610782565b60405180910390f35b3480156101f6575f5ffd5b50610211600480360381019061020c9190610a61565b6103e5565b005b5f8181548110610221575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6001602052805f5260405f205f915054906101000a900460ff1681565b60035481565b5f5f868686805190602001208686604051602001610298959493929190610abb565b6040516020818303038152906040528051906020012090508091505095945050505050565b60045481565b5f5f6102d486868660045446610276565b905060045f8154809291906102e890610b39565b91905055506102f781846103e5565b8573ffffffffffffffffffffffffffffffffffffffff16858560405161031d9190610bd2565b5f6040518083038185875af1925050503d805f8114610357576040519150601f19603f3d011682016040523d82523d5f602084013e61035c565b606091505b50508092505081156103a4577fdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0816040516103979190610982565b60405180910390a16103dc565b7fdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32816040516103d39190610982565b60405180910390a15b50949350505050565b5f60035490505f811161042d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042490610c42565b60405180910390fd5b60418161043a9190610c60565b8251101561047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490610ceb565b60405180910390fd5b5f5f90505f5f5f5f5f5f90505b868110156105ec5761049c88826105f7565b8094508195508296505050506001896040516020016104bb9190610d7d565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516104f09493929190610dbd565b6020604051602081039080840390855afa158015610510573d5f5f3e3d5ffd5b5050506020604051035194508573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1611801561059d575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610e4a565b60405180910390fd5b849550808060010191505061048a565b505050505050505050565b5f5f5f8360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61064781610635565b8114610651575f5ffd5b50565b5f813590506106628161063e565b92915050565b5f6020828403121561067d5761067c61062d565b5b5f61068a84828501610654565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bc82610693565b9050919050565b6106cc816106b2565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b6106f481610635565b82525050565b5f60208201905061070d5f8301846106eb565b92915050565b61071c816106b2565b8114610726575f5ffd5b50565b5f8135905061073781610713565b92915050565b5f602082840312156107525761075161062d565b5b5f61075f84828501610729565b91505092915050565b5f8115159050919050565b61077c81610768565b82525050565b5f6020820190506107955f830184610773565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107e9826107a3565b810181811067ffffffffffffffff82111715610808576108076107b3565b5b80604052505050565b5f61081a610624565b905061082682826107e0565b919050565b5f67ffffffffffffffff821115610845576108446107b3565b5b61084e826107a3565b9050602081019050919050565b828183375f83830152505050565b5f61087b6108768461082b565b610811565b9050828152602081018484840111156108975761089661079f565b5b6108a284828561085b565b509392505050565b5f82601f8301126108be576108bd61079b565b5b81356108ce848260208601610869565b91505092915050565b5f5f5f5f5f60a086880312156108f0576108ef61062d565b5b5f6108fd88828901610729565b955050602061090e88828901610654565b945050604086013567ffffffffffffffff81111561092f5761092e610631565b5b61093b888289016108aa565b935050606061094c88828901610654565b925050608061095d88828901610654565b9150509295509295909350565b5f819050919050565b61097c8161096a565b82525050565b5f6020820190506109955f830184610973565b92915050565b5f5f5f5f608085870312156109b3576109b261062d565b5b5f6109c087828801610729565b94505060206109d187828801610654565b935050604085013567ffffffffffffffff8111156109f2576109f1610631565b5b6109fe878288016108aa565b925050606085013567ffffffffffffffff811115610a1f57610a1e610631565b5b610a2b878288016108aa565b91505092959194509250565b610a408161096a565b8114610a4a575f5ffd5b50565b5f81359050610a5b81610a37565b92915050565b5f5f60408385031215610a7757610a7661062d565b5b5f610a8485828601610a4d565b925050602083013567ffffffffffffffff811115610aa557610aa4610631565b5b610ab1858286016108aa565b9150509250929050565b5f60a082019050610ace5f8301886106c3565b610adb60208301876106eb565b610ae86040830186610973565b610af560608301856106eb565b610b0260808301846106eb565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4382610635565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b7557610b74610b0c565b5b600182019050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610bac82610b80565b610bb68185610b8a565b9350610bc6818560208601610b94565b80840191505092915050565b5f610bdd8284610ba2565b915081905092915050565b5f82825260208201905092915050565b7f57544635303035000000000000000000000000000000000000000000000000005f82015250565b5f610c2c600783610be8565b9150610c3782610bf8565b602082019050919050565b5f6020820190508181035f830152610c5981610c20565b9050919050565b5f610c6a82610635565b9150610c7583610635565b9250828202610c8381610635565b91508282048414831517610c9a57610c99610b0c565b5b5092915050565b7f57544635303036000000000000000000000000000000000000000000000000005f82015250565b5f610cd5600783610be8565b9150610ce082610ca1565b602082019050919050565b5f6020820190508181035f830152610d0281610cc9565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f610d47601c83610d09565b9150610d5282610d13565b601c82019050919050565b5f819050919050565b610d77610d728261096a565b610d5d565b82525050565b5f610d8782610d3b565b9150610d938284610d66565b60208201915081905092915050565b5f60ff82169050919050565b610db781610da2565b82525050565b5f608082019050610dd05f830187610973565b610ddd6020830186610dae565b610dea6040830185610973565b610df76060830184610973565b95945050505050565b7f57544635303037000000000000000000000000000000000000000000000000005f82015250565b5f610e34600783610be8565b9150610e3f82610e00565b602082019050919050565b5f6020820190508181035f830152610e6181610e28565b905091905056fea2646970667358221220ca5f7c0dc896ff97815753b3b75fbb0d662b0592c18d416b84eb37faf453dfc464736f6c63430008220033","sourceMap":"185:5717:103:-:0;;;896:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;994:33;1007:7;1016:10;994:12;;;:33;;:::i;:::-;896:138;;185:5717;;1235:783;1382:1;1369:9;;:14;1361:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;1486:7;:14;1472:10;:28;;1464:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;1584:1;1570:10;:15;;1562:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;1613:9;1625:1;1613:13;;1608:335;1632:7;:14;1628:1;:18;1608:335;;;1667:13;1683:7;1691:1;1683:10;;;;;;;;:::i;:::-;;;;;;;;1667:26;;1806:1;1789:19;;:5;:19;;;;:45;;;;;1829:4;1812:22;;:5;:22;;;;1789:45;:64;;;;;1839:7;:14;1847:5;1839:14;;;;;;;;;;;;;;;;;;;;;;;;;1838:15;1789:64;1781:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;1879:6;1891:5;1879:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:4;1911:7;:14;1919:5;1911:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;1653:290;1648:3;;;;;;;1608:335;;;;1965:7;:14;1952:10;:27;;;;2001:10;1989:9;:22;;;;1235:783;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:77::-;3324:7;3353:5;3342:16;;3287:77;;;:::o;3370:122::-;3443:24;3461:5;3443:24;:::i;:::-;3436:5;3433:35;3423:63;;3482:1;3479;3472:12;3423:63;3370:122;:::o;3498:143::-;3555:5;3586:6;3580:13;3571:22;;3602:33;3629:5;3602:33;:::i;:::-;3498:143;;;;:::o;3647:710::-;3751:6;3759;3808:2;3796:9;3787:7;3783:23;3779:32;3776:119;;;3814:79;;:::i;:::-;3776:119;3955:1;3944:9;3940:17;3934:24;3985:18;3977:6;3974:30;3971:117;;;4007:79;;:::i;:::-;3971:117;4112:89;4193:7;4184:6;4173:9;4169:22;4112:89;:::i;:::-;4102:99;;3905:306;4250:2;4276:64;4332:7;4323:6;4312:9;4308:22;4276:64;:::i;:::-;4266:74;;4221:129;3647:710;;;;;:::o;4363:169::-;4447:11;4481:6;4476:3;4469:19;4521:4;4516:3;4512:14;4497:29;;4363:169;;;;:::o;4538:157::-;4678:9;4674:1;4666:6;4662:14;4655:33;4538:157;:::o;4701:365::-;4843:3;4864:66;4928:1;4923:3;4864:66;:::i;:::-;4857:73;;4939:93;5028:3;4939:93;:::i;:::-;5057:2;5052:3;5048:12;5041:19;;4701:365;;;:::o;5072:419::-;5238:4;5276:2;5265:9;5261:18;5253:26;;5325:9;5319:4;5315:20;5311:1;5300:9;5296:17;5289:47;5353:131;5479:4;5353:131;:::i;:::-;5345:139;;5072:419;;;:::o;5497:157::-;5637:9;5633:1;5625:6;5621:14;5614:33;5497:157;:::o;5660:365::-;5802:3;5823:66;5887:1;5882:3;5823:66;:::i;:::-;5816:73;;5898:93;5987:3;5898:93;:::i;:::-;6016:2;6011:3;6007:12;6000:19;;5660:365;;;:::o;6031:419::-;6197:4;6235:2;6224:9;6220:18;6212:26;;6284:9;6278:4;6274:20;6270:1;6259:9;6255:17;6248:47;6312:131;6438:4;6312:131;:::i;:::-;6304:139;;6031:419;;;:::o;6456:157::-;6596:9;6592:1;6584:6;6580:14;6573:33;6456:157;:::o;6619:365::-;6761:3;6782:66;6846:1;6841:3;6782:66;:::i;:::-;6775:73;;6857:93;6946:3;6857:93;:::i;:::-;6975:2;6970:3;6966:12;6959:19;;6619:365;;;:::o;6990:419::-;7156:4;7194:2;7183:9;7179:18;7171:26;;7243:9;7237:4;7233:20;7229:1;7218:9;7214:17;7207:47;7271:131;7397:4;7271:131;:::i;:::-;7263:139;;6990:419;;;:::o;7415:180::-;7463:77;7460:1;7453:88;7560:4;7557:1;7550:15;7584:4;7581:1;7574:15;7601:157;7741:9;7737:1;7729:6;7725:14;7718:33;7601:157;:::o;7764:365::-;7906:3;7927:66;7991:1;7986:3;7927:66;:::i;:::-;7920:73;;8002:93;8091:3;8002:93;:::i;:::-;8120:2;8115:3;8111:12;8104:19;;7764:365;;;:::o;8135:419::-;8301:4;8339:2;8328:9;8324:18;8316:26;;8388:9;8382:4;8378:20;8374:1;8363:9;8359:17;8352:47;8416:131;8542:4;8416:131;:::i;:::-;8408:139;;8135:419;;;:::o;185:5717:103:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007e575f3560e01c8063a67dd5091161004d578063a67dd50914610155578063affed0e014610191578063d01aa318146101bb578063ed516d51146101eb57610085565b8063025e7c27146100895780630db02622146100c55780632f54bf6e146100ef57806342cde4e81461012b57610085565b3661008557005b5f5ffd5b348015610094575f5ffd5b506100af60048036038101906100aa9190610668565b610213565b6040516100bc91906106d2565b60405180910390f35b3480156100d0575f5ffd5b506100d961024d565b6040516100e691906106fa565b60405180910390f35b3480156100fa575f5ffd5b506101156004803603810190610110919061073d565b610253565b6040516101229190610782565b60405180910390f35b348015610136575f5ffd5b5061013f610270565b60405161014c91906106fa565b60405180910390f35b348015610160575f5ffd5b5061017b600480360381019061017691906108d7565b610276565b6040516101889190610982565b60405180910390f35b34801561019c575f5ffd5b506101a56102bd565b6040516101b291906106fa565b60405180910390f35b6101d560048036038101906101d0919061099b565b6102c3565b6040516101e29190610782565b60405180910390f35b3480156101f6575f5ffd5b50610211600480360381019061020c9190610a61565b6103e5565b005b5f8181548110610221575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6001602052805f5260405f205f915054906101000a900460ff1681565b60035481565b5f5f868686805190602001208686604051602001610298959493929190610abb565b6040516020818303038152906040528051906020012090508091505095945050505050565b60045481565b5f5f6102d486868660045446610276565b905060045f8154809291906102e890610b39565b91905055506102f781846103e5565b8573ffffffffffffffffffffffffffffffffffffffff16858560405161031d9190610bd2565b5f6040518083038185875af1925050503d805f8114610357576040519150601f19603f3d011682016040523d82523d5f602084013e61035c565b606091505b50508092505081156103a4577fdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0816040516103979190610982565b60405180910390a16103dc565b7fdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32816040516103d39190610982565b60405180910390a15b50949350505050565b5f60035490505f811161042d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042490610c42565b60405180910390fd5b60418161043a9190610c60565b8251101561047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047490610ceb565b60405180910390fd5b5f5f90505f5f5f5f5f5f90505b868110156105ec5761049c88826105f7565b8094508195508296505050506001896040516020016104bb9190610d7d565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516104f09493929190610dbd565b6020604051602081039080840390855afa158015610510573d5f5f3e3d5ffd5b5050506020604051035194508573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1611801561059d575060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d390610e4a565b60405180910390fd5b849550808060010191505061048a565b505050505050505050565b5f5f5f8360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61064781610635565b8114610651575f5ffd5b50565b5f813590506106628161063e565b92915050565b5f6020828403121561067d5761067c61062d565b5b5f61068a84828501610654565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bc82610693565b9050919050565b6106cc816106b2565b82525050565b5f6020820190506106e55f8301846106c3565b92915050565b6106f481610635565b82525050565b5f60208201905061070d5f8301846106eb565b92915050565b61071c816106b2565b8114610726575f5ffd5b50565b5f8135905061073781610713565b92915050565b5f602082840312156107525761075161062d565b5b5f61075f84828501610729565b91505092915050565b5f8115159050919050565b61077c81610768565b82525050565b5f6020820190506107955f830184610773565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107e9826107a3565b810181811067ffffffffffffffff82111715610808576108076107b3565b5b80604052505050565b5f61081a610624565b905061082682826107e0565b919050565b5f67ffffffffffffffff821115610845576108446107b3565b5b61084e826107a3565b9050602081019050919050565b828183375f83830152505050565b5f61087b6108768461082b565b610811565b9050828152602081018484840111156108975761089661079f565b5b6108a284828561085b565b509392505050565b5f82601f8301126108be576108bd61079b565b5b81356108ce848260208601610869565b91505092915050565b5f5f5f5f5f60a086880312156108f0576108ef61062d565b5b5f6108fd88828901610729565b955050602061090e88828901610654565b945050604086013567ffffffffffffffff81111561092f5761092e610631565b5b61093b888289016108aa565b935050606061094c88828901610654565b925050608061095d88828901610654565b9150509295509295909350565b5f819050919050565b61097c8161096a565b82525050565b5f6020820190506109955f830184610973565b92915050565b5f5f5f5f608085870312156109b3576109b261062d565b5b5f6109c087828801610729565b94505060206109d187828801610654565b935050604085013567ffffffffffffffff8111156109f2576109f1610631565b5b6109fe878288016108aa565b925050606085013567ffffffffffffffff811115610a1f57610a1e610631565b5b610a2b878288016108aa565b91505092959194509250565b610a408161096a565b8114610a4a575f5ffd5b50565b5f81359050610a5b81610a37565b92915050565b5f5f60408385031215610a7757610a7661062d565b5b5f610a8485828601610a4d565b925050602083013567ffffffffffffffff811115610aa557610aa4610631565b5b610ab1858286016108aa565b9150509250929050565b5f60a082019050610ace5f8301886106c3565b610adb60208301876106eb565b610ae86040830186610973565b610af560608301856106eb565b610b0260808301846106eb565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4382610635565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b7557610b74610b0c565b5b600182019050919050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610bac82610b80565b610bb68185610b8a565b9350610bc6818560208601610b94565b80840191505092915050565b5f610bdd8284610ba2565b915081905092915050565b5f82825260208201905092915050565b7f57544635303035000000000000000000000000000000000000000000000000005f82015250565b5f610c2c600783610be8565b9150610c3782610bf8565b602082019050919050565b5f6020820190508181035f830152610c5981610c20565b9050919050565b5f610c6a82610635565b9150610c7583610635565b9250828202610c8381610635565b91508282048414831517610c9a57610c99610b0c565b5b5092915050565b7f57544635303036000000000000000000000000000000000000000000000000005f82015250565b5f610cd5600783610be8565b9150610ce082610ca1565b602082019050919050565b5f6020820190508181035f830152610d0281610cc9565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f610d47601c83610d09565b9150610d5282610d13565b601c82019050919050565b5f819050919050565b610d77610d728261096a565b610d5d565b82525050565b5f610d8782610d3b565b9150610d938284610d66565b60208201915081905092915050565b5f60ff82169050919050565b610db781610da2565b82525050565b5f608082019050610dd05f830187610973565b610ddd6020830186610dae565b610dea6040830185610973565b610df76060830184610973565b95945050505050565b7f57544635303037000000000000000000000000000000000000000000000000005f82015250565b5f610e34600783610be8565b9150610e3f82610e00565b602082019050919050565b5f6020820190508181035f830152610e6181610e28565b905091905056fea2646970667358221220ca5f7c0dc896ff97815753b3b75fbb0d662b0592c18d416b84eb37faf453dfc464736f6c63430008220033","sourceMap":"185:5717:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;426:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;582:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;706:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2392:658;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3267:1208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;353:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;510:25::-;;;;:::o;426:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;582:24::-;;;;:::o;5423:477::-;5600:7;5619:18;5711:2;5735:5;5772:4;5762:15;;;;;;5799:6;5827:7;5679:173;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5652:214;;;;;;5619:247;;5883:10;5876:17;;;5423:477;;;;;;;:::o;706:20::-;;;;:::o;2392:658::-;2558:12;2627:14;2644:60;2666:2;2670:5;2677:4;2683:5;;2690:13;2644:21;:60::i;:::-;2627:77;;2714:5;;:7;;;;;;;;;:::i;:::-;;;;;;2747:35;2763:6;2771:10;2747:15;:35::i;:::-;2880:2;:7;;2895:5;2902:4;2880:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2866:41;;;;;2961:7;2957:86;;;2975:24;2992:6;2975:24;;;;;;:::i;:::-;;;;;;;;2957:86;;;3019:24;3036:6;3019:24;;;;;;:::i;:::-;;;;;;;;2957:86;2572:478;2392:658;;;;;;:::o;3267:1208::-;3415:18;3436:9;;3415:30;;3476:1;3463:10;:14;3455:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;3581:2;3568:10;:15;;;;:::i;:::-;3547:10;:17;:36;;3539:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3927:17;3955:1;3927:30;;3968:20;3998:7;4015:9;4034;4053;4081:1;4077:5;;4072:397;4088:10;4084:1;:14;4072:397;;;4131:29;4146:10;4158:1;4131:14;:29::i;:::-;4119:41;;;;;;;;;;;;4244:93;4317:8;4264:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;4254:73;;;;;;4329:1;4332;4335;4244:93;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:108;;4374:9;4359:24;;:12;:24;;;:49;;;;;4387:7;:21;4395:12;4387:21;;;;;;;;;;;;;;;;;;;;;;;;;4359:49;4351:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4446:12;4434:24;;4100:3;;;;;;;4072:397;;;3369:1106;;;;;;;3267:1208;;:::o;4625:540::-;4747:7;4768:9;4791;4939:3;4933:4;4929:14;5001:4;4987:12;4983:23;4971:10;4967:40;4961:47;4956:52;;5066:4;5052:12;5048:23;5036:10;5032:40;5026:47;5021:52;;5144:4;5135;5121:12;5117:23;5105:10;5101:40;5095:47;5091:58;5086:63;;4895:264;4625:540;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:122::-;2036:24;2054:5;2036:24;:::i;:::-;2029:5;2026:35;2016:63;;2075:1;2072;2065:12;2016:63;1963:122;:::o;2091:139::-;2137:5;2175:6;2162:20;2153:29;;2191:33;2218:5;2191:33;:::i;:::-;2091:139;;;;:::o;2236:329::-;2295:6;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;;:::i;:::-;2312:119;2470:1;2495:53;2540:7;2531:6;2520:9;2516:22;2495:53;:::i;:::-;2485:63;;2441:117;2236:329;;;;:::o;2571:90::-;2605:7;2648:5;2641:13;2634:21;2623:32;;2571:90;;;:::o;2667:109::-;2748:21;2763:5;2748:21;:::i;:::-;2743:3;2736:34;2667:109;;:::o;2782:210::-;2869:4;2907:2;2896:9;2892:18;2884:26;;2920:65;2982:1;2971:9;2967:17;2958:6;2920:65;:::i;:::-;2782:210;;;;:::o;2998:117::-;3107:1;3104;3097:12;3121:117;3230:1;3227;3220:12;3244:102;3285:6;3336:2;3332:7;3327:2;3320:5;3316:14;3312:28;3302:38;;3244:102;;;:::o;3352:180::-;3400:77;3397:1;3390:88;3497:4;3494:1;3487:15;3521:4;3518:1;3511:15;3538:281;3621:27;3643:4;3621:27;:::i;:::-;3613:6;3609:40;3751:6;3739:10;3736:22;3715:18;3703:10;3700:34;3697:62;3694:88;;;3762:18;;:::i;:::-;3694:88;3802:10;3798:2;3791:22;3581:238;3538:281;;:::o;3825:129::-;3859:6;3886:20;;:::i;:::-;3876:30;;3915:33;3943:4;3935:6;3915:33;:::i;:::-;3825:129;;;:::o;3960:307::-;4021:4;4111:18;4103:6;4100:30;4097:56;;;4133:18;;:::i;:::-;4097:56;4171:29;4193:6;4171:29;:::i;:::-;4163:37;;4255:4;4249;4245:15;4237:23;;3960:307;;;:::o;4273:148::-;4371:6;4366:3;4361;4348:30;4412:1;4403:6;4398:3;4394:16;4387:27;4273:148;;;:::o;4427:423::-;4504:5;4529:65;4545:48;4586:6;4545:48;:::i;:::-;4529:65;:::i;:::-;4520:74;;4617:6;4610:5;4603:21;4655:4;4648:5;4644:16;4693:3;4684:6;4679:3;4675:16;4672:25;4669:112;;;4700:79;;:::i;:::-;4669:112;4790:54;4837:6;4832:3;4827;4790:54;:::i;:::-;4510:340;4427:423;;;;;:::o;4869:338::-;4924:5;4973:3;4966:4;4958:6;4954:17;4950:27;4940:122;;4981:79;;:::i;:::-;4940:122;5098:6;5085:20;5123:78;5197:3;5189:6;5182:4;5174:6;5170:17;5123:78;:::i;:::-;5114:87;;4930:277;4869:338;;;;:::o;5213:1089::-;5317:6;5325;5333;5341;5349;5398:3;5386:9;5377:7;5373:23;5369:33;5366:120;;;5405:79;;:::i;:::-;5366:120;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5808:2;5797:9;5793:18;5780:32;5839:18;5831:6;5828:30;5825:117;;;5861:79;;:::i;:::-;5825:117;5966:62;6020:7;6011:6;6000:9;5996:22;5966:62;:::i;:::-;5956:72;;5751:287;6077:2;6103:53;6148:7;6139:6;6128:9;6124:22;6103:53;:::i;:::-;6093:63;;6048:118;6205:3;6232:53;6277:7;6268:6;6257:9;6253:22;6232:53;:::i;:::-;6222:63;;6176:119;5213:1089;;;;;;;;:::o;6308:77::-;6345:7;6374:5;6363:16;;6308:77;;;:::o;6391:118::-;6478:24;6496:5;6478:24;:::i;:::-;6473:3;6466:37;6391:118;;:::o;6515:222::-;6608:4;6646:2;6635:9;6631:18;6623:26;;6659:71;6727:1;6716:9;6712:17;6703:6;6659:71;:::i;:::-;6515:222;;;;:::o;6743:1121::-;6847:6;6855;6863;6871;6920:3;6908:9;6899:7;6895:23;6891:33;6888:120;;;6927:79;;:::i;:::-;6888:120;7047:1;7072:53;7117:7;7108:6;7097:9;7093:22;7072:53;:::i;:::-;7062:63;;7018:117;7174:2;7200:53;7245:7;7236:6;7225:9;7221:22;7200:53;:::i;:::-;7190:63;;7145:118;7330:2;7319:9;7315:18;7302:32;7361:18;7353:6;7350:30;7347:117;;;7383:79;;:::i;:::-;7347:117;7488:62;7542:7;7533:6;7522:9;7518:22;7488:62;:::i;:::-;7478:72;;7273:287;7627:2;7616:9;7612:18;7599:32;7658:18;7650:6;7647:30;7644:117;;;7680:79;;:::i;:::-;7644:117;7785:62;7839:7;7830:6;7819:9;7815:22;7785:62;:::i;:::-;7775:72;;7570:287;6743:1121;;;;;;;:::o;7870:122::-;7943:24;7961:5;7943:24;:::i;:::-;7936:5;7933:35;7923:63;;7982:1;7979;7972:12;7923:63;7870:122;:::o;7998:139::-;8044:5;8082:6;8069:20;8060:29;;8098:33;8125:5;8098:33;:::i;:::-;7998:139;;;;:::o;8143:652::-;8220:6;8228;8277:2;8265:9;8256:7;8252:23;8248:32;8245:119;;;8283:79;;:::i;:::-;8245:119;8403:1;8428:53;8473:7;8464:6;8453:9;8449:22;8428:53;:::i;:::-;8418:63;;8374:117;8558:2;8547:9;8543:18;8530:32;8589:18;8581:6;8578:30;8575:117;;;8611:79;;:::i;:::-;8575:117;8716:62;8770:7;8761:6;8750:9;8746:22;8716:62;:::i;:::-;8706:72;;8501:287;8143:652;;;;;:::o;8801:664::-;9006:4;9044:3;9033:9;9029:19;9021:27;;9058:71;9126:1;9115:9;9111:17;9102:6;9058:71;:::i;:::-;9139:72;9207:2;9196:9;9192:18;9183:6;9139:72;:::i;:::-;9221;9289:2;9278:9;9274:18;9265:6;9221:72;:::i;:::-;9303;9371:2;9360:9;9356:18;9347:6;9303:72;:::i;:::-;9385:73;9453:3;9442:9;9438:19;9429:6;9385:73;:::i;:::-;8801:664;;;;;;;;:::o;9471:180::-;9519:77;9516:1;9509:88;9616:4;9613:1;9606:15;9640:4;9637:1;9630:15;9657:233;9696:3;9719:24;9737:5;9719:24;:::i;:::-;9710:33;;9765:66;9758:5;9755:77;9752:103;;9835:18;;:::i;:::-;9752:103;9882:1;9875:5;9871:13;9864:20;;9657:233;;;:::o;9896:98::-;9947:6;9981:5;9975:12;9965:22;;9896:98;;;:::o;10000:147::-;10101:11;10138:3;10123:18;;10000:147;;;;:::o;10153:139::-;10242:6;10237:3;10232;10226:23;10283:1;10274:6;10269:3;10265:16;10258:27;10153:139;;;:::o;10298:386::-;10402:3;10430:38;10462:5;10430:38;:::i;:::-;10484:88;10565:6;10560:3;10484:88;:::i;:::-;10477:95;;10581:65;10639:6;10634:3;10627:4;10620:5;10616:16;10581:65;:::i;:::-;10671:6;10666:3;10662:16;10655:23;;10406:278;10298:386;;;;:::o;10690:271::-;10820:3;10842:93;10931:3;10922:6;10842:93;:::i;:::-;10835:100;;10952:3;10945:10;;10690:271;;;;:::o;10967:169::-;11051:11;11085:6;11080:3;11073:19;11125:4;11120:3;11116:14;11101:29;;10967:169;;;;:::o;11142:157::-;11282:9;11278:1;11270:6;11266:14;11259:33;11142:157;:::o;11305:365::-;11447:3;11468:66;11532:1;11527:3;11468:66;:::i;:::-;11461:73;;11543:93;11632:3;11543:93;:::i;:::-;11661:2;11656:3;11652:12;11645:19;;11305:365;;;:::o;11676:419::-;11842:4;11880:2;11869:9;11865:18;11857:26;;11929:9;11923:4;11919:20;11915:1;11904:9;11900:17;11893:47;11957:131;12083:4;11957:131;:::i;:::-;11949:139;;11676:419;;;:::o;12101:410::-;12141:7;12164:20;12182:1;12164:20;:::i;:::-;12159:25;;12198:20;12216:1;12198:20;:::i;:::-;12193:25;;12253:1;12250;12246:9;12275:30;12293:11;12275:30;:::i;:::-;12264:41;;12454:1;12445:7;12441:15;12438:1;12435:22;12415:1;12408:9;12388:83;12365:139;;12484:18;;:::i;:::-;12365:139;12149:362;12101:410;;;;:::o;12517:157::-;12657:9;12653:1;12645:6;12641:14;12634:33;12517:157;:::o;12680:365::-;12822:3;12843:66;12907:1;12902:3;12843:66;:::i;:::-;12836:73;;12918:93;13007:3;12918:93;:::i;:::-;13036:2;13031:3;13027:12;13020:19;;12680:365;;;:::o;13051:419::-;13217:4;13255:2;13244:9;13240:18;13232:26;;13304:9;13298:4;13294:20;13290:1;13279:9;13275:17;13268:47;13332:131;13458:4;13332:131;:::i;:::-;13324:139;;13051:419;;;:::o;13476:148::-;13578:11;13615:3;13600:18;;13476:148;;;;:::o;13630:214::-;13770:66;13766:1;13758:6;13754:14;13747:90;13630:214;:::o;13850:402::-;14010:3;14031:85;14113:2;14108:3;14031:85;:::i;:::-;14024:92;;14125:93;14214:3;14125:93;:::i;:::-;14243:2;14238:3;14234:12;14227:19;;13850:402;;;:::o;14258:79::-;14297:7;14326:5;14315:16;;14258:79;;;:::o;14343:157::-;14448:45;14468:24;14486:5;14468:24;:::i;:::-;14448:45;:::i;:::-;14443:3;14436:58;14343:157;;:::o;14506:522::-;14719:3;14741:148;14885:3;14741:148;:::i;:::-;14734:155;;14899:75;14970:3;14961:6;14899:75;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;15019:3;15012:10;;14506:522;;;;:::o;15034:86::-;15069:7;15109:4;15102:5;15098:16;15087:27;;15034:86;;;:::o;15126:112::-;15209:22;15225:5;15209:22;:::i;:::-;15204:3;15197:35;15126:112;;:::o;15244:545::-;15417:4;15455:3;15444:9;15440:19;15432:27;;15469:71;15537:1;15526:9;15522:17;15513:6;15469:71;:::i;:::-;15550:68;15614:2;15603:9;15599:18;15590:6;15550:68;:::i;:::-;15628:72;15696:2;15685:9;15681:18;15672:6;15628:72;:::i;:::-;15710;15778:2;15767:9;15763:18;15754:6;15710:72;:::i;:::-;15244:545;;;;;;;:::o;15795:157::-;15935:9;15931:1;15923:6;15919:14;15912:33;15795:157;:::o;15958:365::-;16100:3;16121:66;16185:1;16180:3;16121:66;:::i;:::-;16114:73;;16196:93;16285:3;16196:93;:::i;:::-;16314:2;16309:3;16305:12;16298:19;;15958:365;;;:::o;16329:419::-;16495:4;16533:2;16522:9;16518:18;16510:26;;16582:9;16576:4;16572:20;16568:1;16557:9;16553:17;16546:47;16610:131;16736:4;16610:131;:::i;:::-;16602:139;;16329:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"checkSignatures(bytes32,bytes)":"ed516d51","encodeTransactionData(address,uint256,bytes,uint256,uint256)":"a67dd509","execTransaction(address,uint256,bytes,bytes)":"d01aa318","isOwner(address)":"2f54bf6e","nonce()":"affed0e0","ownerCount()":"0db02622","owners(uint256)":"025e7c27","threshold()":"42cde4e8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"checkSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"name\":\"encodeTransactionData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signatures\",\"type\":\"bytes\"}],\"name\":\"execTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ownerCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,bytes)\":{\"details\":\"\\u68c0\\u67e5\\u7b7e\\u540d\\u548c\\u4ea4\\u6613\\u6570\\u636e\\u662f\\u5426\\u5bf9\\u5e94\\u3002\\u5982\\u679c\\u662f\\u65e0\\u6548\\u7b7e\\u540d\\uff0c\\u4ea4\\u6613\\u4f1arevert\",\"params\":{\"dataHash\":\"\\u4ea4\\u6613\\u6570\\u636e\\u54c8\\u5e0c\",\"signatures\":\"\\u51e0\\u4e2a\\u591a\\u7b7e\\u7b7e\\u540d\\u6253\\u5305\\u5728\\u4e00\\u8d77\"}},\"encodeTransactionData(address,uint256,bytes,uint256,uint256)\":{\"details\":\"\\u7f16\\u7801\\u4ea4\\u6613\\u6570\\u636e\",\"params\":{\"_nonce\":\"\\u4ea4\\u6613\\u7684nonce.\",\"chainid\":\"\\u94feid\",\"data\":\"calldata\",\"to\":\"\\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\"msg.value\\uff0c\\u652f\\u4ed8\\u7684\\u4ee5\\u592a\\u574a\"},\"returns\":{\"_0\":\"\\u4ea4\\u6613\\u54c8\\u5e0cbytes.\"}},\"execTransaction(address,uint256,bytes,bytes)\":{\"details\":\"\\u5728\\u6536\\u96c6\\u8db3\\u591f\\u7684\\u591a\\u7b7e\\u7b7e\\u540d\\u540e\\uff0c\\u6267\\u884c\\u4ea4\\u6613\",\"params\":{\"data\":\"calldata\",\"signatures\":\"\\u6253\\u5305\\u7684\\u7b7e\\u540d\\uff0c\\u5bf9\\u5e94\\u7684\\u591a\\u7b7e\\u5730\\u5740\\u7531\\u5c0f\\u5230\\u8fbe\\uff0c\\u65b9\\u4fbf\\u68c0\\u67e5\\u3002 ({bytes32 r}{bytes32 s}{uint8 v}) (\\u7b2c\\u4e00\\u4e2a\\u591a\\u7b7e\\u7684\\u7b7e\\u540d, \\u7b2c\\u4e8c\\u4e2a\\u591a\\u7b7e\\u7684\\u7b7e\\u540d ... )\",\"to\":\"\\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\"msg.value\\uff0c\\u652f\\u4ed8\\u7684\\u4ee5\\u592a\\u574a\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"\\u57fa\\u4e8e\\u7b7e\\u540d\\u7684\\u591a\\u7b7e\\u94b1\\u5305\\uff0c\\u7531gnosis safe\\u5408\\u7ea6\\u7b80\\u5316\\u800c\\u6765\\uff0c\\u6559\\u5b66\\u4f7f\\u7528\\u3002\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/50_MultisigWallet/MultisigWallet.sol\":\"MultisigWallet\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/50_MultisigWallet/MultisigWallet.sol\":{\"keccak256\":\"0x52253024ca01aa1eb1617f9201189bbfbc04e57e3a4e0db8a30d15a500dbadc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f429af83547a0ebf340a0ab427dadd82cc15335b9119510936101171ed3911a\",\"dweb:/ipfs/QmcoXtiX2YeetBqXhgRLmPVQBhCgkXxex7RPtLCf1g1eq1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":false}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSignatures"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"chainid","type":"uint256"}],"stateMutability":"pure","type":"function","name":"encodeTransactionData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ownerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"checkSignatures(bytes32,bytes)":{"details":"检查签名和交易数据是否对应。如果是无效签名,交易会revert","params":{"dataHash":"交易数据哈希","signatures":"几个多签签名打包在一起"}},"encodeTransactionData(address,uint256,bytes,uint256,uint256)":{"details":"编码交易数据","params":{"_nonce":"交易的nonce.","chainid":"链id","data":"calldata","to":"目标合约地址","value":"msg.value,支付的以太坊"},"returns":{"_0":"交易哈希bytes."}},"execTransaction(address,uint256,bytes,bytes)":{"details":"在收集足够的多签签名后,执行交易","params":{"data":"calldata","signatures":"打包的签名,对应的多签地址由小到达,方便检查。 ({bytes32 r}{bytes32 s}{uint8 v}) (第一个多签的签名, 第二个多签的签名 ... )","to":"目标合约地址","value":"msg.value,支付的以太坊"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/50_MultisigWallet/MultisigWallet.sol":"MultisigWallet"},"evmVersion":"prague","libraries":{}},"sources":{"src/50_MultisigWallet/MultisigWallet.sol":{"keccak256":"0x52253024ca01aa1eb1617f9201189bbfbc04e57e3a4e0db8a30d15a500dbadc3","urls":["bzz-raw://7f429af83547a0ebf340a0ab427dadd82cc15335b9119510936101171ed3911a","dweb:/ipfs/QmcoXtiX2YeetBqXhgRLmPVQBhCgkXxex7RPtLCf1g1eq1"],"license":"MIT"}},"version":1},"id":103} \ No newline at end of file diff --git a/out/NFTReentrancy.sol/Attack.json b/out/NFTReentrancy.sol/Attack.json index 8e28c344..24afc7a2 100644 --- a/out/NFTReentrancy.sol/Attack.json +++ b/out/NFTReentrancy.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_nftAddr","type":"address","internalType":"contract NFTReentrancy"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract NFTReentrancy"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610746380380610746833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b6106298061011d5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063150b7a021461004357806347ccca02146100735780639e5faafc14610091575b5f5ffd5b61005d60048036038101906100589190610445565b61009b565b60405161006a91906104ff565b60405180910390f35b61007b6101ca565b6040516100889190610573565b60405180910390f35b6100996101ee565b005b5f600a5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016100f7919061059b565b602060405180830381865afa158015610112573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906105c8565b10156101b8575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b505050505b63150b7a0260e01b9050949350505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610253575f5ffd5b505af1158015610265573d5f5f3e3d5ffd5b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b81146102bf575f5ffd5b50565b5f813590506102d0816102ac565b92915050565b5f819050919050565b6102e8816102d6565b81146102f2575f5ffd5b50565b5f81359050610303816102df565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61035782610311565b810181811067ffffffffffffffff8211171561037657610375610321565b5b80604052505050565b5f61038861026b565b9050610394828261034e565b919050565b5f67ffffffffffffffff8211156103b3576103b2610321565b5b6103bc82610311565b9050602081019050919050565b828183375f83830152505050565b5f6103e96103e484610399565b61037f565b9050828152602081018484840111156104055761040461030d565b5b6104108482856103c9565b509392505050565b5f82601f83011261042c5761042b610309565b5b813561043c8482602086016103d7565b91505092915050565b5f5f5f5f6080858703121561045d5761045c610274565b5b5f61046a878288016102c2565b945050602061047b878288016102c2565b935050604061048c878288016102f5565b925050606085013567ffffffffffffffff8111156104ad576104ac610278565b5b6104b987828801610418565b91505092959194509250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104f9816104c5565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f819050919050565b5f61053b6105366105318461027c565b610518565b61027c565b9050919050565b5f61054c82610521565b9050919050565b5f61055d82610542565b9050919050565b61056d81610553565b82525050565b5f6020820190506105865f830184610564565b92915050565b6105958161029b565b82525050565b5f6020820190506105ae5f83018461058c565b92915050565b5f815190506105c2816102df565b92915050565b5f602082840312156105dd576105dc610274565b5b5f6105ea848285016105b4565b9150509291505056fea2646970667358221220518e83b101de3c67a12b2e4b79f669aca53f89f08c99beb67e4c4b3833ac492264736f6c63430008220033","sourceMap":"867:611:144:-:0;;;990:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1042:8;1036:3;;:14;;;;;;;;;;;;;;;;;;990:67;867:611;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:397::-;1155:6;1204:2;1192:9;1183:7;1179:23;1175:32;1172:119;;;1210:79;;:::i;:::-;1172:119;1330:1;1355:87;1434:7;1425:6;1414:9;1410:22;1355:87;:::i;:::-;1345:97;;1301:151;1062:397;;;;:::o;867:611:144:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063150b7a021461004357806347ccca02146100735780639e5faafc14610091575b5f5ffd5b61005d60048036038101906100589190610445565b61009b565b60405161006a91906104ff565b60405180910390f35b61007b6101ca565b6040516100889190610573565b60405180910390f35b6100996101ee565b005b5f600a5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016100f7919061059b565b602060405180830381865afa158015610112573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906105c8565b10156101b8575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b505050505b63150b7a0260e01b9050949350505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610253575f5ffd5b505af1158015610265573d5f5f3e3d5ffd5b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b81146102bf575f5ffd5b50565b5f813590506102d0816102ac565b92915050565b5f819050919050565b6102e8816102d6565b81146102f2575f5ffd5b50565b5f81359050610303816102df565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61035782610311565b810181811067ffffffffffffffff8211171561037657610375610321565b5b80604052505050565b5f61038861026b565b9050610394828261034e565b919050565b5f67ffffffffffffffff8211156103b3576103b2610321565b5b6103bc82610311565b9050602081019050919050565b828183375f83830152505050565b5f6103e96103e484610399565b61037f565b9050828152602081018484840111156104055761040461030d565b5b6104108482856103c9565b509392505050565b5f82601f83011261042c5761042b610309565b5b813561043c8482602086016103d7565b91505092915050565b5f5f5f5f6080858703121561045d5761045c610274565b5b5f61046a878288016102c2565b945050602061047b878288016102c2565b935050604061048c878288016102f5565b925050606085013567ffffffffffffffff8111156104ad576104ac610278565b5b6104b987828801610418565b91505092959194509250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104f9816104c5565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f819050919050565b5f61053b6105366105318461027c565b610518565b61027c565b9050919050565b5f61054c82610521565b9050919050565b5f61055d82610542565b9050919050565b61056d81610553565b82525050565b5f6020820190506105865f830184610564565b92915050565b6105958161029b565b82525050565b5f6020820190506105ae5f83018461058c565b92915050565b5f815190506105c2816102df565b92915050565b5f602082840312156105dd576105dc610274565b5b5f6105ea848285016105b4565b9150509291505056fea2646970667358221220518e83b101de3c67a12b2e4b79f669aca53f89f08c99beb67e4c4b3833ac492264736f6c63430008220033","sourceMap":"867:611:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1233:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;907:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1102:54;;;:::i;:::-;;1233:243;1333:6;1385:2;1354:3;;;;;;;;;;;:13;;;1376:4;1354:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;1351:72;;;1402:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1351:72;1439:30;;;1432:37;;1233:243;;;;;;:::o;907:24::-;;;;;;;;;;;;;:::o;1102:54::-;1139:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1102:54::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:148::-;2570:6;2565:3;2560;2547:30;2611:1;2602:6;2597:3;2593:16;2586:27;2472:148;;;:::o;2626:423::-;2703:5;2728:65;2744:48;2785:6;2744:48;:::i;:::-;2728:65;:::i;:::-;2719:74;;2816:6;2809:5;2802:21;2854:4;2847:5;2843:16;2892:3;2883:6;2878:3;2874:16;2871:25;2868:112;;;2899:79;;:::i;:::-;2868:112;2989:54;3036:6;3031:3;3026;2989:54;:::i;:::-;2709:340;2626:423;;;;;:::o;3068:338::-;3123:5;3172:3;3165:4;3157:6;3153:17;3149:27;3139:122;;3180:79;;:::i;:::-;3139:122;3297:6;3284:20;3322:78;3396:3;3388:6;3381:4;3373:6;3369:17;3322:78;:::i;:::-;3313:87;;3129:277;3068:338;;;;:::o;3412:943::-;3507:6;3515;3523;3531;3580:3;3568:9;3559:7;3555:23;3551:33;3548:120;;;3587:79;;:::i;:::-;3548:120;3707:1;3732:53;3777:7;3768:6;3757:9;3753:22;3732:53;:::i;:::-;3722:63;;3678:117;3834:2;3860:53;3905:7;3896:6;3885:9;3881:22;3860:53;:::i;:::-;3850:63;;3805:118;3962:2;3988:53;4033:7;4024:6;4013:9;4009:22;3988:53;:::i;:::-;3978:63;;3933:118;4118:2;4107:9;4103:18;4090:32;4149:18;4141:6;4138:30;4135:117;;;4171:79;;:::i;:::-;4135:117;4276:62;4330:7;4321:6;4310:9;4306:22;4276:62;:::i;:::-;4266:72;;4061:287;3412:943;;;;;;;:::o;4361:149::-;4397:7;4437:66;4430:5;4426:78;4415:89;;4361:149;;;:::o;4516:115::-;4601:23;4618:5;4601:23;:::i;:::-;4596:3;4589:36;4516:115;;:::o;4637:218::-;4728:4;4766:2;4755:9;4751:18;4743:26;;4779:69;4845:1;4834:9;4830:17;4821:6;4779:69;:::i;:::-;4637:218;;;;:::o;4861:60::-;4889:3;4910:5;4903:12;;4861:60;;;:::o;4927:142::-;4977:9;5010:53;5028:34;5037:24;5055:5;5037:24;:::i;:::-;5028:34;:::i;:::-;5010:53;:::i;:::-;4997:66;;4927:142;;;:::o;5075:126::-;5125:9;5158:37;5189:5;5158:37;:::i;:::-;5145:50;;5075:126;;;:::o;5207:149::-;5280:9;5313:37;5344:5;5313:37;:::i;:::-;5300:50;;5207:149;;;:::o;5362:177::-;5472:60;5526:5;5472:60;:::i;:::-;5467:3;5460:73;5362:177;;:::o;5545:268::-;5661:4;5699:2;5688:9;5684:18;5676:26;;5712:94;5803:1;5792:9;5788:17;5779:6;5712:94;:::i;:::-;5545:268;;;;:::o;5819:118::-;5906:24;5924:5;5906:24;:::i;:::-;5901:3;5894:37;5819:118;;:::o;5943:222::-;6036:4;6074:2;6063:9;6059:18;6051:26;;6087:71;6155:1;6144:9;6140:17;6131:6;6087:71;:::i;:::-;5943:222;;;;:::o;6171:143::-;6228:5;6259:6;6253:13;6244:22;;6275:33;6302:5;6275:33;:::i;:::-;6171:143;;;;:::o;6320:351::-;6390:6;6439:2;6427:9;6418:7;6414:23;6410:32;6407:119;;;6445:79;;:::i;:::-;6407:119;6565:1;6590:64;6646:7;6637:6;6626:9;6622:22;6590:64;:::i;:::-;6580:74;;6536:128;6320:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","nft()":"47ccca02","onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract NFTReentrancy\",\"name\":\"_nftAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract NFTReentrancy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S16_NFTReentrancy/NFTReentrancy.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S16_NFTReentrancy/NFTReentrancy.sol\":{\"keccak256\":\"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd\",\"dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract NFTReentrancy","name":"_nftAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"nft","outputs":[{"internalType":"contract NFTReentrancy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S16_NFTReentrancy/NFTReentrancy.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S16_NFTReentrancy/NFTReentrancy.sol":{"keccak256":"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc","urls":["bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd","dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV"],"license":"MIT"}},"version":1},"id":144} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_nftAddr","type":"address","internalType":"contract NFTReentrancy"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract NFTReentrancy"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610746380380610746833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b6106298061011d5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063150b7a021461004357806347ccca02146100735780639e5faafc14610091575b5f5ffd5b61005d60048036038101906100589190610445565b61009b565b60405161006a91906104ff565b60405180910390f35b61007b6101ca565b6040516100889190610573565b60405180910390f35b6100996101ee565b005b5f600a5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016100f7919061059b565b602060405180830381865afa158015610112573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906105c8565b10156101b8575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b505050505b63150b7a0260e01b9050949350505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610253575f5ffd5b505af1158015610265573d5f5f3e3d5ffd5b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b81146102bf575f5ffd5b50565b5f813590506102d0816102ac565b92915050565b5f819050919050565b6102e8816102d6565b81146102f2575f5ffd5b50565b5f81359050610303816102df565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61035782610311565b810181811067ffffffffffffffff8211171561037657610375610321565b5b80604052505050565b5f61038861026b565b9050610394828261034e565b919050565b5f67ffffffffffffffff8211156103b3576103b2610321565b5b6103bc82610311565b9050602081019050919050565b828183375f83830152505050565b5f6103e96103e484610399565b61037f565b9050828152602081018484840111156104055761040461030d565b5b6104108482856103c9565b509392505050565b5f82601f83011261042c5761042b610309565b5b813561043c8482602086016103d7565b91505092915050565b5f5f5f5f6080858703121561045d5761045c610274565b5b5f61046a878288016102c2565b945050602061047b878288016102c2565b935050604061048c878288016102f5565b925050606085013567ffffffffffffffff8111156104ad576104ac610278565b5b6104b987828801610418565b91505092959194509250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104f9816104c5565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f819050919050565b5f61053b6105366105318461027c565b610518565b61027c565b9050919050565b5f61054c82610521565b9050919050565b5f61055d82610542565b9050919050565b61056d81610553565b82525050565b5f6020820190506105865f830184610564565b92915050565b6105958161029b565b82525050565b5f6020820190506105ae5f83018461058c565b92915050565b5f815190506105c2816102df565b92915050565b5f602082840312156105dd576105dc610274565b5b5f6105ea848285016105b4565b9150509291505056fea2646970667358221220518e83b101de3c67a12b2e4b79f669aca53f89f08c99beb67e4c4b3833ac492264736f6c63430008220033","sourceMap":"867:611:138:-:0;;;990:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1042:8;1036:3;;:14;;;;;;;;;;;;;;;;;;990:67;867:611;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:397::-;1155:6;1204:2;1192:9;1183:7;1179:23;1175:32;1172:119;;;1210:79;;:::i;:::-;1172:119;1330:1;1355:87;1434:7;1425:6;1414:9;1410:22;1355:87;:::i;:::-;1345:97;;1301:151;1062:397;;;;:::o;867:611:138:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063150b7a021461004357806347ccca02146100735780639e5faafc14610091575b5f5ffd5b61005d60048036038101906100589190610445565b61009b565b60405161006a91906104ff565b60405180910390f35b61007b6101ca565b6040516100889190610573565b60405180910390f35b6100996101ee565b005b5f600a5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016100f7919061059b565b602060405180830381865afa158015610112573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013691906105c8565b10156101b8575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b505050505b63150b7a0260e01b9050949350505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631249c58b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610253575f5ffd5b505af1158015610265573d5f5f3e3d5ffd5b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b81146102bf575f5ffd5b50565b5f813590506102d0816102ac565b92915050565b5f819050919050565b6102e8816102d6565b81146102f2575f5ffd5b50565b5f81359050610303816102df565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61035782610311565b810181811067ffffffffffffffff8211171561037657610375610321565b5b80604052505050565b5f61038861026b565b9050610394828261034e565b919050565b5f67ffffffffffffffff8211156103b3576103b2610321565b5b6103bc82610311565b9050602081019050919050565b828183375f83830152505050565b5f6103e96103e484610399565b61037f565b9050828152602081018484840111156104055761040461030d565b5b6104108482856103c9565b509392505050565b5f82601f83011261042c5761042b610309565b5b813561043c8482602086016103d7565b91505092915050565b5f5f5f5f6080858703121561045d5761045c610274565b5b5f61046a878288016102c2565b945050602061047b878288016102c2565b935050604061048c878288016102f5565b925050606085013567ffffffffffffffff8111156104ad576104ac610278565b5b6104b987828801610418565b91505092959194509250565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6104f9816104c5565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f819050919050565b5f61053b6105366105318461027c565b610518565b61027c565b9050919050565b5f61054c82610521565b9050919050565b5f61055d82610542565b9050919050565b61056d81610553565b82525050565b5f6020820190506105865f830184610564565b92915050565b6105958161029b565b82525050565b5f6020820190506105ae5f83018461058c565b92915050565b5f815190506105c2816102df565b92915050565b5f602082840312156105dd576105dc610274565b5b5f6105ea848285016105b4565b9150509291505056fea2646970667358221220518e83b101de3c67a12b2e4b79f669aca53f89f08c99beb67e4c4b3833ac492264736f6c63430008220033","sourceMap":"867:611:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1233:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;907:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1102:54;;;:::i;:::-;;1233:243;1333:6;1385:2;1354:3;;;;;;;;;;;:13;;;1376:4;1354:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;1351:72;;;1402:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1351:72;1439:30;;;1432:37;;1233:243;;;;;;:::o;907:24::-;;;;;;;;;;;;;:::o;1102:54::-;1139:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1102:54::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:148::-;2570:6;2565:3;2560;2547:30;2611:1;2602:6;2597:3;2593:16;2586:27;2472:148;;;:::o;2626:423::-;2703:5;2728:65;2744:48;2785:6;2744:48;:::i;:::-;2728:65;:::i;:::-;2719:74;;2816:6;2809:5;2802:21;2854:4;2847:5;2843:16;2892:3;2883:6;2878:3;2874:16;2871:25;2868:112;;;2899:79;;:::i;:::-;2868:112;2989:54;3036:6;3031:3;3026;2989:54;:::i;:::-;2709:340;2626:423;;;;;:::o;3068:338::-;3123:5;3172:3;3165:4;3157:6;3153:17;3149:27;3139:122;;3180:79;;:::i;:::-;3139:122;3297:6;3284:20;3322:78;3396:3;3388:6;3381:4;3373:6;3369:17;3322:78;:::i;:::-;3313:87;;3129:277;3068:338;;;;:::o;3412:943::-;3507:6;3515;3523;3531;3580:3;3568:9;3559:7;3555:23;3551:33;3548:120;;;3587:79;;:::i;:::-;3548:120;3707:1;3732:53;3777:7;3768:6;3757:9;3753:22;3732:53;:::i;:::-;3722:63;;3678:117;3834:2;3860:53;3905:7;3896:6;3885:9;3881:22;3860:53;:::i;:::-;3850:63;;3805:118;3962:2;3988:53;4033:7;4024:6;4013:9;4009:22;3988:53;:::i;:::-;3978:63;;3933:118;4118:2;4107:9;4103:18;4090:32;4149:18;4141:6;4138:30;4135:117;;;4171:79;;:::i;:::-;4135:117;4276:62;4330:7;4321:6;4310:9;4306:22;4276:62;:::i;:::-;4266:72;;4061:287;3412:943;;;;;;;:::o;4361:149::-;4397:7;4437:66;4430:5;4426:78;4415:89;;4361:149;;;:::o;4516:115::-;4601:23;4618:5;4601:23;:::i;:::-;4596:3;4589:36;4516:115;;:::o;4637:218::-;4728:4;4766:2;4755:9;4751:18;4743:26;;4779:69;4845:1;4834:9;4830:17;4821:6;4779:69;:::i;:::-;4637:218;;;;:::o;4861:60::-;4889:3;4910:5;4903:12;;4861:60;;;:::o;4927:142::-;4977:9;5010:53;5028:34;5037:24;5055:5;5037:24;:::i;:::-;5028:34;:::i;:::-;5010:53;:::i;:::-;4997:66;;4927:142;;;:::o;5075:126::-;5125:9;5158:37;5189:5;5158:37;:::i;:::-;5145:50;;5075:126;;;:::o;5207:149::-;5280:9;5313:37;5344:5;5313:37;:::i;:::-;5300:50;;5207:149;;;:::o;5362:177::-;5472:60;5526:5;5472:60;:::i;:::-;5467:3;5460:73;5362:177;;:::o;5545:268::-;5661:4;5699:2;5688:9;5684:18;5676:26;;5712:94;5803:1;5792:9;5788:17;5779:6;5712:94;:::i;:::-;5545:268;;;;:::o;5819:118::-;5906:24;5924:5;5906:24;:::i;:::-;5901:3;5894:37;5819:118;;:::o;5943:222::-;6036:4;6074:2;6063:9;6059:18;6051:26;;6087:71;6155:1;6144:9;6140:17;6131:6;6087:71;:::i;:::-;5943:222;;;;:::o;6171:143::-;6228:5;6259:6;6253:13;6244:22;;6275:33;6302:5;6275:33;:::i;:::-;6171:143;;;;:::o;6320:351::-;6390:6;6439:2;6427:9;6418:7;6414:23;6410:32;6407:119;;;6445:79;;:::i;:::-;6407:119;6565:1;6590:64;6646:7;6637:6;6626:9;6622:22;6590:64;:::i;:::-;6580:74;;6536:128;6320:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","nft()":"47ccca02","onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract NFTReentrancy\",\"name\":\"_nftAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract NFTReentrancy\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S16_NFTReentrancy/NFTReentrancy.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S16_NFTReentrancy/NFTReentrancy.sol\":{\"keccak256\":\"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd\",\"dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract NFTReentrancy","name":"_nftAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"nft","outputs":[{"internalType":"contract NFTReentrancy","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S16_NFTReentrancy/NFTReentrancy.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S16_NFTReentrancy/NFTReentrancy.sol":{"keccak256":"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc","urls":["bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd","dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV"],"license":"MIT"}},"version":1},"id":138} \ No newline at end of file diff --git a/out/NFTReentrancy.sol/NFTReentrancy.json b/out/NFTReentrancy.sol/NFTReentrancy.json index 933d7292..32e04fc0 100644 --- a/out/NFTReentrancy.sol/NFTReentrancy.json +++ b/out/NFTReentrancy.sol/NFTReentrancy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600b81526020017f5265656e747279204e46540000000000000000000000000000000000000000008152506040518060400160405280600581526020017f52654e4654000000000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b612003806103cc5f395ff3fe6080604052600436106100f2575f3560e01c8063630303c611610089578063a22cb46511610058578063a22cb46514610322578063b88d4fde1461034a578063c87b56dd14610372578063e985e9c5146103ae576100f2565b8063630303c6146102445780636352211e1461028057806370a08231146102bc57806395d89b41146102f8576100f2565b80631249c58b116100c55780631249c58b146101c057806318160ddd146101ca57806323b872dd146101f457806342842e0e1461021c576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f5ffd5b348015610101575f5ffd5b5061011c6004803603810190610117919061183a565b6103ea565b604051610129919061187f565b60405180910390f35b34801561013d575f5ffd5b506101466104cb565b6040516101539190611908565b60405180910390f35b348015610167575f5ffd5b50610182600480360381019061017d919061195b565b61055a565b60405161018f91906119c5565b60405180910390f35b3480156101a3575f5ffd5b506101be60048036038101906101b99190611a08565b610575565b005b6101c861058b565b005b3480156101d5575f5ffd5b506101de61065d565b6040516101eb9190611a55565b60405180910390f35b3480156101ff575f5ffd5b5061021a60048036038101906102159190611a6e565b610663565b005b348015610227575f5ffd5b50610242600480360381019061023d9190611a6e565b610762565b005b34801561024f575f5ffd5b5061026a60048036038101906102659190611abe565b610781565b604051610277919061187f565b60405180910390f35b34801561028b575f5ffd5b506102a660048036038101906102a1919061195b565b61079e565b6040516102b391906119c5565b60405180910390f35b3480156102c7575f5ffd5b506102e260048036038101906102dd9190611abe565b6107af565b6040516102ef9190611a55565b60405180910390f35b348015610303575f5ffd5b5061030c610865565b6040516103199190611908565b60405180910390f35b34801561032d575f5ffd5b5061034860048036038101906103439190611b13565b6108f5565b005b348015610355575f5ffd5b50610370600480360381019061036b9190611c7d565b61090b565b005b34801561037d575f5ffd5b506103986004803603810190610393919061195b565b610930565b6040516103a59190611908565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf9190611cfd565b610996565b6040516103e1919061187f565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104b457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c457506104c382610a24565b5b9050919050565b60605f80546104d990611d68565b80601f016020809104026020016040519081016040528092919081815260200182805461050590611d68565b80156105505780601f1061052757610100808354040283529160200191610550565b820191905f5260205f20905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b5f61056482610a8d565b5061056e82610b13565b9050919050565b6105878282610582610b4c565b610b53565b5050565b5f151560075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146105e3575f5ffd5b60065f8154809291906105f590611dc5565b919050555061060633600654610b65565b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b60065481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106ca91906119c5565b60405180910390fd5b5f6106e683836106e1610b4c565b610b82565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161075393929190611e0c565b60405180910390fd5b50505050565b61077c83838360405180602001604052805f81525061090b565b505050565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f6107a882610a8d565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610820575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161081791906119c5565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461087490611d68565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090611d68565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b610907610900610b4c565b8383610d8d565b5050565b610916848484610663565b61092a610921610b4c565b85858585610f66565b50505050565b606061093b82610a8d565b505f610945611112565b90505f8151116109635760405180602001604052805f81525061098e565b8061096d84611128565b60405160200161097e929190611e7b565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f610a98836111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610b019190611a55565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610b60838383600161122b565b505050565b610b7e828260405180602001604052805f8152506113ea565b5050565b5f5f610b8d846111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610bce57610bcd81848661140d565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5957610c0d5f855f5f61122b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610cd857600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfd575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610df491906119c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6d57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610e6491906119c5565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f59919061187f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561110b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610fc49493929190611ef0565b6020604051808303815f875af1925050508015610fff57506040513d601f19601f82011682018060405250810190610ffc9190611f4e565b60015b611080573d805f811461102d576040519150601f19603f3d011682016040523d82523d5f602084013e611032565b606091505b505f81510361107857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161106f91906119c5565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461110957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161110091906119c5565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611136846114d0565b0190505f8167ffffffffffffffff81111561115457611153611b59565b5b6040519080825280601f01601f1916602001820160405280156111865781602001600182028036833780820191505090505b5090505f82602083010190505b6001156111e7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111dc576111db611f79565b5b0494505f8503611193575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061126357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611395575f61127284610a8d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112dc57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57506112ed8184610996565b155b1561133157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161132891906119c5565b60405180910390fd5b811561139357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113f48383611621565b6114086113ff610b4c565b5f858585610f66565b505050565b611418838383611714565b6114cb575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114839190611a55565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016114c2929190611fa6565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061152c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161152257611521611f79565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611569576d04ee2d6d415b85acef8100000000838161155f5761155e611f79565b5b0492506020810190505b662386f26fc10000831061159857662386f26fc10000838161158e5761158d611f79565b5b0492506010810190505b6305f5e10083106115c1576305f5e10083816115b7576115b6611f79565b5b0492506008810190505b61271083106115e65761271083816115dc576115db611f79565b5b0492506004810190505b6064831061160957606483816115ff576115fe611f79565b5b0492506002810190505b600a8310611618576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611691575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161168891906119c5565b60405180910390fd5b5f61169d83835f610b82565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461170f575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161170691906119c5565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cb57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061178c575061178b8484610996565b5b806117ca57508273ffffffffffffffffffffffffffffffffffffffff166117b283610b13565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611819816117e5565b8114611823575f5ffd5b50565b5f8135905061183481611810565b92915050565b5f6020828403121561184f5761184e6117dd565b5b5f61185c84828501611826565b91505092915050565b5f8115159050919050565b61187981611865565b82525050565b5f6020820190506118925f830184611870565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118da82611898565b6118e481856118a2565b93506118f48185602086016118b2565b6118fd816118c0565b840191505092915050565b5f6020820190508181035f83015261192081846118d0565b905092915050565b5f819050919050565b61193a81611928565b8114611944575f5ffd5b50565b5f8135905061195581611931565b92915050565b5f602082840312156119705761196f6117dd565b5b5f61197d84828501611947565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119af82611986565b9050919050565b6119bf816119a5565b82525050565b5f6020820190506119d85f8301846119b6565b92915050565b6119e7816119a5565b81146119f1575f5ffd5b50565b5f81359050611a02816119de565b92915050565b5f5f60408385031215611a1e57611a1d6117dd565b5b5f611a2b858286016119f4565b9250506020611a3c85828601611947565b9150509250929050565b611a4f81611928565b82525050565b5f602082019050611a685f830184611a46565b92915050565b5f5f5f60608486031215611a8557611a846117dd565b5b5f611a92868287016119f4565b9350506020611aa3868287016119f4565b9250506040611ab486828701611947565b9150509250925092565b5f60208284031215611ad357611ad26117dd565b5b5f611ae0848285016119f4565b91505092915050565b611af281611865565b8114611afc575f5ffd5b50565b5f81359050611b0d81611ae9565b92915050565b5f5f60408385031215611b2957611b286117dd565b5b5f611b36858286016119f4565b9250506020611b4785828601611aff565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b8f826118c0565b810181811067ffffffffffffffff82111715611bae57611bad611b59565b5b80604052505050565b5f611bc06117d4565b9050611bcc8282611b86565b919050565b5f67ffffffffffffffff821115611beb57611bea611b59565b5b611bf4826118c0565b9050602081019050919050565b828183375f83830152505050565b5f611c21611c1c84611bd1565b611bb7565b905082815260208101848484011115611c3d57611c3c611b55565b5b611c48848285611c01565b509392505050565b5f82601f830112611c6457611c63611b51565b5b8135611c74848260208601611c0f565b91505092915050565b5f5f5f5f60808587031215611c9557611c946117dd565b5b5f611ca2878288016119f4565b9450506020611cb3878288016119f4565b9350506040611cc487828801611947565b925050606085013567ffffffffffffffff811115611ce557611ce46117e1565b5b611cf187828801611c50565b91505092959194509250565b5f5f60408385031215611d1357611d126117dd565b5b5f611d20858286016119f4565b9250506020611d31858286016119f4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d7f57607f821691505b602082108103611d9257611d91611d3b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcf82611928565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e0157611e00611d98565b5b600182019050919050565b5f606082019050611e1f5f8301866119b6565b611e2c6020830185611a46565b611e3960408301846119b6565b949350505050565b5f81905092915050565b5f611e5582611898565b611e5f8185611e41565b9350611e6f8185602086016118b2565b80840191505092915050565b5f611e868285611e4b565b9150611e928284611e4b565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec282611e9e565b611ecc8185611ea8565b9350611edc8185602086016118b2565b611ee5816118c0565b840191505092915050565b5f608082019050611f035f8301876119b6565b611f1060208301866119b6565b611f1d6040830185611a46565b8181036060830152611f2f8184611eb8565b905095945050505050565b5f81519050611f4881611810565b92915050565b5f60208284031215611f6357611f626117dd565b5b5f611f7084828501611f3a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611fb95f8301856119b6565b611fc66020830184611a46565b939250505056fea26469706673582212206e7a030fd0244872036205eba3f810696332968dcf97c07c592f1b99a4f8eb7564736f6c63430008220033","sourceMap":"240:625:144:-:0;;;421:46;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;240:625:144;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;240:625:144:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100f2575f3560e01c8063630303c611610089578063a22cb46511610058578063a22cb46514610322578063b88d4fde1461034a578063c87b56dd14610372578063e985e9c5146103ae576100f2565b8063630303c6146102445780636352211e1461028057806370a08231146102bc57806395d89b41146102f8576100f2565b80631249c58b116100c55780631249c58b146101c057806318160ddd146101ca57806323b872dd146101f457806342842e0e1461021c576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f5ffd5b348015610101575f5ffd5b5061011c6004803603810190610117919061183a565b6103ea565b604051610129919061187f565b60405180910390f35b34801561013d575f5ffd5b506101466104cb565b6040516101539190611908565b60405180910390f35b348015610167575f5ffd5b50610182600480360381019061017d919061195b565b61055a565b60405161018f91906119c5565b60405180910390f35b3480156101a3575f5ffd5b506101be60048036038101906101b99190611a08565b610575565b005b6101c861058b565b005b3480156101d5575f5ffd5b506101de61065d565b6040516101eb9190611a55565b60405180910390f35b3480156101ff575f5ffd5b5061021a60048036038101906102159190611a6e565b610663565b005b348015610227575f5ffd5b50610242600480360381019061023d9190611a6e565b610762565b005b34801561024f575f5ffd5b5061026a60048036038101906102659190611abe565b610781565b604051610277919061187f565b60405180910390f35b34801561028b575f5ffd5b506102a660048036038101906102a1919061195b565b61079e565b6040516102b391906119c5565b60405180910390f35b3480156102c7575f5ffd5b506102e260048036038101906102dd9190611abe565b6107af565b6040516102ef9190611a55565b60405180910390f35b348015610303575f5ffd5b5061030c610865565b6040516103199190611908565b60405180910390f35b34801561032d575f5ffd5b5061034860048036038101906103439190611b13565b6108f5565b005b348015610355575f5ffd5b50610370600480360381019061036b9190611c7d565b61090b565b005b34801561037d575f5ffd5b506103986004803603810190610393919061195b565b610930565b6040516103a59190611908565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf9190611cfd565b610996565b6040516103e1919061187f565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104b457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c457506104c382610a24565b5b9050919050565b60605f80546104d990611d68565b80601f016020809104026020016040519081016040528092919081815260200182805461050590611d68565b80156105505780601f1061052757610100808354040283529160200191610550565b820191905f5260205f20905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b5f61056482610a8d565b5061056e82610b13565b9050919050565b6105878282610582610b4c565b610b53565b5050565b5f151560075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146105e3575f5ffd5b60065f8154809291906105f590611dc5565b919050555061060633600654610b65565b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b60065481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106ca91906119c5565b60405180910390fd5b5f6106e683836106e1610b4c565b610b82565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161075393929190611e0c565b60405180910390fd5b50505050565b61077c83838360405180602001604052805f81525061090b565b505050565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f6107a882610a8d565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610820575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161081791906119c5565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461087490611d68565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090611d68565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b610907610900610b4c565b8383610d8d565b5050565b610916848484610663565b61092a610921610b4c565b85858585610f66565b50505050565b606061093b82610a8d565b505f610945611112565b90505f8151116109635760405180602001604052805f81525061098e565b8061096d84611128565b60405160200161097e929190611e7b565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f610a98836111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610b019190611a55565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610b60838383600161122b565b505050565b610b7e828260405180602001604052805f8152506113ea565b5050565b5f5f610b8d846111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610bce57610bcd81848661140d565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5957610c0d5f855f5f61122b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610cd857600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfd575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610df491906119c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6d57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610e6491906119c5565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f59919061187f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561110b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610fc49493929190611ef0565b6020604051808303815f875af1925050508015610fff57506040513d601f19601f82011682018060405250810190610ffc9190611f4e565b60015b611080573d805f811461102d576040519150601f19603f3d011682016040523d82523d5f602084013e611032565b606091505b505f81510361107857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161106f91906119c5565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461110957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161110091906119c5565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611136846114d0565b0190505f8167ffffffffffffffff81111561115457611153611b59565b5b6040519080825280601f01601f1916602001820160405280156111865781602001600182028036833780820191505090505b5090505f82602083010190505b6001156111e7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111dc576111db611f79565b5b0494505f8503611193575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061126357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611395575f61127284610a8d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112dc57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57506112ed8184610996565b155b1561133157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161132891906119c5565b60405180910390fd5b811561139357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113f48383611621565b6114086113ff610b4c565b5f858585610f66565b505050565b611418838383611714565b6114cb575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114839190611a55565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016114c2929190611fa6565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061152c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161152257611521611f79565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611569576d04ee2d6d415b85acef8100000000838161155f5761155e611f79565b5b0492506020810190505b662386f26fc10000831061159857662386f26fc10000838161158e5761158d611f79565b5b0492506010810190505b6305f5e10083106115c1576305f5e10083816115b7576115b6611f79565b5b0492506008810190505b61271083106115e65761271083816115dc576115db611f79565b5b0492506004810190505b6064831061160957606483816115ff576115fe611f79565b5b0492506002810190505b600a8310611618576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611691575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161168891906119c5565b60405180910390fd5b5f61169d83835f610b82565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461170f575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161170691906119c5565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cb57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061178c575061178b8484610996565b5b806117ca57508273ffffffffffffffffffffffffffffffffffffffff166117b283610b13565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611819816117e5565b8114611823575f5ffd5b50565b5f8135905061183481611810565b92915050565b5f6020828403121561184f5761184e6117dd565b5b5f61185c84828501611826565b91505092915050565b5f8115159050919050565b61187981611865565b82525050565b5f6020820190506118925f830184611870565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118da82611898565b6118e481856118a2565b93506118f48185602086016118b2565b6118fd816118c0565b840191505092915050565b5f6020820190508181035f83015261192081846118d0565b905092915050565b5f819050919050565b61193a81611928565b8114611944575f5ffd5b50565b5f8135905061195581611931565b92915050565b5f602082840312156119705761196f6117dd565b5b5f61197d84828501611947565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119af82611986565b9050919050565b6119bf816119a5565b82525050565b5f6020820190506119d85f8301846119b6565b92915050565b6119e7816119a5565b81146119f1575f5ffd5b50565b5f81359050611a02816119de565b92915050565b5f5f60408385031215611a1e57611a1d6117dd565b5b5f611a2b858286016119f4565b9250506020611a3c85828601611947565b9150509250929050565b611a4f81611928565b82525050565b5f602082019050611a685f830184611a46565b92915050565b5f5f5f60608486031215611a8557611a846117dd565b5b5f611a92868287016119f4565b9350506020611aa3868287016119f4565b9250506040611ab486828701611947565b9150509250925092565b5f60208284031215611ad357611ad26117dd565b5b5f611ae0848285016119f4565b91505092915050565b611af281611865565b8114611afc575f5ffd5b50565b5f81359050611b0d81611ae9565b92915050565b5f5f60408385031215611b2957611b286117dd565b5b5f611b36858286016119f4565b9250506020611b4785828601611aff565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b8f826118c0565b810181811067ffffffffffffffff82111715611bae57611bad611b59565b5b80604052505050565b5f611bc06117d4565b9050611bcc8282611b86565b919050565b5f67ffffffffffffffff821115611beb57611bea611b59565b5b611bf4826118c0565b9050602081019050919050565b828183375f83830152505050565b5f611c21611c1c84611bd1565b611bb7565b905082815260208101848484011115611c3d57611c3c611b55565b5b611c48848285611c01565b509392505050565b5f82601f830112611c6457611c63611b51565b5b8135611c74848260208601611c0f565b91505092915050565b5f5f5f5f60808587031215611c9557611c946117dd565b5b5f611ca2878288016119f4565b9450506020611cb3878288016119f4565b9350506040611cc487828801611947565b925050606085013567ffffffffffffffff811115611ce557611ce46117e1565b5b611cf187828801611c50565b91505092959194509250565b5f5f60408385031215611d1357611d126117dd565b5b5f611d20858286016119f4565b9250506020611d31858286016119f4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d7f57607f821691505b602082108103611d9257611d91611d3b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcf82611928565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e0157611e00611d98565b5b600182019050919050565b5f606082019050611e1f5f8301866119b6565b611e2c6020830185611a46565b611e3960408301846119b6565b949350505050565b5f81905092915050565b5f611e5582611898565b611e5f8185611e41565b9350611e6f8185602086016118b2565b80840191505092915050565b5f611e868285611e4b565b9150611e928284611e4b565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec282611e9e565b611ecc8185611ea8565b9350611edc8185602086016118b2565b611ee5816118c0565b840191505092915050565b5f608082019050611f035f8301876119b6565b611f1060208301866119b6565b611f1d6040830185611a46565b8181036060830152611f2f8184611eb8565b905095945050505050565b5f81519050611f4881611810565b92915050565b5f60208284031215611f6357611f626117dd565b5b5f611f7084828501611f3a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611fb95f8301856119b6565b611fc66020830184611a46565b939250505056fea26469706673582212206e7a030fd0244872036205eba3f810696332968dcf97c07c592f1b99a4f8eb7564736f6c63430008220033","sourceMap":"240:625:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;550:313:144;;;:::i;:::-;;279:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3852:578:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:45:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2103:118:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;550:313:144:-;661:5;632:34;;:13;:25;646:10;632:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;624:43;;;;;;707:11;;:13;;;;;;;;;:::i;:::-;;;;;;746:34;756:10;768:11;;746:9;:34::i;:::-;852:4;824:13;:25;838:10;824:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;550:313::o;279:26::-;;;;:::o;3852:578:25:-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;311:45:144:-;;;;;;;;;;;;;;;;;;;;;;:::o;2103:118:25:-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;10302:100::-;10369:26;10379:2;10383:7;10369:26;;;;;;;;;;;;:9;:26::i;:::-;10302:100;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;5378:115:25:-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;10623:207::-;10717:18;10723:2;10727:7;10717:5;:18::i;:::-;10745:78;10779:12;:10;:12::i;:::-;10801:1;10805:2;10809:7;10818:4;10745:33;:78::i;:::-;10623:207;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;9624:327:25:-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;6047:272::-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:118::-;4870:24;4888:5;4870:24;:::i;:::-;4865:3;4858:37;4783:118;;:::o;4907:222::-;5000:4;5038:2;5027:9;5023:18;5015:26;;5051:71;5119:1;5108:9;5104:17;5095:6;5051:71;:::i;:::-;4907:222;;;;:::o;5135:619::-;5212:6;5220;5228;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5374:117;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5658:2;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5629:118;5135:619;;;;;:::o;5760:329::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:53;6064:7;6055:6;6044:9;6040:22;6019:53;:::i;:::-;6009:63;;5965:117;5760:329;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:180::-;10926:77;10923:1;10916:88;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11064:233;11103:3;11126:24;11144:5;11126:24;:::i;:::-;11117:33;;11172:66;11165:5;11162:77;11159:103;;11242:18;;:::i;:::-;11159:103;11289:1;11282:5;11278:13;11271:20;;11064:233;;;:::o;11303:442::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11584:72;11652:2;11641:9;11637:18;11628:6;11584:72;:::i;:::-;11666;11734:2;11723:9;11719:18;11710:6;11666:72;:::i;:::-;11303:442;;;;;;:::o;11751:148::-;11853:11;11890:3;11875:18;;11751:148;;;;:::o;11905:390::-;12011:3;12039:39;12072:5;12039:39;:::i;:::-;12094:89;12176:6;12171:3;12094:89;:::i;:::-;12087:96;;12192:65;12250:6;12245:3;12238:4;12231:5;12227:16;12192:65;:::i;:::-;12282:6;12277:3;12273:16;12266:23;;12015:280;11905:390;;;;:::o;12301:435::-;12481:3;12503:95;12594:3;12585:6;12503:95;:::i;:::-;12496:102;;12615:95;12706:3;12697:6;12615:95;:::i;:::-;12608:102;;12727:3;12720:10;;12301:435;;;;;:::o;12742:98::-;12793:6;12827:5;12821:12;12811:22;;12742:98;;;:::o;12846:168::-;12929:11;12963:6;12958:3;12951:19;13003:4;12998:3;12994:14;12979:29;;12846:168;;;;:::o;13020:373::-;13106:3;13134:38;13166:5;13134:38;:::i;:::-;13188:70;13251:6;13246:3;13188:70;:::i;:::-;13181:77;;13267:65;13325:6;13320:3;13313:4;13306:5;13302:16;13267:65;:::i;:::-;13357:29;13379:6;13357:29;:::i;:::-;13352:3;13348:39;13341:46;;13110:283;13020:373;;;;:::o;13399:640::-;13594:4;13632:3;13621:9;13617:19;13609:27;;13646:71;13714:1;13703:9;13699:17;13690:6;13646:71;:::i;:::-;13727:72;13795:2;13784:9;13780:18;13771:6;13727:72;:::i;:::-;13809;13877:2;13866:9;13862:18;13853:6;13809:72;:::i;:::-;13928:9;13922:4;13918:20;13913:2;13902:9;13898:18;13891:48;13956:76;14027:4;14018:6;13956:76;:::i;:::-;13948:84;;13399:640;;;;;;;:::o;14045:141::-;14101:5;14132:6;14126:13;14117:22;;14148:32;14174:5;14148:32;:::i;:::-;14045:141;;;;:::o;14192:349::-;14261:6;14310:2;14298:9;14289:7;14285:23;14281:32;14278:119;;;14316:79;;:::i;:::-;14278:119;14436:1;14461:63;14516:7;14507:6;14496:9;14492:22;14461:63;:::i;:::-;14451:73;;14407:127;14192:349;;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:332;14854:4;14892:2;14881:9;14877:18;14869:26;;14905:71;14973:1;14962:9;14958:17;14949:6;14905:71;:::i;:::-;14986:72;15054:2;15043:9;15039:18;15030:6;14986:72;:::i;:::-;14733:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint()":"1249c58b","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S16_NFTReentrancy/NFTReentrancy.sol\":\"NFTReentrancy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S16_NFTReentrancy/NFTReentrancy.sol\":{\"keccak256\":\"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd\",\"dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S16_NFTReentrancy/NFTReentrancy.sol":"NFTReentrancy"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S16_NFTReentrancy/NFTReentrancy.sol":{"keccak256":"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc","urls":["bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd","dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV"],"license":"MIT"}},"version":1},"id":144} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600b81526020017f5265656e747279204e46540000000000000000000000000000000000000000008152506040518060400160405280600581526020017f52654e4654000000000000000000000000000000000000000000000000000000815250815f908161008a91906102f0565b50806001908161009a91906102f0565b5050506103bf565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f5f905090565b610224610215565b61022f8184846101f0565b505050565b5f5b828110156102555761024a5f82840161021c565b600181019050610236565b505050565b601f8211156102a857828211156102a75761027481610136565b61027d83610148565b61028685610148565b6020861015610293575f90505b8083016102a282840382610234565b505050505b5b505050565b5f82821c905092915050565b5f6102c85f19846008026102ad565b1980831691505092915050565b5f6102e083836102b9565b9150826002028217905092915050565b6102f9826100a2565b67ffffffffffffffff811115610312576103116100ac565b5b61031c8254610106565b61032782828561025a565b5f60209050601f831160018114610358575f8415610346578287015190505b61035085826102d5565b8655506103b7565b601f19841661036686610136565b5f5b8281101561038d57848901518255600182019150602085019450602081019050610368565b868310156103aa57848901516103a6601f8916826102b9565b8355505b6001600288020188555050505b505050505050565b612003806103cc5f395ff3fe6080604052600436106100f2575f3560e01c8063630303c611610089578063a22cb46511610058578063a22cb46514610322578063b88d4fde1461034a578063c87b56dd14610372578063e985e9c5146103ae576100f2565b8063630303c6146102445780636352211e1461028057806370a08231146102bc57806395d89b41146102f8576100f2565b80631249c58b116100c55780631249c58b146101c057806318160ddd146101ca57806323b872dd146101f457806342842e0e1461021c576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f5ffd5b348015610101575f5ffd5b5061011c6004803603810190610117919061183a565b6103ea565b604051610129919061187f565b60405180910390f35b34801561013d575f5ffd5b506101466104cb565b6040516101539190611908565b60405180910390f35b348015610167575f5ffd5b50610182600480360381019061017d919061195b565b61055a565b60405161018f91906119c5565b60405180910390f35b3480156101a3575f5ffd5b506101be60048036038101906101b99190611a08565b610575565b005b6101c861058b565b005b3480156101d5575f5ffd5b506101de61065d565b6040516101eb9190611a55565b60405180910390f35b3480156101ff575f5ffd5b5061021a60048036038101906102159190611a6e565b610663565b005b348015610227575f5ffd5b50610242600480360381019061023d9190611a6e565b610762565b005b34801561024f575f5ffd5b5061026a60048036038101906102659190611abe565b610781565b604051610277919061187f565b60405180910390f35b34801561028b575f5ffd5b506102a660048036038101906102a1919061195b565b61079e565b6040516102b391906119c5565b60405180910390f35b3480156102c7575f5ffd5b506102e260048036038101906102dd9190611abe565b6107af565b6040516102ef9190611a55565b60405180910390f35b348015610303575f5ffd5b5061030c610865565b6040516103199190611908565b60405180910390f35b34801561032d575f5ffd5b5061034860048036038101906103439190611b13565b6108f5565b005b348015610355575f5ffd5b50610370600480360381019061036b9190611c7d565b61090b565b005b34801561037d575f5ffd5b506103986004803603810190610393919061195b565b610930565b6040516103a59190611908565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf9190611cfd565b610996565b6040516103e1919061187f565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104b457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c457506104c382610a24565b5b9050919050565b60605f80546104d990611d68565b80601f016020809104026020016040519081016040528092919081815260200182805461050590611d68565b80156105505780601f1061052757610100808354040283529160200191610550565b820191905f5260205f20905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b5f61056482610a8d565b5061056e82610b13565b9050919050565b6105878282610582610b4c565b610b53565b5050565b5f151560075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146105e3575f5ffd5b60065f8154809291906105f590611dc5565b919050555061060633600654610b65565b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b60065481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106ca91906119c5565b60405180910390fd5b5f6106e683836106e1610b4c565b610b82565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161075393929190611e0c565b60405180910390fd5b50505050565b61077c83838360405180602001604052805f81525061090b565b505050565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f6107a882610a8d565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610820575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161081791906119c5565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461087490611d68565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090611d68565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b610907610900610b4c565b8383610d8d565b5050565b610916848484610663565b61092a610921610b4c565b85858585610f66565b50505050565b606061093b82610a8d565b505f610945611112565b90505f8151116109635760405180602001604052805f81525061098e565b8061096d84611128565b60405160200161097e929190611e7b565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f610a98836111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610b019190611a55565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610b60838383600161122b565b505050565b610b7e828260405180602001604052805f8152506113ea565b5050565b5f5f610b8d846111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610bce57610bcd81848661140d565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5957610c0d5f855f5f61122b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610cd857600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfd575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610df491906119c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6d57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610e6491906119c5565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f59919061187f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561110b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610fc49493929190611ef0565b6020604051808303815f875af1925050508015610fff57506040513d601f19601f82011682018060405250810190610ffc9190611f4e565b60015b611080573d805f811461102d576040519150601f19603f3d011682016040523d82523d5f602084013e611032565b606091505b505f81510361107857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161106f91906119c5565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461110957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161110091906119c5565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611136846114d0565b0190505f8167ffffffffffffffff81111561115457611153611b59565b5b6040519080825280601f01601f1916602001820160405280156111865781602001600182028036833780820191505090505b5090505f82602083010190505b6001156111e7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111dc576111db611f79565b5b0494505f8503611193575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061126357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611395575f61127284610a8d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112dc57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57506112ed8184610996565b155b1561133157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161132891906119c5565b60405180910390fd5b811561139357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113f48383611621565b6114086113ff610b4c565b5f858585610f66565b505050565b611418838383611714565b6114cb575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114839190611a55565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016114c2929190611fa6565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061152c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161152257611521611f79565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611569576d04ee2d6d415b85acef8100000000838161155f5761155e611f79565b5b0492506020810190505b662386f26fc10000831061159857662386f26fc10000838161158e5761158d611f79565b5b0492506010810190505b6305f5e10083106115c1576305f5e10083816115b7576115b6611f79565b5b0492506008810190505b61271083106115e65761271083816115dc576115db611f79565b5b0492506004810190505b6064831061160957606483816115ff576115fe611f79565b5b0492506002810190505b600a8310611618576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611691575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161168891906119c5565b60405180910390fd5b5f61169d83835f610b82565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461170f575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161170691906119c5565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cb57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061178c575061178b8484610996565b5b806117ca57508273ffffffffffffffffffffffffffffffffffffffff166117b283610b13565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611819816117e5565b8114611823575f5ffd5b50565b5f8135905061183481611810565b92915050565b5f6020828403121561184f5761184e6117dd565b5b5f61185c84828501611826565b91505092915050565b5f8115159050919050565b61187981611865565b82525050565b5f6020820190506118925f830184611870565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118da82611898565b6118e481856118a2565b93506118f48185602086016118b2565b6118fd816118c0565b840191505092915050565b5f6020820190508181035f83015261192081846118d0565b905092915050565b5f819050919050565b61193a81611928565b8114611944575f5ffd5b50565b5f8135905061195581611931565b92915050565b5f602082840312156119705761196f6117dd565b5b5f61197d84828501611947565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119af82611986565b9050919050565b6119bf816119a5565b82525050565b5f6020820190506119d85f8301846119b6565b92915050565b6119e7816119a5565b81146119f1575f5ffd5b50565b5f81359050611a02816119de565b92915050565b5f5f60408385031215611a1e57611a1d6117dd565b5b5f611a2b858286016119f4565b9250506020611a3c85828601611947565b9150509250929050565b611a4f81611928565b82525050565b5f602082019050611a685f830184611a46565b92915050565b5f5f5f60608486031215611a8557611a846117dd565b5b5f611a92868287016119f4565b9350506020611aa3868287016119f4565b9250506040611ab486828701611947565b9150509250925092565b5f60208284031215611ad357611ad26117dd565b5b5f611ae0848285016119f4565b91505092915050565b611af281611865565b8114611afc575f5ffd5b50565b5f81359050611b0d81611ae9565b92915050565b5f5f60408385031215611b2957611b286117dd565b5b5f611b36858286016119f4565b9250506020611b4785828601611aff565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b8f826118c0565b810181811067ffffffffffffffff82111715611bae57611bad611b59565b5b80604052505050565b5f611bc06117d4565b9050611bcc8282611b86565b919050565b5f67ffffffffffffffff821115611beb57611bea611b59565b5b611bf4826118c0565b9050602081019050919050565b828183375f83830152505050565b5f611c21611c1c84611bd1565b611bb7565b905082815260208101848484011115611c3d57611c3c611b55565b5b611c48848285611c01565b509392505050565b5f82601f830112611c6457611c63611b51565b5b8135611c74848260208601611c0f565b91505092915050565b5f5f5f5f60808587031215611c9557611c946117dd565b5b5f611ca2878288016119f4565b9450506020611cb3878288016119f4565b9350506040611cc487828801611947565b925050606085013567ffffffffffffffff811115611ce557611ce46117e1565b5b611cf187828801611c50565b91505092959194509250565b5f5f60408385031215611d1357611d126117dd565b5b5f611d20858286016119f4565b9250506020611d31858286016119f4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d7f57607f821691505b602082108103611d9257611d91611d3b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcf82611928565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e0157611e00611d98565b5b600182019050919050565b5f606082019050611e1f5f8301866119b6565b611e2c6020830185611a46565b611e3960408301846119b6565b949350505050565b5f81905092915050565b5f611e5582611898565b611e5f8185611e41565b9350611e6f8185602086016118b2565b80840191505092915050565b5f611e868285611e4b565b9150611e928284611e4b565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec282611e9e565b611ecc8185611ea8565b9350611edc8185602086016118b2565b611ee5816118c0565b840191505092915050565b5f608082019050611f035f8301876119b6565b611f1060208301866119b6565b611f1d6040830185611a46565b8181036060830152611f2f8184611eb8565b905095945050505050565b5f81519050611f4881611810565b92915050565b5f60208284031215611f6357611f626117dd565b5b5f611f7084828501611f3a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611fb95f8301856119b6565b611fc66020830184611a46565b939250505056fea26469706673582212206e7a030fd0244872036205eba3f810696332968dcf97c07c592f1b99a4f8eb7564736f6c63430008220033","sourceMap":"240:625:138:-:0;;;421:46;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;240:625:138;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;240:625:138:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100f2575f3560e01c8063630303c611610089578063a22cb46511610058578063a22cb46514610322578063b88d4fde1461034a578063c87b56dd14610372578063e985e9c5146103ae576100f2565b8063630303c6146102445780636352211e1461028057806370a08231146102bc57806395d89b41146102f8576100f2565b80631249c58b116100c55780631249c58b146101c057806318160ddd146101ca57806323b872dd146101f457806342842e0e1461021c576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f5ffd5b348015610101575f5ffd5b5061011c6004803603810190610117919061183a565b6103ea565b604051610129919061187f565b60405180910390f35b34801561013d575f5ffd5b506101466104cb565b6040516101539190611908565b60405180910390f35b348015610167575f5ffd5b50610182600480360381019061017d919061195b565b61055a565b60405161018f91906119c5565b60405180910390f35b3480156101a3575f5ffd5b506101be60048036038101906101b99190611a08565b610575565b005b6101c861058b565b005b3480156101d5575f5ffd5b506101de61065d565b6040516101eb9190611a55565b60405180910390f35b3480156101ff575f5ffd5b5061021a60048036038101906102159190611a6e565b610663565b005b348015610227575f5ffd5b50610242600480360381019061023d9190611a6e565b610762565b005b34801561024f575f5ffd5b5061026a60048036038101906102659190611abe565b610781565b604051610277919061187f565b60405180910390f35b34801561028b575f5ffd5b506102a660048036038101906102a1919061195b565b61079e565b6040516102b391906119c5565b60405180910390f35b3480156102c7575f5ffd5b506102e260048036038101906102dd9190611abe565b6107af565b6040516102ef9190611a55565b60405180910390f35b348015610303575f5ffd5b5061030c610865565b6040516103199190611908565b60405180910390f35b34801561032d575f5ffd5b5061034860048036038101906103439190611b13565b6108f5565b005b348015610355575f5ffd5b50610370600480360381019061036b9190611c7d565b61090b565b005b34801561037d575f5ffd5b506103986004803603810190610393919061195b565b610930565b6040516103a59190611908565b60405180910390f35b3480156103b9575f5ffd5b506103d460048036038101906103cf9190611cfd565b610996565b6040516103e1919061187f565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104b457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c457506104c382610a24565b5b9050919050565b60605f80546104d990611d68565b80601f016020809104026020016040519081016040528092919081815260200182805461050590611d68565b80156105505780601f1061052757610100808354040283529160200191610550565b820191905f5260205f20905b81548152906001019060200180831161053357829003601f168201915b5050505050905090565b5f61056482610a8d565b5061056e82610b13565b9050919050565b6105878282610582610b4c565b610b53565b5050565b5f151560075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515146105e3575f5ffd5b60065f8154809291906105f590611dc5565b919050555061060633600654610b65565b600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550565b60065481565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d3575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106ca91906119c5565b60405180910390fd5b5f6106e683836106e1610b4c565b610b82565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161075393929190611e0c565b60405180910390fd5b50505050565b61077c83838360405180602001604052805f81525061090b565b505050565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f6107a882610a8d565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610820575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161081791906119c5565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461087490611d68565b80601f01602080910402602001604051908101604052809291908181526020018280546108a090611d68565b80156108eb5780601f106108c2576101008083540402835291602001916108eb565b820191905f5260205f20905b8154815290600101906020018083116108ce57829003601f168201915b5050505050905090565b610907610900610b4c565b8383610d8d565b5050565b610916848484610663565b61092a610921610b4c565b85858585610f66565b50505050565b606061093b82610a8d565b505f610945611112565b90505f8151116109635760405180602001604052805f81525061098e565b8061096d84611128565b60405160200161097e929190611e7b565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f610a98836111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b0a57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610b019190611a55565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610b60838383600161122b565b505050565b610b7e828260405180602001604052805f8152506113ea565b5050565b5f5f610b8d846111f2565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610bce57610bcd81848661140d565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5957610c0d5f855f5f61122b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610cd857600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dfd575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610df491906119c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6d57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610e6491906119c5565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f59919061187f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561110b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610fc49493929190611ef0565b6020604051808303815f875af1925050508015610fff57506040513d601f19601f82011682018060405250810190610ffc9190611f4e565b60015b611080573d805f811461102d576040519150601f19603f3d011682016040523d82523d5f602084013e611032565b606091505b505f81510361107857836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161106f91906119c5565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461110957836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161110091906119c5565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611136846114d0565b0190505f8167ffffffffffffffff81111561115457611153611b59565b5b6040519080825280601f01601f1916602001820160405280156111865781602001600182028036833780820191505090505b5090505f82602083010190505b6001156111e7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816111dc576111db611f79565b5b0494505f8503611193575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061126357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611395575f61127284610a8d565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112dc57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef57506112ed8184610996565b155b1561133157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161132891906119c5565b60405180910390fd5b811561139357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113f48383611621565b6114086113ff610b4c565b5f858585610f66565b505050565b611418838383611714565b6114cb575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114839190611a55565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016114c2929190611fa6565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061152c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161152257611521611f79565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611569576d04ee2d6d415b85acef8100000000838161155f5761155e611f79565b5b0492506020810190505b662386f26fc10000831061159857662386f26fc10000838161158e5761158d611f79565b5b0492506010810190505b6305f5e10083106115c1576305f5e10083816115b7576115b6611f79565b5b0492506008810190505b61271083106115e65761271083816115dc576115db611f79565b5b0492506004810190505b6064831061160957606483816115ff576115fe611f79565b5b0492506002810190505b600a8310611618576001810190505b80915050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611691575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161168891906119c5565b60405180910390fd5b5f61169d83835f610b82565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461170f575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161170691906119c5565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cb57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061178c575061178b8484610996565b5b806117ca57508273ffffffffffffffffffffffffffffffffffffffff166117b283610b13565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611819816117e5565b8114611823575f5ffd5b50565b5f8135905061183481611810565b92915050565b5f6020828403121561184f5761184e6117dd565b5b5f61185c84828501611826565b91505092915050565b5f8115159050919050565b61187981611865565b82525050565b5f6020820190506118925f830184611870565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6118da82611898565b6118e481856118a2565b93506118f48185602086016118b2565b6118fd816118c0565b840191505092915050565b5f6020820190508181035f83015261192081846118d0565b905092915050565b5f819050919050565b61193a81611928565b8114611944575f5ffd5b50565b5f8135905061195581611931565b92915050565b5f602082840312156119705761196f6117dd565b5b5f61197d84828501611947565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119af82611986565b9050919050565b6119bf816119a5565b82525050565b5f6020820190506119d85f8301846119b6565b92915050565b6119e7816119a5565b81146119f1575f5ffd5b50565b5f81359050611a02816119de565b92915050565b5f5f60408385031215611a1e57611a1d6117dd565b5b5f611a2b858286016119f4565b9250506020611a3c85828601611947565b9150509250929050565b611a4f81611928565b82525050565b5f602082019050611a685f830184611a46565b92915050565b5f5f5f60608486031215611a8557611a846117dd565b5b5f611a92868287016119f4565b9350506020611aa3868287016119f4565b9250506040611ab486828701611947565b9150509250925092565b5f60208284031215611ad357611ad26117dd565b5b5f611ae0848285016119f4565b91505092915050565b611af281611865565b8114611afc575f5ffd5b50565b5f81359050611b0d81611ae9565b92915050565b5f5f60408385031215611b2957611b286117dd565b5b5f611b36858286016119f4565b9250506020611b4785828601611aff565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b8f826118c0565b810181811067ffffffffffffffff82111715611bae57611bad611b59565b5b80604052505050565b5f611bc06117d4565b9050611bcc8282611b86565b919050565b5f67ffffffffffffffff821115611beb57611bea611b59565b5b611bf4826118c0565b9050602081019050919050565b828183375f83830152505050565b5f611c21611c1c84611bd1565b611bb7565b905082815260208101848484011115611c3d57611c3c611b55565b5b611c48848285611c01565b509392505050565b5f82601f830112611c6457611c63611b51565b5b8135611c74848260208601611c0f565b91505092915050565b5f5f5f5f60808587031215611c9557611c946117dd565b5b5f611ca2878288016119f4565b9450506020611cb3878288016119f4565b9350506040611cc487828801611947565b925050606085013567ffffffffffffffff811115611ce557611ce46117e1565b5b611cf187828801611c50565b91505092959194509250565b5f5f60408385031215611d1357611d126117dd565b5b5f611d20858286016119f4565b9250506020611d31858286016119f4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d7f57607f821691505b602082108103611d9257611d91611d3b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dcf82611928565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e0157611e00611d98565b5b600182019050919050565b5f606082019050611e1f5f8301866119b6565b611e2c6020830185611a46565b611e3960408301846119b6565b949350505050565b5f81905092915050565b5f611e5582611898565b611e5f8185611e41565b9350611e6f8185602086016118b2565b80840191505092915050565b5f611e868285611e4b565b9150611e928284611e4b565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec282611e9e565b611ecc8185611ea8565b9350611edc8185602086016118b2565b611ee5816118c0565b840191505092915050565b5f608082019050611f035f8301876119b6565b611f1060208301866119b6565b611f1d6040830185611a46565b8181036060830152611f2f8184611eb8565b905095945050505050565b5f81519050611f4881611810565b92915050565b5f60208284031215611f6357611f626117dd565b5b5f611f7084828501611f3a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050611fb95f8301856119b6565b611fc66020830184611a46565b939250505056fea26469706673582212206e7a030fd0244872036205eba3f810696332968dcf97c07c592f1b99a4f8eb7564736f6c63430008220033","sourceMap":"240:625:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;550:313:138;;;:::i;:::-;;279:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3852:578:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;311:45:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2103:118:25;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;550:313:138:-;661:5;632:34;;:13;:25;646:10;632:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;624:43;;;;;;707:11;;:13;;;;;;;;;:::i;:::-;;;;;;746:34;756:10;768:11;;746:9;:34::i;:::-;852:4;824:13;:25;838:10;824:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;550:313::o;279:26::-;;;;:::o;3852:578:25:-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;311:45:138:-;;;;;;;;;;;;;;;;;;;;;;:::o;2103:118:25:-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;10302:100::-;10369:26;10379:2;10383:7;10369:26;;;;;;;;;;;;:9;:26::i;:::-;10302:100;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;5378:115:25:-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;10623:207::-;10717:18;10723:2;10727:7;10717:5;:18::i;:::-;10745:78;10779:12;:10;:12::i;:::-;10801:1;10805:2;10809:7;10818:4;10745:33;:78::i;:::-;10623:207;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;9624:327:25:-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;6047:272::-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:118::-;4870:24;4888:5;4870:24;:::i;:::-;4865:3;4858:37;4783:118;;:::o;4907:222::-;5000:4;5038:2;5027:9;5023:18;5015:26;;5051:71;5119:1;5108:9;5104:17;5095:6;5051:71;:::i;:::-;4907:222;;;;:::o;5135:619::-;5212:6;5220;5228;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5374:117;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5658:2;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5629:118;5135:619;;;;;:::o;5760:329::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:53;6064:7;6055:6;6044:9;6040:22;6019:53;:::i;:::-;6009:63;;5965:117;5760:329;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:180::-;10926:77;10923:1;10916:88;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11064:233;11103:3;11126:24;11144:5;11126:24;:::i;:::-;11117:33;;11172:66;11165:5;11162:77;11159:103;;11242:18;;:::i;:::-;11159:103;11289:1;11282:5;11278:13;11271:20;;11064:233;;;:::o;11303:442::-;11452:4;11490:2;11479:9;11475:18;11467:26;;11503:71;11571:1;11560:9;11556:17;11547:6;11503:71;:::i;:::-;11584:72;11652:2;11641:9;11637:18;11628:6;11584:72;:::i;:::-;11666;11734:2;11723:9;11719:18;11710:6;11666:72;:::i;:::-;11303:442;;;;;;:::o;11751:148::-;11853:11;11890:3;11875:18;;11751:148;;;;:::o;11905:390::-;12011:3;12039:39;12072:5;12039:39;:::i;:::-;12094:89;12176:6;12171:3;12094:89;:::i;:::-;12087:96;;12192:65;12250:6;12245:3;12238:4;12231:5;12227:16;12192:65;:::i;:::-;12282:6;12277:3;12273:16;12266:23;;12015:280;11905:390;;;;:::o;12301:435::-;12481:3;12503:95;12594:3;12585:6;12503:95;:::i;:::-;12496:102;;12615:95;12706:3;12697:6;12615:95;:::i;:::-;12608:102;;12727:3;12720:10;;12301:435;;;;;:::o;12742:98::-;12793:6;12827:5;12821:12;12811:22;;12742:98;;;:::o;12846:168::-;12929:11;12963:6;12958:3;12951:19;13003:4;12998:3;12994:14;12979:29;;12846:168;;;;:::o;13020:373::-;13106:3;13134:38;13166:5;13134:38;:::i;:::-;13188:70;13251:6;13246:3;13188:70;:::i;:::-;13181:77;;13267:65;13325:6;13320:3;13313:4;13306:5;13302:16;13267:65;:::i;:::-;13357:29;13379:6;13357:29;:::i;:::-;13352:3;13348:39;13341:46;;13110:283;13020:373;;;;:::o;13399:640::-;13594:4;13632:3;13621:9;13617:19;13609:27;;13646:71;13714:1;13703:9;13699:17;13690:6;13646:71;:::i;:::-;13727:72;13795:2;13784:9;13780:18;13771:6;13727:72;:::i;:::-;13809;13877:2;13866:9;13862:18;13853:6;13809:72;:::i;:::-;13928:9;13922:4;13918:20;13913:2;13902:9;13898:18;13891:48;13956:76;14027:4;14018:6;13956:76;:::i;:::-;13948:84;;13399:640;;;;;;;:::o;14045:141::-;14101:5;14132:6;14126:13;14117:22;;14148:32;14174:5;14148:32;:::i;:::-;14045:141;;;;:::o;14192:349::-;14261:6;14310:2;14298:9;14289:7;14285:23;14281:32;14278:119;;;14316:79;;:::i;:::-;14278:119;14436:1;14461:63;14516:7;14507:6;14496:9;14492:22;14461:63;:::i;:::-;14451:73;;14407:127;14192:349;;;;:::o;14547:180::-;14595:77;14592:1;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14733:332;14854:4;14892:2;14881:9;14877:18;14869:26;;14905:71;14973:1;14962:9;14958:17;14949:6;14905:71;:::i;:::-;14986:72;15054:2;15043:9;15039:18;15030:6;14986:72;:::i;:::-;14733:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint()":"1249c58b","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S16_NFTReentrancy/NFTReentrancy.sol\":\"NFTReentrancy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S16_NFTReentrancy/NFTReentrancy.sol\":{\"keccak256\":\"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd\",\"dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S16_NFTReentrancy/NFTReentrancy.sol":"NFTReentrancy"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S16_NFTReentrancy/NFTReentrancy.sol":{"keccak256":"0x4d3e50c2f1b37705b7fa68591c63759d5922569d805faf4aa59ca1956af86adc","urls":["bzz-raw://e03e8b59cc6404ad8f1eb3d93cfde01f363362a01dffa98ecb59c0604e766cfd","dweb:/ipfs/QmT1Lf7Cring1sHNNFYnVbrr2ud1aE4nZb6hgg7LvA8FrV"],"license":"MIT"}},"version":1},"id":138} \ No newline at end of file diff --git a/out/NFTSwap.sol/NFTSwap.json b/out/NFTSwap.sol/NFTSwap.json index ba866e38..764ef230 100644 --- a/out/NFTSwap.sol/NFTSwap.json +++ b/out/NFTSwap.sol/NFTSwap.json @@ -1 +1 @@ -{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"list","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_price","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nftList","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"purchase","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"update","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_newPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"List","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Purchase","inputs":[{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Revoke","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Update","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newPrice","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506113708061001c5f395ff3fe608060405260043610610058575f3560e01c8063150b7a021461005b5780638de9322214610097578063ba5f4fb2146100b3578063d09b6d43146100f0578063dda342bb14610118578063eac449d91461014057610059565b5b005b348015610066575f5ffd5b50610081600480360381019061007c9190610e8b565b610168565b60405161008e9190610f49565b60405180910390f35b6100b160048036038101906100ac9190610f62565b61017c565b005b3480156100be575f5ffd5b506100d960048036038101906100d49190610f62565b61055e565b6040516100e7929190610fbe565b60405180910390f35b3480156100fb575f5ffd5b5061011660048036038101906101119190610fe5565b6105a7565b005b348015610123575f5ffd5b5061013e60048036038101906101399190610fe5565b610826565b005b34801561014b575f5ffd5b5061016660048036038101906101619190610f62565b610a89565b005b5f63150b7a0260e01b905095945050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f816001015411610210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102079061108f565b60405180910390fd5b8060010154341015610257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024e906110f7565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004016102ab9190611115565b602060405180830381865afa1580156102c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190611142565b73ffffffffffffffffffffffffffffffffffffffff1614610340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610337906111b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b815260040161037d939291906111d5565b5f604051808303815f87803b158015610394575f5ffd5b505af11580156103a6573d5f5f3e3d5ffd5b50505050815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc836001015490811502906040515f60405180830381858888f19350505050158015610413573d5f5f3e3d5ffd5b508160010154341115610474573373ffffffffffffffffffffffffffffffffffffffff166108fc83600101543461044a9190611237565b90811502906040515f60405180830381858888f19350505050158015610472573d5f5f3e3d5ffd5b505b828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f46661dab58311a6838247afecbee792192b4f27fc8b3e7168c66bc55ec2e404e85600101546040516104d69190611115565b60405180910390a45f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f9055505050505050565b5f602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b5f81116105e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e09061108f565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be906112b4565b60405180910390fd5b5f8490503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff1660e01b815260040161071b9190611115565b602060405180830381865afa158015610736573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611142565b73ffffffffffffffffffffffffffffffffffffffff16146107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a7906111b7565b60405180910390fd5b828260010181905550838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7f0ca7cd5b24651672216886135b99ff40342bcf549009a4c6fc74f059fb9a0866040516108179190611115565b60405180910390a45050505050565b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663081812fc856040518263ffffffff1660e01b815260040161087a9190611115565b602060405180830381865afa158015610895573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611142565b73ffffffffffffffffffffffffffffffffffffffff161461090f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109069061131c565b60405180910390fd5b5f821161091a575f5ffd5b5f5f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600101819055508173ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016109ef939291906111d5565b5f604051808303815f87803b158015610a06575f5ffd5b505af1158015610a18573d5f5f3e3d5ffd5b50505050838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fedbdf022944a3291f4b30148903a84720506f48e10478ec5812e5caf30e1fab086604051610a7a9190611115565b60405180910390a45050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e906112b4565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b8152600401610bbb9190611115565b602060405180830381865afa158015610bd6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611142565b73ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c47906111b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b8152600401610c8d939291906111d5565b5f604051808303815f87803b158015610ca4575f5ffd5b505af1158015610cb6573d5f5f3e3d5ffd5b505050505f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f90555050828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb698e31a2abee5824d0d7bcfd2339aead7f9e9ae413fba50bf554ff3fa470b7b60405160405180910390a450505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dc682610d9d565b9050919050565b610dd681610dbc565b8114610de0575f5ffd5b50565b5f81359050610df181610dcd565b92915050565b5f819050919050565b610e0981610df7565b8114610e13575f5ffd5b50565b5f81359050610e2481610e00565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610e4b57610e4a610e2a565b5b8235905067ffffffffffffffff811115610e6857610e67610e2e565b5b602083019150836001820283011115610e8457610e83610e32565b5b9250929050565b5f5f5f5f5f60808688031215610ea457610ea3610d95565b5b5f610eb188828901610de3565b9550506020610ec288828901610de3565b9450506040610ed388828901610e16565b935050606086013567ffffffffffffffff811115610ef457610ef3610d99565b5b610f0088828901610e36565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f4381610f0f565b82525050565b5f602082019050610f5c5f830184610f3a565b92915050565b5f5f60408385031215610f7857610f77610d95565b5b5f610f8585828601610de3565b9250506020610f9685828601610e16565b9150509250929050565b610fa981610dbc565b82525050565b610fb881610df7565b82525050565b5f604082019050610fd15f830185610fa0565b610fde6020830184610faf565b9392505050565b5f5f5f60608486031215610ffc57610ffb610d95565b5b5f61100986828701610de3565b935050602061101a86828701610e16565b925050604061102b86828701610e16565b9150509250925092565b5f82825260208201905092915050565b7f496e76616c6964205072696365000000000000000000000000000000000000005f82015250565b5f611079600d83611035565b915061108482611045565b602082019050919050565b5f6020820190508181035f8301526110a68161106d565b9050919050565b7f496e6372656173652070726963650000000000000000000000000000000000005f82015250565b5f6110e1600e83611035565b91506110ec826110ad565b602082019050919050565b5f6020820190508181035f83015261110e816110d5565b9050919050565b5f6020820190506111285f830184610faf565b92915050565b5f8151905061113c81610dcd565b92915050565b5f6020828403121561115757611156610d95565b5b5f6111648482850161112e565b91505092915050565b7f496e76616c6964204f72646572000000000000000000000000000000000000005f82015250565b5f6111a1600d83611035565b91506111ac8261116d565b602082019050919050565b5f6020820190508181035f8301526111ce81611195565b9050919050565b5f6060820190506111e85f830186610fa0565b6111f56020830185610fa0565b6112026040830184610faf565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124182610df7565b915061124c83610df7565b92508282039050818111156112645761126361120a565b5b92915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f61129e600983611035565b91506112a98261126a565b602082019050919050565b5f6020820190508181035f8301526112cb81611292565b9050919050565b7f4e65656420417070726f76616c000000000000000000000000000000000000005f82015250565b5f611306600d83611035565b9150611311826112d2565b602082019050919050565b5f6020820190508181035f830152611333816112fa565b905091905056fea2646970667358221220d6bc663cb7a0ad0c3bb9afa7c829daae44aa1042931a3935e7d50d919d31803d64736f6c63430008220033","sourceMap":"171:4438:94:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c8063150b7a021461005b5780638de9322214610097578063ba5f4fb2146100b3578063d09b6d43146100f0578063dda342bb14610118578063eac449d91461014057610059565b5b005b348015610066575f5ffd5b50610081600480360381019061007c9190610e8b565b610168565b60405161008e9190610f49565b60405180910390f35b6100b160048036038101906100ac9190610f62565b61017c565b005b3480156100be575f5ffd5b506100d960048036038101906100d49190610f62565b61055e565b6040516100e7929190610fbe565b60405180910390f35b3480156100fb575f5ffd5b5061011660048036038101906101119190610fe5565b6105a7565b005b348015610123575f5ffd5b5061013e60048036038101906101399190610fe5565b610826565b005b34801561014b575f5ffd5b5061016660048036038101906101619190610f62565b610a89565b005b5f63150b7a0260e01b905095945050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f816001015411610210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102079061108f565b60405180910390fd5b8060010154341015610257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024e906110f7565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004016102ab9190611115565b602060405180830381865afa1580156102c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190611142565b73ffffffffffffffffffffffffffffffffffffffff1614610340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610337906111b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b815260040161037d939291906111d5565b5f604051808303815f87803b158015610394575f5ffd5b505af11580156103a6573d5f5f3e3d5ffd5b50505050815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc836001015490811502906040515f60405180830381858888f19350505050158015610413573d5f5f3e3d5ffd5b508160010154341115610474573373ffffffffffffffffffffffffffffffffffffffff166108fc83600101543461044a9190611237565b90811502906040515f60405180830381858888f19350505050158015610472573d5f5f3e3d5ffd5b505b828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f46661dab58311a6838247afecbee792192b4f27fc8b3e7168c66bc55ec2e404e85600101546040516104d69190611115565b60405180910390a45f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f9055505050505050565b5f602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b5f81116105e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e09061108f565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be906112b4565b60405180910390fd5b5f8490503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff1660e01b815260040161071b9190611115565b602060405180830381865afa158015610736573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190611142565b73ffffffffffffffffffffffffffffffffffffffff16146107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a7906111b7565b60405180910390fd5b828260010181905550838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7f0ca7cd5b24651672216886135b99ff40342bcf549009a4c6fc74f059fb9a0866040516108179190611115565b60405180910390a45050505050565b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663081812fc856040518263ffffffff1660e01b815260040161087a9190611115565b602060405180830381865afa158015610895573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611142565b73ffffffffffffffffffffffffffffffffffffffff161461090f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109069061131c565b60405180910390fd5b5f821161091a575f5ffd5b5f5f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600101819055508173ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016109ef939291906111d5565b5f604051808303815f87803b158015610a06575f5ffd5b505af1158015610a18573d5f5f3e3d5ffd5b50505050838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fedbdf022944a3291f4b30148903a84720506f48e10478ec5812e5caf30e1fab086604051610a7a9190611115565b60405180910390a45050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5e906112b4565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b8152600401610bbb9190611115565b602060405180830381865afa158015610bd6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611142565b73ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c47906111b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b8152600401610c8d939291906111d5565b5f604051808303815f87803b158015610ca4575f5ffd5b505af1158015610cb6573d5f5f3e3d5ffd5b505050505f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f90555050828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb698e31a2abee5824d0d7bcfd2339aead7f9e9ae413fba50bf554ff3fa470b7b60405160405180910390a450505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dc682610d9d565b9050919050565b610dd681610dbc565b8114610de0575f5ffd5b50565b5f81359050610df181610dcd565b92915050565b5f819050919050565b610e0981610df7565b8114610e13575f5ffd5b50565b5f81359050610e2481610e00565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610e4b57610e4a610e2a565b5b8235905067ffffffffffffffff811115610e6857610e67610e2e565b5b602083019150836001820283011115610e8457610e83610e32565b5b9250929050565b5f5f5f5f5f60808688031215610ea457610ea3610d95565b5b5f610eb188828901610de3565b9550506020610ec288828901610de3565b9450506040610ed388828901610e16565b935050606086013567ffffffffffffffff811115610ef457610ef3610d99565b5b610f0088828901610e36565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f4381610f0f565b82525050565b5f602082019050610f5c5f830184610f3a565b92915050565b5f5f60408385031215610f7857610f77610d95565b5b5f610f8585828601610de3565b9250506020610f9685828601610e16565b9150509250929050565b610fa981610dbc565b82525050565b610fb881610df7565b82525050565b5f604082019050610fd15f830185610fa0565b610fde6020830184610faf565b9392505050565b5f5f5f60608486031215610ffc57610ffb610d95565b5b5f61100986828701610de3565b935050602061101a86828701610e16565b925050604061102b86828701610e16565b9150509250925092565b5f82825260208201905092915050565b7f496e76616c6964205072696365000000000000000000000000000000000000005f82015250565b5f611079600d83611035565b915061108482611045565b602082019050919050565b5f6020820190508181035f8301526110a68161106d565b9050919050565b7f496e6372656173652070726963650000000000000000000000000000000000005f82015250565b5f6110e1600e83611035565b91506110ec826110ad565b602082019050919050565b5f6020820190508181035f83015261110e816110d5565b9050919050565b5f6020820190506111285f830184610faf565b92915050565b5f8151905061113c81610dcd565b92915050565b5f6020828403121561115757611156610d95565b5b5f6111648482850161112e565b91505092915050565b7f496e76616c6964204f72646572000000000000000000000000000000000000005f82015250565b5f6111a1600d83611035565b91506111ac8261116d565b602082019050919050565b5f6020820190508181035f8301526111ce81611195565b9050919050565b5f6060820190506111e85f830186610fa0565b6111f56020830185610fa0565b6112026040830184610faf565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124182610df7565b915061124c83610df7565b92508282039050818111156112645761126361120a565b5b92915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f61129e600983611035565b91506112a98261126a565b602082019050919050565b5f6020820190508181035f8301526112cb81611292565b9050919050565b7f4e65656420417070726f76616c000000000000000000000000000000000000005f82015250565b5f611306600d83611035565b9150611311826112d2565b602082019050919050565b5f6020820190508181035f830152611333816112fa565b905091905056fea2646970667358221220d6bc663cb7a0ad0c3bb9afa7c829daae44aa1042931a3935e7d50d919d31803d64736f6c63430008220033","sourceMap":"171:4438:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4376:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1879:991;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;895:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3612:681;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1121:650;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2912:648;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4376:231;4534:6;4559:41;;;4552:48;;4376:231;;;;;;;:::o;1879:991::-;1958:20;1981:7;:17;1989:8;1981:17;;;;;;;;;;;;;;;:27;1999:8;1981:27;;;;;;;;;;;1958:50;;2056:1;2041:6;:12;;;:16;2033:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2126:6;:12;;;2113:9;:25;;2105:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2238:12;2261:8;2238:32;;2322:4;2288:39;;:4;:12;;;2301:8;2288:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;2280:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2405:4;:21;;;2435:4;2442:10;2454:8;2405:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2511:6;:12;;;;;;;;;;;;2503:30;;:44;2534:6;:12;;;2503:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2609:6;:12;;;2597:9;:24;2593:109;;;2645:10;2637:28;;:54;2678:6;:12;;;2666:9;:24;;;;:::i;:::-;2637:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:109;2780:8;2770;2749:54;;2758:10;2749:54;;;2790:6;:12;;;2749:54;;;;;;:::i;:::-;;;;;;;;2821:7;:17;2829:8;2821:17;;;;;;;;;;;;;;;:27;2839:8;2821:27;;;;;;;;;;;;2814:34;;;;;;;;;;;;;;;;;;;;;;;1948:922;;1879:991;;:::o;895:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3612:681::-;3750:1;3738:9;:13;3730:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3799:20;3822:7;:17;3830:8;3822:17;;;;;;;;;;;;;;;:27;3840:8;3822:27;;;;;;;;;;;3799:50;;3898:10;3882:26;;:6;:12;;;;;;;;;;;;:26;;;3874:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;4003:12;4026:8;4003:32;;4087:4;4053:39;;:4;:12;;;4066:8;4053:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;4045:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4182:9;4167:6;:12;;:24;;;;4266:8;4256;4237:49;;4244:10;4237:49;;;4276:9;4237:49;;;;;;:::i;:::-;;;;;;;;3720:573;;3612:681;;;:::o;1121:650::-;1204:12;1227:8;1204:32;;1327:4;1289:43;;:4;:16;;;1306:8;1289:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1281:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1399:1;1390:6;:10;1382:19;;;;;;1429:20;1452:7;:17;1460:8;1452:17;;;;;;;;;;;;;;;:27;1470:8;1452:27;;;;;;;;;;;1429:50;;1534:10;1519:6;:12;;;:25;;;;;;;;;;;;;;;;;;1569:6;1554;:12;;:21;;;;1618:4;:21;;;1640:10;1660:4;1667:8;1618:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1747:8;1737;1720:44;;1725:10;1720:44;;;1757:6;1720:44;;;;;;:::i;:::-;;;;;;;;1194:577;;1121:650;;;:::o;2912:648::-;2981:20;3004:7;:17;3012:8;3004:17;;;;;;;;;;;;;;;:27;3022:8;3004:27;;;;;;;;;;;2981:50;;3080:10;3064:26;;:6;:12;;;;;;;;;;;;:26;;;3056:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3185:12;3208:8;3185:32;;3269:4;3235:39;;:4;:12;;;3248:8;3235:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;3227:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3352:4;:21;;;3382:4;3389:10;3401:8;3352:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3427:7;:17;3435:8;3427:17;;;;;;;;;;;;;;;:27;3445:8;3427:27;;;;;;;;;;;;3420:34;;;;;;;;;;;;;;;;;;;;;;;3544:8;3534;3515:38;;3522:10;3515:38;;;;;;;;;;;;2971:589;;2912:648;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:149::-;3142:7;3182:66;3175:5;3171:78;3160:89;;3106:149;;;:::o;3261:115::-;3346:23;3363:5;3346:23;:::i;:::-;3341:3;3334:36;3261:115;;:::o;3382:218::-;3473:4;3511:2;3500:9;3496:18;3488:26;;3524:69;3590:1;3579:9;3575:17;3566:6;3524:69;:::i;:::-;3382:218;;;;:::o;3606:474::-;3674:6;3682;3731:2;3719:9;3710:7;3706:23;3702:32;3699:119;;;3737:79;;:::i;:::-;3699:119;3857:1;3882:53;3927:7;3918:6;3907:9;3903:22;3882:53;:::i;:::-;3872:63;;3828:117;3984:2;4010:53;4055:7;4046:6;4035:9;4031:22;4010:53;:::i;:::-;4000:63;;3955:118;3606:474;;;;;:::o;4086:118::-;4173:24;4191:5;4173:24;:::i;:::-;4168:3;4161:37;4086:118;;:::o;4210:::-;4297:24;4315:5;4297:24;:::i;:::-;4292:3;4285:37;4210:118;;:::o;4334:332::-;4455:4;4493:2;4482:9;4478:18;4470:26;;4506:71;4574:1;4563:9;4559:17;4550:6;4506:71;:::i;:::-;4587:72;4655:2;4644:9;4640:18;4631:6;4587:72;:::i;:::-;4334:332;;;;;:::o;4672:619::-;4749:6;4757;4765;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:53;5010:7;5001:6;4990:9;4986:22;4965:53;:::i;:::-;4955:63;;4911:117;5067:2;5093:53;5138:7;5129:6;5118:9;5114:22;5093:53;:::i;:::-;5083:63;;5038:118;5195:2;5221:53;5266:7;5257:6;5246:9;5242:22;5221:53;:::i;:::-;5211:63;;5166:118;4672:619;;;;;:::o;5297:169::-;5381:11;5415:6;5410:3;5403:19;5455:4;5450:3;5446:14;5431:29;;5297:169;;;;:::o;5472:163::-;5612:15;5608:1;5600:6;5596:14;5589:39;5472:163;:::o;5641:366::-;5783:3;5804:67;5868:2;5863:3;5804:67;:::i;:::-;5797:74;;5880:93;5969:3;5880:93;:::i;:::-;5998:2;5993:3;5989:12;5982:19;;5641:366;;;:::o;6013:419::-;6179:4;6217:2;6206:9;6202:18;6194:26;;6266:9;6260:4;6256:20;6252:1;6241:9;6237:17;6230:47;6294:131;6420:4;6294:131;:::i;:::-;6286:139;;6013:419;;;:::o;6438:164::-;6578:16;6574:1;6566:6;6562:14;6555:40;6438:164;:::o;6608:366::-;6750:3;6771:67;6835:2;6830:3;6771:67;:::i;:::-;6764:74;;6847:93;6936:3;6847:93;:::i;:::-;6965:2;6960:3;6956:12;6949:19;;6608:366;;;:::o;6980:419::-;7146:4;7184:2;7173:9;7169:18;7161:26;;7233:9;7227:4;7223:20;7219:1;7208:9;7204:17;7197:47;7261:131;7387:4;7261:131;:::i;:::-;7253:139;;6980:419;;;:::o;7405:222::-;7498:4;7536:2;7525:9;7521:18;7513:26;;7549:71;7617:1;7606:9;7602:17;7593:6;7549:71;:::i;:::-;7405:222;;;;:::o;7633:143::-;7690:5;7721:6;7715:13;7706:22;;7737:33;7764:5;7737:33;:::i;:::-;7633:143;;;;:::o;7782:351::-;7852:6;7901:2;7889:9;7880:7;7876:23;7872:32;7869:119;;;7907:79;;:::i;:::-;7869:119;8027:1;8052:64;8108:7;8099:6;8088:9;8084:22;8052:64;:::i;:::-;8042:74;;7998:128;7782:351;;;;:::o;8139:163::-;8279:15;8275:1;8267:6;8263:14;8256:39;8139:163;:::o;8308:366::-;8450:3;8471:67;8535:2;8530:3;8471:67;:::i;:::-;8464:74;;8547:93;8636:3;8547:93;:::i;:::-;8665:2;8660:3;8656:12;8649:19;;8308:366;;;:::o;8680:419::-;8846:4;8884:2;8873:9;8869:18;8861:26;;8933:9;8927:4;8923:20;8919:1;8908:9;8904:17;8897:47;8961:131;9087:4;8961:131;:::i;:::-;8953:139;;8680:419;;;:::o;9105:442::-;9254:4;9292:2;9281:9;9277:18;9269:26;;9305:71;9373:1;9362:9;9358:17;9349:6;9305:71;:::i;:::-;9386:72;9454:2;9443:9;9439:18;9430:6;9386:72;:::i;:::-;9468;9536:2;9525:9;9521:18;9512:6;9468:72;:::i;:::-;9105:442;;;;;;:::o;9553:180::-;9601:77;9598:1;9591:88;9698:4;9695:1;9688:15;9722:4;9719:1;9712:15;9739:194;9779:4;9799:20;9817:1;9799:20;:::i;:::-;9794:25;;9833:20;9851:1;9833:20;:::i;:::-;9828:25;;9877:1;9874;9870:9;9862:17;;9901:1;9895:4;9892:11;9889:37;;;9906:18;;:::i;:::-;9889:37;9739:194;;;;:::o;9939:159::-;10079:11;10075:1;10067:6;10063:14;10056:35;9939:159;:::o;10104:365::-;10246:3;10267:66;10331:1;10326:3;10267:66;:::i;:::-;10260:73;;10342:93;10431:3;10342:93;:::i;:::-;10460:2;10455:3;10451:12;10444:19;;10104:365;;;:::o;10475:419::-;10641:4;10679:2;10668:9;10664:18;10656:26;;10728:9;10722:4;10718:20;10714:1;10703:9;10699:17;10692:47;10756:131;10882:4;10756:131;:::i;:::-;10748:139;;10475:419;;;:::o;10900:163::-;11040:15;11036:1;11028:6;11024:14;11017:39;10900:163;:::o;11069:366::-;11211:3;11232:67;11296:2;11291:3;11232:67;:::i;:::-;11225:74;;11308:93;11397:3;11308:93;:::i;:::-;11426:2;11421:3;11417:12;11410:19;;11069:366;;;:::o;11441:419::-;11607:4;11645:2;11634:9;11630:18;11622:26;;11694:9;11688:4;11684:20;11680:1;11669:9;11665:17;11658:47;11722:131;11848:4;11722:131;:::i;:::-;11714:139;;11441:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"list(address,uint256,uint256)":"dda342bb","nftList(address,uint256)":"ba5f4fb2","onERC721Received(address,address,uint256,bytes)":"150b7a02","purchase(address,uint256)":"8de93222","revoke(address,uint256)":"eac449d9","update(address,uint256,uint256)":"d09b6d43"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"List\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"Purchase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Revoke\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"Update\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"list\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nftList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"purchase\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_newPrice\",\"type\":\"uint256\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/38_NFTSwap/NFTSwap.sol\":\"NFTSwap\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/34_ERC721/WTFApe.sol\":{\"keccak256\":\"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f\",\"dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i\"]},\"src/38_NFTSwap/NFTSwap.sol\":{\"keccak256\":\"0x8e3d980ab6f090b5890093213c1380fe1f0386478c0c7734bea1924472eec832\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a6877abd33ec356dbc6c5a31980214ad32ccd85f1f9425304c2101645d1358e\",\"dweb:/ipfs/QmNs3QwYCw79Rk8YqfcsoJomyRrxM3GyoesYvLhPqPscP2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"price","type":"uint256","indexed":false}],"type":"event","name":"List","anonymous":false},{"inputs":[{"internalType":"address","name":"buyer","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"price","type":"uint256","indexed":false}],"type":"event","name":"Purchase","anonymous":false},{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Revoke","anonymous":false},{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"newPrice","type":"uint256","indexed":false}],"type":"event","name":"Update","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"list"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"nftList","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"purchase"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revoke"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"update"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/38_NFTSwap/NFTSwap.sol":"NFTSwap"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/34_ERC721/WTFApe.sol":{"keccak256":"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175","urls":["bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f","dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i"],"license":"MIT"},"src/38_NFTSwap/NFTSwap.sol":{"keccak256":"0x8e3d980ab6f090b5890093213c1380fe1f0386478c0c7734bea1924472eec832","urls":["bzz-raw://7a6877abd33ec356dbc6c5a31980214ad32ccd85f1f9425304c2101645d1358e","dweb:/ipfs/QmNs3QwYCw79Rk8YqfcsoJomyRrxM3GyoesYvLhPqPscP2"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"list","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_price","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nftList","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"onERC721Received","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"from","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"purchase","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revoke","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"update","inputs":[{"name":"_nftAddr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_newPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"List","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Purchase","inputs":[{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Revoke","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Update","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"nftAddr","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newPrice","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061136e8061001c5f395ff3fe608060405260043610610058575f3560e01c8063150b7a021461005b5780638de9322214610097578063ba5f4fb2146100b3578063d09b6d43146100f0578063dda342bb14610118578063eac449d91461014057610059565b5b005b348015610066575f5ffd5b50610081600480360381019061007c9190610e89565b610168565b60405161008e9190610f47565b60405180910390f35b6100b160048036038101906100ac9190610f60565b61017c565b005b3480156100be575f5ffd5b506100d960048036038101906100d49190610f60565b61055c565b6040516100e7929190610fbc565b60405180910390f35b3480156100fb575f5ffd5b5061011660048036038101906101119190610fe3565b6105a5565b005b348015610123575f5ffd5b5061013e60048036038101906101399190610fe3565b610824565b005b34801561014b575f5ffd5b5061016660048036038101906101619190610f60565b610a87565b005b5f63150b7a0260e01b905095945050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f816001015411610210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102079061108d565b60405180910390fd5b8060010154341015610257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024e906110f5565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004016102ab9190611113565b602060405180830381865afa1580156102c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190611140565b73ffffffffffffffffffffffffffffffffffffffff1614610340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610337906111b5565b60405180910390fd5b5f825f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836001015490505f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f905550508273ffffffffffffffffffffffffffffffffffffffff166342842e0e3033886040518463ffffffff1660e01b8152600401610425939291906111d3565b5f604051808303815f87803b15801561043c575f5ffd5b505af115801561044e573d5f5f3e3d5ffd5b505050508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610495573d5f5f3e3d5ffd5b50803411156104ee573373ffffffffffffffffffffffffffffffffffffffff166108fc82346104c49190611235565b90811502906040515f60405180830381858888f193505050501580156104ec573d5f5f3e3d5ffd5b505b848673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f46661dab58311a6838247afecbee792192b4f27fc8b3e7168c66bc55ec2e404e8460405161054c9190611113565b60405180910390a4505050505050565b5f602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b5f81116105e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105de9061108d565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bc906112b2565b60405180910390fd5b5f8490503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff1660e01b81526004016107199190611113565b602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611140565b73ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a5906111b5565b60405180910390fd5b828260010181905550838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7f0ca7cd5b24651672216886135b99ff40342bcf549009a4c6fc74f059fb9a0866040516108159190611113565b60405180910390a45050505050565b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663081812fc856040518263ffffffff1660e01b81526004016108789190611113565b602060405180830381865afa158015610893573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b79190611140565b73ffffffffffffffffffffffffffffffffffffffff161461090d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109049061131a565b60405180910390fd5b5f8211610918575f5ffd5b5f5f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600101819055508173ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016109ed939291906111d3565b5f604051808303815f87803b158015610a04575f5ffd5b505af1158015610a16573d5f5f3e3d5ffd5b50505050838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fedbdf022944a3291f4b30148903a84720506f48e10478ec5812e5caf30e1fab086604051610a789190611113565b60405180910390a45050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c906112b2565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b8152600401610bb99190611113565b602060405180830381865afa158015610bd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611140565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c45906111b5565b60405180910390fd5b5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f905550508073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b8152600401610d05939291906111d3565b5f604051808303815f87803b158015610d1c575f5ffd5b505af1158015610d2e573d5f5f3e3d5ffd5b50505050828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb698e31a2abee5824d0d7bcfd2339aead7f9e9ae413fba50bf554ff3fa470b7b60405160405180910390a450505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dc482610d9b565b9050919050565b610dd481610dba565b8114610dde575f5ffd5b50565b5f81359050610def81610dcb565b92915050565b5f819050919050565b610e0781610df5565b8114610e11575f5ffd5b50565b5f81359050610e2281610dfe565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610e4957610e48610e28565b5b8235905067ffffffffffffffff811115610e6657610e65610e2c565b5b602083019150836001820283011115610e8257610e81610e30565b5b9250929050565b5f5f5f5f5f60808688031215610ea257610ea1610d93565b5b5f610eaf88828901610de1565b9550506020610ec088828901610de1565b9450506040610ed188828901610e14565b935050606086013567ffffffffffffffff811115610ef257610ef1610d97565b5b610efe88828901610e34565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f4181610f0d565b82525050565b5f602082019050610f5a5f830184610f38565b92915050565b5f5f60408385031215610f7657610f75610d93565b5b5f610f8385828601610de1565b9250506020610f9485828601610e14565b9150509250929050565b610fa781610dba565b82525050565b610fb681610df5565b82525050565b5f604082019050610fcf5f830185610f9e565b610fdc6020830184610fad565b9392505050565b5f5f5f60608486031215610ffa57610ff9610d93565b5b5f61100786828701610de1565b935050602061101886828701610e14565b925050604061102986828701610e14565b9150509250925092565b5f82825260208201905092915050565b7f496e76616c6964205072696365000000000000000000000000000000000000005f82015250565b5f611077600d83611033565b915061108282611043565b602082019050919050565b5f6020820190508181035f8301526110a48161106b565b9050919050565b7f496e6372656173652070726963650000000000000000000000000000000000005f82015250565b5f6110df600e83611033565b91506110ea826110ab565b602082019050919050565b5f6020820190508181035f83015261110c816110d3565b9050919050565b5f6020820190506111265f830184610fad565b92915050565b5f8151905061113a81610dcb565b92915050565b5f6020828403121561115557611154610d93565b5b5f6111628482850161112c565b91505092915050565b7f496e76616c6964204f72646572000000000000000000000000000000000000005f82015250565b5f61119f600d83611033565b91506111aa8261116b565b602082019050919050565b5f6020820190508181035f8301526111cc81611193565b9050919050565b5f6060820190506111e65f830186610f9e565b6111f36020830185610f9e565b6112006040830184610fad565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61123f82610df5565b915061124a83610df5565b925082820390508181111561126257611261611208565b5b92915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f61129c600983611033565b91506112a782611268565b602082019050919050565b5f6020820190508181035f8301526112c981611290565b9050919050565b7f4e65656420417070726f76616c000000000000000000000000000000000000005f82015250565b5f611304600d83611033565b915061130f826112d0565b602082019050919050565b5f6020820190508181035f830152611331816112f8565b905091905056fea264697066735822122025427cb4f12e19f68038d702bbd77adc6f3a61268a5d964fc0da977a9f272cfa64736f6c63430008220033","sourceMap":"171:4659:88:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c8063150b7a021461005b5780638de9322214610097578063ba5f4fb2146100b3578063d09b6d43146100f0578063dda342bb14610118578063eac449d91461014057610059565b5b005b348015610066575f5ffd5b50610081600480360381019061007c9190610e89565b610168565b60405161008e9190610f47565b60405180910390f35b6100b160048036038101906100ac9190610f60565b61017c565b005b3480156100be575f5ffd5b506100d960048036038101906100d49190610f60565b61055c565b6040516100e7929190610fbc565b60405180910390f35b3480156100fb575f5ffd5b5061011660048036038101906101119190610fe3565b6105a5565b005b348015610123575f5ffd5b5061013e60048036038101906101399190610fe3565b610824565b005b34801561014b575f5ffd5b5061016660048036038101906101619190610f60565b610a87565b005b5f63150b7a0260e01b905095945050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090505f816001015411610210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102079061108d565b60405180910390fd5b8060010154341015610257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024e906110f5565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b81526004016102ab9190611113565b602060405180830381865afa1580156102c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ea9190611140565b73ffffffffffffffffffffffffffffffffffffffff1614610340576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610337906111b5565b60405180910390fd5b5f825f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836001015490505f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f905550508273ffffffffffffffffffffffffffffffffffffffff166342842e0e3033886040518463ffffffff1660e01b8152600401610425939291906111d3565b5f604051808303815f87803b15801561043c575f5ffd5b505af115801561044e573d5f5f3e3d5ffd5b505050508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610495573d5f5f3e3d5ffd5b50803411156104ee573373ffffffffffffffffffffffffffffffffffffffff166108fc82346104c49190611235565b90811502906040515f60405180830381858888f193505050501580156104ec573d5f5f3e3d5ffd5b505b848673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f46661dab58311a6838247afecbee792192b4f27fc8b3e7168c66bc55ec2e404e8460405161054c9190611113565b60405180910390a4505050505050565b5f602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b5f81116105e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105de9061108d565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bc906112b2565b60405180910390fd5b5f8490503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff1660e01b81526004016107199190611113565b602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190611140565b73ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a5906111b5565b60405180910390fd5b828260010181905550838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7f0ca7cd5b24651672216886135b99ff40342bcf549009a4c6fc74f059fb9a0866040516108159190611113565b60405180910390a45050505050565b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663081812fc856040518263ffffffff1660e01b81526004016108789190611113565b602060405180830381865afa158015610893573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b79190611140565b73ffffffffffffffffffffffffffffffffffffffff161461090d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109049061131a565b60405180910390fd5b5f8211610918575f5ffd5b5f5f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20905033815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508281600101819055508173ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016109ed939291906111d3565b5f604051808303815f87803b158015610a04575f5ffd5b505af1158015610a16573d5f5f3e3d5ffd5b50505050838573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fedbdf022944a3291f4b30148903a84720506f48e10478ec5812e5caf30e1fab086604051610a789190611113565b60405180910390a45050505050565b5f5f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2090503373ffffffffffffffffffffffffffffffffffffffff16815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c906112b2565b60405180910390fd5b5f8390503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16636352211e856040518263ffffffff1660e01b8152600401610bb99190611113565b602060405180830381865afa158015610bd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611140565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c45906111b5565b60405180910390fd5b5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f5f82015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f905550508073ffffffffffffffffffffffffffffffffffffffff166342842e0e3033866040518463ffffffff1660e01b8152600401610d05939291906111d3565b5f604051808303815f87803b158015610d1c575f5ffd5b505af1158015610d2e573d5f5f3e3d5ffd5b50505050828473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb698e31a2abee5824d0d7bcfd2339aead7f9e9ae413fba50bf554ff3fa470b7b60405160405180910390a450505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dc482610d9b565b9050919050565b610dd481610dba565b8114610dde575f5ffd5b50565b5f81359050610def81610dcb565b92915050565b5f819050919050565b610e0781610df5565b8114610e11575f5ffd5b50565b5f81359050610e2281610dfe565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112610e4957610e48610e28565b5b8235905067ffffffffffffffff811115610e6657610e65610e2c565b5b602083019150836001820283011115610e8257610e81610e30565b5b9250929050565b5f5f5f5f5f60808688031215610ea257610ea1610d93565b5b5f610eaf88828901610de1565b9550506020610ec088828901610de1565b9450506040610ed188828901610e14565b935050606086013567ffffffffffffffff811115610ef257610ef1610d97565b5b610efe88828901610e34565b92509250509295509295909350565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610f4181610f0d565b82525050565b5f602082019050610f5a5f830184610f38565b92915050565b5f5f60408385031215610f7657610f75610d93565b5b5f610f8385828601610de1565b9250506020610f9485828601610e14565b9150509250929050565b610fa781610dba565b82525050565b610fb681610df5565b82525050565b5f604082019050610fcf5f830185610f9e565b610fdc6020830184610fad565b9392505050565b5f5f5f60608486031215610ffa57610ff9610d93565b5b5f61100786828701610de1565b935050602061101886828701610e14565b925050604061102986828701610e14565b9150509250925092565b5f82825260208201905092915050565b7f496e76616c6964205072696365000000000000000000000000000000000000005f82015250565b5f611077600d83611033565b915061108282611043565b602082019050919050565b5f6020820190508181035f8301526110a48161106b565b9050919050565b7f496e6372656173652070726963650000000000000000000000000000000000005f82015250565b5f6110df600e83611033565b91506110ea826110ab565b602082019050919050565b5f6020820190508181035f83015261110c816110d3565b9050919050565b5f6020820190506111265f830184610fad565b92915050565b5f8151905061113a81610dcb565b92915050565b5f6020828403121561115557611154610d93565b5b5f6111628482850161112c565b91505092915050565b7f496e76616c6964204f72646572000000000000000000000000000000000000005f82015250565b5f61119f600d83611033565b91506111aa8261116b565b602082019050919050565b5f6020820190508181035f8301526111cc81611193565b9050919050565b5f6060820190506111e65f830186610f9e565b6111f36020830185610f9e565b6112006040830184610fad565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61123f82610df5565b915061124a83610df5565b925082820390508181111561126257611261611208565b5b92915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f61129c600983611033565b91506112a782611268565b602082019050919050565b5f6020820190508181035f8301526112c981611290565b9050919050565b7f4e65656420417070726f76616c000000000000000000000000000000000000005f82015250565b5f611304600d83611033565b915061130f826112d0565b602082019050919050565b5f6020820190508181035f830152611331816112f8565b905091905056fea264697066735822122025427cb4f12e19f68038d702bbd77adc6f3a61268a5d964fc0da977a9f272cfa64736f6c63430008220033","sourceMap":"171:4659:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4597:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1879:1156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;895:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3833:681;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1121:650;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3077:704;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4597:231;4755:6;4780:41;;;4773:48;;4597:231;;;;;;;:::o;1879:1156::-;1958:20;1981:7;:17;1989:8;1981:17;;;;;;;;;;;;;;;:27;1999:8;1981:27;;;;;;;;;;;1958:50;;2056:1;2041:6;:12;;;:16;2033:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2126:6;:12;;;2113:9;:25;;2105:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2238:12;2261:8;2238:32;;2322:4;2288:39;;:4;:12;;;2301:8;2288:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;2280:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2466:13;2482:6;:12;;;;;;;;;;;;2466:28;;2504:13;2520:6;:12;;;2504:28;;2597:7;:17;2605:8;2597:17;;;;;;;;;;;;;;;:27;2615:8;2597:27;;;;;;;;;;;;2590:34;;;;;;;;;;;;;;;;;;;;;;;2665:4;:21;;;2695:4;2702:10;2714:8;2665:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:5;2763:23;;:30;2787:5;2763:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2855:5;2843:9;:17;2839:95;;;2884:10;2876:28;;:47;2917:5;2905:9;:17;;;;:::i;:::-;2876:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2839:95;3012:8;3002;2981:47;;2990:10;2981:47;;;3022:5;2981:47;;;;;;:::i;:::-;;;;;;;;1948:1087;;;;1879:1156;;:::o;895:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3833:681::-;3971:1;3959:9;:13;3951:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;4020:20;4043:7;:17;4051:8;4043:17;;;;;;;;;;;;;;;:27;4061:8;4043:27;;;;;;;;;;;4020:50;;4119:10;4103:26;;:6;:12;;;;;;;;;;;;:26;;;4095:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;4224:12;4247:8;4224:32;;4308:4;4274:39;;:4;:12;;;4287:8;4274:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;4266:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4403:9;4388:6;:12;;:24;;;;4487:8;4477;4458:49;;4465:10;4458:49;;;4497:9;4458:49;;;;;;:::i;:::-;;;;;;;;3941:573;;3833:681;;;:::o;1121:650::-;1204:12;1227:8;1204:32;;1327:4;1289:43;;:4;:16;;;1306:8;1289:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1281:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1399:1;1390:6;:10;1382:19;;;;;;1429:20;1452:7;:17;1460:8;1452:17;;;;;;;;;;;;;;;:27;1470:8;1452:27;;;;;;;;;;;1429:50;;1534:10;1519:6;:12;;;:25;;;;;;;;;;;;;;;;;;1569:6;1554;:12;;:21;;;;1618:4;:21;;;1640:10;1660:4;1667:8;1618:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1747:8;1737;1720:44;;1725:10;1720:44;;;1757:6;1720:44;;;;;;:::i;:::-;;;;;;;;1194:577;;1121:650;;;:::o;3077:704::-;3146:20;3169:7;:17;3177:8;3169:17;;;;;;;;;;;;;;;:27;3187:8;3169:27;;;;;;;;;;;3146:50;;3245:10;3229:26;;:6;:12;;;;;;;;;;;;:26;;;3221:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3350:12;3373:8;3350:32;;3434:4;3400:39;;:4;:12;;;3413:8;3400:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;3392:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3564:7;:17;3572:8;3564:17;;;;;;;;;;;;;;;:27;3582:8;3564:27;;;;;;;;;;;;3557:34;;;;;;;;;;;;;;;;;;;;;;;3632:4;:21;;;3662:4;3669:10;3681:8;3632:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3765:8;3755;3736:38;;3743:10;3736:38;;;;;;;;;;;;3136:645;;3077:704;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:149::-;3142:7;3182:66;3175:5;3171:78;3160:89;;3106:149;;;:::o;3261:115::-;3346:23;3363:5;3346:23;:::i;:::-;3341:3;3334:36;3261:115;;:::o;3382:218::-;3473:4;3511:2;3500:9;3496:18;3488:26;;3524:69;3590:1;3579:9;3575:17;3566:6;3524:69;:::i;:::-;3382:218;;;;:::o;3606:474::-;3674:6;3682;3731:2;3719:9;3710:7;3706:23;3702:32;3699:119;;;3737:79;;:::i;:::-;3699:119;3857:1;3882:53;3927:7;3918:6;3907:9;3903:22;3882:53;:::i;:::-;3872:63;;3828:117;3984:2;4010:53;4055:7;4046:6;4035:9;4031:22;4010:53;:::i;:::-;4000:63;;3955:118;3606:474;;;;;:::o;4086:118::-;4173:24;4191:5;4173:24;:::i;:::-;4168:3;4161:37;4086:118;;:::o;4210:::-;4297:24;4315:5;4297:24;:::i;:::-;4292:3;4285:37;4210:118;;:::o;4334:332::-;4455:4;4493:2;4482:9;4478:18;4470:26;;4506:71;4574:1;4563:9;4559:17;4550:6;4506:71;:::i;:::-;4587:72;4655:2;4644:9;4640:18;4631:6;4587:72;:::i;:::-;4334:332;;;;;:::o;4672:619::-;4749:6;4757;4765;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:53;5010:7;5001:6;4990:9;4986:22;4965:53;:::i;:::-;4955:63;;4911:117;5067:2;5093:53;5138:7;5129:6;5118:9;5114:22;5093:53;:::i;:::-;5083:63;;5038:118;5195:2;5221:53;5266:7;5257:6;5246:9;5242:22;5221:53;:::i;:::-;5211:63;;5166:118;4672:619;;;;;:::o;5297:169::-;5381:11;5415:6;5410:3;5403:19;5455:4;5450:3;5446:14;5431:29;;5297:169;;;;:::o;5472:163::-;5612:15;5608:1;5600:6;5596:14;5589:39;5472:163;:::o;5641:366::-;5783:3;5804:67;5868:2;5863:3;5804:67;:::i;:::-;5797:74;;5880:93;5969:3;5880:93;:::i;:::-;5998:2;5993:3;5989:12;5982:19;;5641:366;;;:::o;6013:419::-;6179:4;6217:2;6206:9;6202:18;6194:26;;6266:9;6260:4;6256:20;6252:1;6241:9;6237:17;6230:47;6294:131;6420:4;6294:131;:::i;:::-;6286:139;;6013:419;;;:::o;6438:164::-;6578:16;6574:1;6566:6;6562:14;6555:40;6438:164;:::o;6608:366::-;6750:3;6771:67;6835:2;6830:3;6771:67;:::i;:::-;6764:74;;6847:93;6936:3;6847:93;:::i;:::-;6965:2;6960:3;6956:12;6949:19;;6608:366;;;:::o;6980:419::-;7146:4;7184:2;7173:9;7169:18;7161:26;;7233:9;7227:4;7223:20;7219:1;7208:9;7204:17;7197:47;7261:131;7387:4;7261:131;:::i;:::-;7253:139;;6980:419;;;:::o;7405:222::-;7498:4;7536:2;7525:9;7521:18;7513:26;;7549:71;7617:1;7606:9;7602:17;7593:6;7549:71;:::i;:::-;7405:222;;;;:::o;7633:143::-;7690:5;7721:6;7715:13;7706:22;;7737:33;7764:5;7737:33;:::i;:::-;7633:143;;;;:::o;7782:351::-;7852:6;7901:2;7889:9;7880:7;7876:23;7872:32;7869:119;;;7907:79;;:::i;:::-;7869:119;8027:1;8052:64;8108:7;8099:6;8088:9;8084:22;8052:64;:::i;:::-;8042:74;;7998:128;7782:351;;;;:::o;8139:163::-;8279:15;8275:1;8267:6;8263:14;8256:39;8139:163;:::o;8308:366::-;8450:3;8471:67;8535:2;8530:3;8471:67;:::i;:::-;8464:74;;8547:93;8636:3;8547:93;:::i;:::-;8665:2;8660:3;8656:12;8649:19;;8308:366;;;:::o;8680:419::-;8846:4;8884:2;8873:9;8869:18;8861:26;;8933:9;8927:4;8923:20;8919:1;8908:9;8904:17;8897:47;8961:131;9087:4;8961:131;:::i;:::-;8953:139;;8680:419;;;:::o;9105:442::-;9254:4;9292:2;9281:9;9277:18;9269:26;;9305:71;9373:1;9362:9;9358:17;9349:6;9305:71;:::i;:::-;9386:72;9454:2;9443:9;9439:18;9430:6;9386:72;:::i;:::-;9468;9536:2;9525:9;9521:18;9512:6;9468:72;:::i;:::-;9105:442;;;;;;:::o;9553:180::-;9601:77;9598:1;9591:88;9698:4;9695:1;9688:15;9722:4;9719:1;9712:15;9739:194;9779:4;9799:20;9817:1;9799:20;:::i;:::-;9794:25;;9833:20;9851:1;9833:20;:::i;:::-;9828:25;;9877:1;9874;9870:9;9862:17;;9901:1;9895:4;9892:11;9889:37;;;9906:18;;:::i;:::-;9889:37;9739:194;;;;:::o;9939:159::-;10079:11;10075:1;10067:6;10063:14;10056:35;9939:159;:::o;10104:365::-;10246:3;10267:66;10331:1;10326:3;10267:66;:::i;:::-;10260:73;;10342:93;10431:3;10342:93;:::i;:::-;10460:2;10455:3;10451:12;10444:19;;10104:365;;;:::o;10475:419::-;10641:4;10679:2;10668:9;10664:18;10656:26;;10728:9;10722:4;10718:20;10714:1;10703:9;10699:17;10692:47;10756:131;10882:4;10756:131;:::i;:::-;10748:139;;10475:419;;;:::o;10900:163::-;11040:15;11036:1;11028:6;11024:14;11017:39;10900:163;:::o;11069:366::-;11211:3;11232:67;11296:2;11291:3;11232:67;:::i;:::-;11225:74;;11308:93;11397:3;11308:93;:::i;:::-;11426:2;11421:3;11417:12;11410:19;;11069:366;;;:::o;11441:419::-;11607:4;11645:2;11634:9;11630:18;11622:26;;11694:9;11688:4;11684:20;11680:1;11669:9;11665:17;11658:47;11722:131;11848:4;11722:131;:::i;:::-;11714:139;;11441:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"list(address,uint256,uint256)":"dda342bb","nftList(address,uint256)":"ba5f4fb2","onERC721Received(address,address,uint256,bytes)":"150b7a02","purchase(address,uint256)":"8de93222","revoke(address,uint256)":"eac449d9","update(address,uint256,uint256)":"d09b6d43"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"List\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"Purchase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Revoke\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftAddr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"Update\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"list\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nftList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"purchase\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nftAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_newPrice\",\"type\":\"uint256\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/38_NFTSwap/NFTSwap.sol\":\"NFTSwap\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/34_ERC721/WTFApe.sol\":{\"keccak256\":\"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f\",\"dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i\"]},\"src/38_NFTSwap/NFTSwap.sol\":{\"keccak256\":\"0xf4669e408588c4cadabb7224b1734b59993f90f797ee4659450c1b2b6b483abf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b577323cbd52ba0bfa51b1903fb6da789acb03f4af456f67daf8690f2cf70395\",\"dweb:/ipfs/QmRCYEhc7cifiYge6NSvsXEEYoQRzSbfmRmyMwdUpKXMtG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"price","type":"uint256","indexed":false}],"type":"event","name":"List","anonymous":false},{"inputs":[{"internalType":"address","name":"buyer","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"price","type":"uint256","indexed":false}],"type":"event","name":"Purchase","anonymous":false},{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Revoke","anonymous":false},{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"nftAddr","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"newPrice","type":"uint256","indexed":false}],"type":"event","name":"Update","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"list"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"nftList","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"purchase"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revoke"},{"inputs":[{"internalType":"address","name":"_nftAddr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"update"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/38_NFTSwap/NFTSwap.sol":"NFTSwap"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/34_ERC721/WTFApe.sol":{"keccak256":"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175","urls":["bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f","dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i"],"license":"MIT"},"src/38_NFTSwap/NFTSwap.sol":{"keccak256":"0xf4669e408588c4cadabb7224b1734b59993f90f797ee4659450c1b2b6b483abf","urls":["bzz-raw://b577323cbd52ba0bfa51b1903fb6da789acb03f4af456f67daf8690f2cf70395","dweb:/ipfs/QmRCYEhc7cifiYge6NSvsXEEYoQRzSbfmRmyMwdUpKXMtG"],"license":"MIT"}},"version":1},"id":88} \ No newline at end of file diff --git a/out/Oracle.sol/IUniswapV2Factory.json b/out/Oracle.sol/IUniswapV2Factory.json index ee77d172..8fb99ebb 100644 --- a/out/Oracle.sol/IUniswapV2Factory.json +++ b/out/Oracle.sol/IUniswapV2Factory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getPair(address,address)":"e6a43905"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Factory"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file +{"abi":[{"type":"function","name":"getPair","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"pair","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getPair(address,address)":"e6a43905"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Factory"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file diff --git a/out/Oracle.sol/IUniswapV2Pair.json b/out/Oracle.sol/IUniswapV2Pair.json index dd13f0b4..f420dff0 100644 --- a/out/Oracle.sol/IUniswapV2Pair.json +++ b/out/Oracle.sol/IUniswapV2Pair.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"},{"name":"blockTimestampLast","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"price0CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price1CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","getReserves()":"0902f1ac","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","swap(uint256,uint256,address,bytes)":"022c0d9f","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Pair"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReserves","inputs":[],"outputs":[{"name":"reserve0","type":"uint112","internalType":"uint112"},{"name":"reserve1","type":"uint112","internalType":"uint112"},{"name":"blockTimestampLast","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"price0CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"price1CumulativeLast","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"amount0Out","type":"uint256","internalType":"uint256"},{"name":"amount1Out","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","getReserves()":"0902f1ac","price0CumulativeLast()":"5909c0d5","price1CumulativeLast()":"5a3d5493","swap(uint256,uint256,address,bytes)":"022c0d9f","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"blockTimestampLast","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Pair"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file diff --git a/out/Oracle.sol/IUniswapV2Router.json b/out/Oracle.sol/IUniswapV2Router.json index 23752f7f..95bff7c0 100644 --- a/out/Oracle.sol/IUniswapV2Router.json +++ b/out/Oracle.sol/IUniswapV2Router.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","factory()":"c45a0155","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Router\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Router"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file +{"abi":[{"type":"function","name":"addLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"amountADesired","type":"uint256","internalType":"uint256"},{"name":"amountBDesired","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"liquidity","type":"uint256","internalType":"uint256"},{"name":"amountAMin","type":"uint256","internalType":"uint256"},{"name":"amountBMin","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountA","type":"uint256","internalType":"uint256"},{"name":"amountB","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapExactTokensForTokens","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokensForExactTokens","inputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMax","type":"uint256","internalType":"uint256"},{"name":"path","type":"address[]","internalType":"address[]"},{"name":"to","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)":"e8e33700","factory()":"c45a0155","removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)":"baa2abde","swapExactTokensForTokens(uint256,uint256,address[],address,uint256)":"38ed1739","swapTokensForExactTokens(uint256,uint256,address[],address,uint256)":"8803dbee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountAMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountBMin\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMax\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapTokensForExactTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"IUniswapV2Router\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"IUniswapV2Router"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file diff --git a/out/Oracle.sol/oUSD.json b/out/Oracle.sol/oUSD.json index b1d30d5a..8de2d6fc 100644 --- a/out/Oracle.sol/oUSD.json +++ b/out/Oracle.sol/oUSD.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BUSD","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FACTORY_V2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"busd","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Factory"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"pair","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Pair"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[],"outputs":[{"name":"amount","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":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"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":"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":"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"}]}],"bytecode":{"object":"0x6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033","sourceMap":"170:1082:142:-:0;;;263:42;470:64;;;;;;;;;;;;;;;;;;;;584:7;;;;;;;;;;;:15;;;342:42;421;584:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:72;;;;;;;;;;;;;;;;;;;;342:42;618:33;;;;;;;;;;;;;;;;;;;;421:42;657:33;;;;;;;;;;;;;;;;;;;;697:42;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;170:1082:142;;7:126:145;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:332::-;486:4;524:2;513:9;509:18;501:26;;537:71;605:1;594:9;590:17;581:6;537:71;:::i;:::-;618:72;686:2;675:9;671:18;662:6;618:72;:::i;:::-;365:332;;;;;:::o;784:117::-;893:1;890;883:12;1030:122;1103:24;1121:5;1103:24;:::i;:::-;1096:5;1093:35;1083:63;;1142:1;1139;1132:12;1083:63;1030:122;:::o;1158:143::-;1215:5;1246:6;1240:13;1231:22;;1262:33;1289:5;1262:33;:::i;:::-;1158:143;;;;:::o;1307:351::-;1377:6;1426:2;1414:9;1405:7;1401:23;1397:32;1394:119;;;1432:79;;:::i;:::-;1394:119;1552:1;1577:64;1633:7;1624:6;1613:9;1609:22;1577:64;:::i;:::-;1567:74;;1523:128;1307:351;;;;:::o;1664:99::-;1716:6;1750:5;1744:12;1734:22;;1664:99;;;:::o;1769:180::-;1817:77;1814:1;1807:88;1914:4;1911:1;1904:15;1938:4;1935:1;1928:15;1955:180;2003:77;2000:1;1993:88;2100:4;2097:1;2090:15;2124:4;2121:1;2114:15;2141:320;2185:6;2222:1;2216:4;2212:12;2202:22;;2269:1;2263:4;2259:12;2290:18;2280:81;;2346:4;2338:6;2334:17;2324:27;;2280:81;2408:2;2400:6;2397:14;2377:18;2374:38;2371:84;;2427:18;;:::i;:::-;2371:84;2192:269;2141:320;;;:::o;2467:141::-;2516:4;2539:3;2531:11;;2562:3;2559:1;2552:14;2596:4;2593:1;2583:18;2575:26;;2467:141;;;:::o;2614:93::-;2651:6;2698:2;2693;2686:5;2682:14;2678:23;2668:33;;2614:93;;;:::o;2713:107::-;2757:8;2807:5;2801:4;2797:16;2776:37;;2713:107;;;;:::o;2826:393::-;2895:6;2945:1;2933:10;2929:18;2968:97;2998:66;2987:9;2968:97;:::i;:::-;3086:39;3116:8;3105:9;3086:39;:::i;:::-;3074:51;;3158:4;3154:9;3147:5;3143:21;3134:30;;3207:4;3197:8;3193:19;3186:5;3183:30;3173:40;;2902:317;;2826:393;;;;;:::o;3225:77::-;3262:7;3291:5;3280:16;;3225:77;;;:::o;3308:60::-;3336:3;3357:5;3350:12;;3308:60;;;:::o;3374:142::-;3424:9;3457:53;3475:34;3484:24;3502:5;3484:24;:::i;:::-;3475:34;:::i;:::-;3457:53;:::i;:::-;3444:66;;3374:142;;;:::o;3522:75::-;3565:3;3586:5;3579:12;;3522:75;;;:::o;3603:269::-;3713:39;3744:7;3713:39;:::i;:::-;3774:91;3823:41;3847:16;3823:41;:::i;:::-;3815:6;3808:4;3802:11;3774:91;:::i;:::-;3768:4;3761:105;3679:193;3603:269;;;:::o;3878:73::-;3923:3;3944:1;3937:8;;3878:73;:::o;3957:189::-;4034:32;;:::i;:::-;4075:65;4133:6;4125;4119:4;4075:65;:::i;:::-;4010:136;3957:189;;:::o;4152:214::-;4237:1;4222:138;4247:9;4244:1;4241:16;4222:138;;;4299:51;4348:1;4344;4333:9;4329:17;4299:51;:::i;:::-;4272:1;4269;4265:9;4260:14;;4222:138;;;4226:14;4152:214;;:::o;4372:746::-;4473:2;4468:3;4465:11;4462:649;;;4502:10;4497:3;4494:19;4491:610;;;4548:38;4580:5;4548:38;:::i;:::-;4623:22;4641:3;4623:22;:::i;:::-;4682:29;4700:10;4682:29;:::i;:::-;4872:2;4860:10;4857:18;4854:79;;;4914:1;4898:17;;4854:79;4983:12;4973:8;4969:27;5013:74;5073:12;5059;5055:31;5042:11;5013:74;:::i;:::-;4514:587;;;;4491:610;4462:649;4372:746;;;:::o;5124:117::-;5178:8;5228:5;5222:4;5218:16;5197:37;;5124:117;;;;:::o;5247:169::-;5291:6;5324:51;5372:1;5368:6;5360:5;5357:1;5353:13;5324:51;:::i;:::-;5320:56;5405:4;5399;5395:15;5385:25;;5298:118;5247:169;;;;:::o;5421:295::-;5497:4;5643:29;5668:3;5662:4;5643:29;:::i;:::-;5635:37;;5705:3;5702:1;5698:11;5692:4;5689:21;5681:29;;5421:295;;;;:::o;5721:1395::-;5838:37;5871:3;5838:37;:::i;:::-;5940:18;5932:6;5929:30;5926:56;;;5962:18;;:::i;:::-;5926:56;6006:38;6038:4;6032:11;6006:38;:::i;:::-;6091:67;6151:6;6143;6137:4;6091:67;:::i;:::-;6185:1;6209:4;6196:17;;6241:2;6233:6;6230:14;6258:1;6253:618;;;;6915:1;6932:6;6929:77;;;6981:9;6976:3;6972:19;6966:26;6957:35;;6929:77;7032:67;7092:6;7085:5;7032:67;:::i;:::-;7026:4;7019:81;6888:222;6223:887;;6253:618;6305:4;6301:9;6293:6;6289:22;6339:37;6371:4;6339:37;:::i;:::-;6398:1;6412:208;6426:7;6423:1;6420:14;6412:208;;;6505:9;6500:3;6496:19;6490:26;6482:6;6475:42;6556:1;6548:6;6544:14;6534:24;;6603:2;6592:9;6588:18;6575:31;;6449:4;6446:1;6442:12;6437:17;;6412:208;;;6648:6;6639:7;6636:19;6633:179;;;6706:9;6701:3;6697:19;6691:26;6749:48;6791:4;6783:6;6779:17;6768:9;6749:48;:::i;:::-;6741:6;6734:64;6656:156;6633:179;6858:1;6854;6846:6;6842:14;6838:22;6832:4;6825:36;6260:611;;;6223:887;;5813:1303;;;5721:1395;;:::o;170:1082:142:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033","sourceMap":"170:1082:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;657:33:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;618;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;390:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;218:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1004:246:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;768:230:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;540:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;311:73:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;470:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;657:33:142:-;;;;;;;;;;;;;:::o;618:::-;;;;;;;;;;;;;:::o;390:73::-;421:42;390:73;:::o;218:87::-;263:42;218:87;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1004:246:142:-;1046:14;1095:10;1108;:8;:10::i;:::-;1095:23;;1175:9;1167:5;:17;;;;:::i;:::-;1158:26;;1218:25;1224:10;1236:6;1218:5;:25::i;:::-;1061:189;1004:246;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;768:230:142:-;809:13;870:16;888;910:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;869:59;;;;;983:8;974;:17;;;;:::i;:::-;966:25;;;;824:174;;768:230;:::o;540:72::-;;;;;;;;;;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;311:73:142:-;342:42;311:73;:::o;470:64::-;;;;;;;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:60::-;4774:3;4795:5;4788:12;;4746:60;;;:::o;4812:142::-;4862:9;4895:53;4913:34;4922:24;4940:5;4922:24;:::i;:::-;4913:34;:::i;:::-;4895:53;:::i;:::-;4882:66;;4812:142;;;:::o;4960:126::-;5010:9;5043:37;5074:5;5043:37;:::i;:::-;5030:50;;4960:126;;;:::o;5092:142::-;5158:9;5191:37;5222:5;5191:37;:::i;:::-;5178:50;;5092:142;;;:::o;5240:163::-;5343:53;5390:5;5343:53;:::i;:::-;5338:3;5331:66;5240:163;;:::o;5409:254::-;5518:4;5556:2;5545:9;5541:18;5533:26;;5569:87;5653:1;5642:9;5638:17;5629:6;5569:87;:::i;:::-;5409:254;;;;:::o;5669:118::-;5756:24;5774:5;5756:24;:::i;:::-;5751:3;5744:37;5669:118;;:::o;5793:222::-;5886:4;5924:2;5913:9;5909:18;5901:26;;5937:71;6005:1;5994:9;5990:17;5981:6;5937:71;:::i;:::-;5793:222;;;;:::o;6021:329::-;6080:6;6129:2;6117:9;6108:7;6104:23;6100:32;6097:119;;;6135:79;;:::i;:::-;6097:119;6255:1;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6226:117;6021:329;;;;:::o;6356:150::-;6430:9;6463:37;6494:5;6463:37;:::i;:::-;6450:50;;6356:150;;;:::o;6512:179::-;6623:61;6678:5;6623:61;:::i;:::-;6618:3;6611:74;6512:179;;:::o;6697:270::-;6814:4;6852:2;6841:9;6837:18;6829:26;;6865:95;6957:1;6946:9;6942:17;6933:6;6865:95;:::i;:::-;6697:270;;;;:::o;6973:153::-;7050:9;7083:37;7114:5;7083:37;:::i;:::-;7070:50;;6973:153;;;:::o;7132:185::-;7246:64;7304:5;7246:64;:::i;:::-;7241:3;7234:77;7132:185;;:::o;7323:276::-;7443:4;7481:2;7470:9;7466:18;7458:26;;7494:98;7589:1;7578:9;7574:17;7565:6;7494:98;:::i;:::-;7323:276;;;;:::o;7605:474::-;7673:6;7681;7730:2;7718:9;7709:7;7705:23;7701:32;7698:119;;;7736:79;;:::i;:::-;7698:119;7856:1;7881:53;7926:7;7917:6;7906:9;7902:22;7881:53;:::i;:::-;7871:63;;7827:117;7983:2;8009:53;8054:7;8045:6;8034:9;8030:22;8009:53;:::i;:::-;7999:63;;7954:118;7605:474;;;;;:::o;8085:180::-;8133:77;8130:1;8123:88;8230:4;8227:1;8220:15;8254:4;8251:1;8244:15;8271:320;8315:6;8352:1;8346:4;8342:12;8332:22;;8399:1;8393:4;8389:12;8420:18;8410:81;;8476:4;8468:6;8464:17;8454:27;;8410:81;8538:2;8530:6;8527:14;8507:18;8504:38;8501:84;;8557:18;;:::i;:::-;8501:84;8322:269;8271:320;;;:::o;8597:180::-;8645:77;8642:1;8635:88;8742:4;8739:1;8732:15;8766:4;8763:1;8756:15;8783:410;8823:7;8846:20;8864:1;8846:20;:::i;:::-;8841:25;;8880:20;8898:1;8880:20;:::i;:::-;8875:25;;8935:1;8932;8928:9;8957:30;8975:11;8957:30;:::i;:::-;8946:41;;9136:1;9127:7;9123:15;9120:1;9117:22;9097:1;9090:9;9070:83;9047:139;;9166:18;;:::i;:::-;9047:139;8831:362;8783:410;;;;:::o;9199:114::-;9236:7;9276:30;9269:5;9265:42;9254:53;;9199:114;;;:::o;9319:122::-;9392:24;9410:5;9392:24;:::i;:::-;9385:5;9382:35;9372:63;;9431:1;9428;9421:12;9372:63;9319:122;:::o;9447:143::-;9504:5;9535:6;9529:13;9520:22;;9551:33;9578:5;9551:33;:::i;:::-;9447:143;;;;:::o;9596:93::-;9632:7;9672:10;9665:5;9661:22;9650:33;;9596:93;;;:::o;9695:120::-;9767:23;9784:5;9767:23;:::i;:::-;9760:5;9757:34;9747:62;;9805:1;9802;9795:12;9747:62;9695:120;:::o;9821:141::-;9877:5;9908:6;9902:13;9893:22;;9924:32;9950:5;9924:32;:::i;:::-;9821:141;;;;:::o;9968:661::-;10055:6;10063;10071;10120:2;10108:9;10099:7;10095:23;10091:32;10088:119;;;10126:79;;:::i;:::-;10088:119;10246:1;10271:64;10327:7;10318:6;10307:9;10303:22;10271:64;:::i;:::-;10261:74;;10217:128;10384:2;10410:64;10466:7;10457:6;10446:9;10442:22;10410:64;:::i;:::-;10400:74;;10355:129;10523:2;10549:63;10604:7;10595:6;10584:9;10580:22;10549:63;:::i;:::-;10539:73;;10494:128;9968:661;;;;;:::o;10635:180::-;10683:77;10680:1;10673:88;10780:4;10777:1;10770:15;10804:4;10801:1;10794:15;10821:185;10861:1;10878:20;10896:1;10878:20;:::i;:::-;10873:25;;10912:20;10930:1;10912:20;:::i;:::-;10907:25;;10951:1;10941:35;;10956:18;;:::i;:::-;10941:35;10998:1;10995;10991:9;10986:14;;10821:185;;;;:::o;11012:442::-;11161:4;11199:2;11188:9;11184:18;11176:26;;11212:71;11280:1;11269:9;11265:17;11256:6;11212:71;:::i;:::-;11293:72;11361:2;11350:9;11346:18;11337:6;11293:72;:::i;:::-;11375;11443:2;11432:9;11428:18;11419:6;11375:72;:::i;:::-;11012:442;;;;;;:::o;11460:191::-;11500:3;11519:20;11537:1;11519:20;:::i;:::-;11514:25;;11553:20;11571:1;11553:20;:::i;:::-;11548:25;;11596:1;11593;11589:9;11582:16;;11617:3;11614:1;11611:10;11608:36;;;11624:18;;:::i;:::-;11608:36;11460:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"BUSD()":"484f4ea9","FACTORY_V2()":"4d2eaf70","WETH()":"ad5c4648","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","busd()":"3ca5b234","decimals()":"313ce567","factory()":"c45a0155","getPrice()":"98d5fdca","name()":"06fdde03","pair()":"a8aa1b31","swap()":"8119c065","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","weth()":"3fc8cef3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":\"BUSD\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY_V2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"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\":[],\"name\":\"busd\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pair\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Pair\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"oUSD\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":"BUSD","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY_V2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH","outputs":[{"internalType":"address","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":[],"stateMutability":"view","type":"function","name":"busd","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amount","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":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"oUSD"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":142} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BUSD","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FACTORY_V2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"busd","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Factory"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"pair","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV2Pair"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[],"outputs":[{"name":"amount","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":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"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":"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":"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"}]}],"bytecode":{"object":"0x6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033","sourceMap":"170:1082:136:-:0;;;263:42;470:64;;;;;;;;;;;;;;;;;;;;584:7;;;;;;;;;;;:15;;;342:42;421;584:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:72;;;;;;;;;;;;;;;;;;;;342:42;618:33;;;;;;;;;;;;;;;;;;;;421:42;657:33;;;;;;;;;;;;;;;;;;;;697:42;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;170:1082:136;;7:126:139;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:332::-;486:4;524:2;513:9;509:18;501:26;;537:71;605:1;594:9;590:17;581:6;537:71;:::i;:::-;618:72;686:2;675:9;671:18;662:6;618:72;:::i;:::-;365:332;;;;;:::o;784:117::-;893:1;890;883:12;1030:122;1103:24;1121:5;1103:24;:::i;:::-;1096:5;1093:35;1083:63;;1142:1;1139;1132:12;1083:63;1030:122;:::o;1158:143::-;1215:5;1246:6;1240:13;1231:22;;1262:33;1289:5;1262:33;:::i;:::-;1158:143;;;;:::o;1307:351::-;1377:6;1426:2;1414:9;1405:7;1401:23;1397:32;1394:119;;;1432:79;;:::i;:::-;1394:119;1552:1;1577:64;1633:7;1624:6;1613:9;1609:22;1577:64;:::i;:::-;1567:74;;1523:128;1307:351;;;;:::o;1664:99::-;1716:6;1750:5;1744:12;1734:22;;1664:99;;;:::o;1769:180::-;1817:77;1814:1;1807:88;1914:4;1911:1;1904:15;1938:4;1935:1;1928:15;1955:180;2003:77;2000:1;1993:88;2100:4;2097:1;2090:15;2124:4;2121:1;2114:15;2141:320;2185:6;2222:1;2216:4;2212:12;2202:22;;2269:1;2263:4;2259:12;2290:18;2280:81;;2346:4;2338:6;2334:17;2324:27;;2280:81;2408:2;2400:6;2397:14;2377:18;2374:38;2371:84;;2427:18;;:::i;:::-;2371:84;2192:269;2141:320;;;:::o;2467:141::-;2516:4;2539:3;2531:11;;2562:3;2559:1;2552:14;2596:4;2593:1;2583:18;2575:26;;2467:141;;;:::o;2614:93::-;2651:6;2698:2;2693;2686:5;2682:14;2678:23;2668:33;;2614:93;;;:::o;2713:107::-;2757:8;2807:5;2801:4;2797:16;2776:37;;2713:107;;;;:::o;2826:393::-;2895:6;2945:1;2933:10;2929:18;2968:97;2998:66;2987:9;2968:97;:::i;:::-;3086:39;3116:8;3105:9;3086:39;:::i;:::-;3074:51;;3158:4;3154:9;3147:5;3143:21;3134:30;;3207:4;3197:8;3193:19;3186:5;3183:30;3173:40;;2902:317;;2826:393;;;;;:::o;3225:77::-;3262:7;3291:5;3280:16;;3225:77;;;:::o;3308:60::-;3336:3;3357:5;3350:12;;3308:60;;;:::o;3374:142::-;3424:9;3457:53;3475:34;3484:24;3502:5;3484:24;:::i;:::-;3475:34;:::i;:::-;3457:53;:::i;:::-;3444:66;;3374:142;;;:::o;3522:75::-;3565:3;3586:5;3579:12;;3522:75;;;:::o;3603:269::-;3713:39;3744:7;3713:39;:::i;:::-;3774:91;3823:41;3847:16;3823:41;:::i;:::-;3815:6;3808:4;3802:11;3774:91;:::i;:::-;3768:4;3761:105;3679:193;3603:269;;;:::o;3878:73::-;3923:3;3944:1;3937:8;;3878:73;:::o;3957:189::-;4034:32;;:::i;:::-;4075:65;4133:6;4125;4119:4;4075:65;:::i;:::-;4010:136;3957:189;;:::o;4152:214::-;4237:1;4222:138;4247:9;4244:1;4241:16;4222:138;;;4299:51;4348:1;4344;4333:9;4329:17;4299:51;:::i;:::-;4272:1;4269;4265:9;4260:14;;4222:138;;;4226:14;4152:214;;:::o;4372:746::-;4473:2;4468:3;4465:11;4462:649;;;4502:10;4497:3;4494:19;4491:610;;;4548:38;4580:5;4548:38;:::i;:::-;4623:22;4641:3;4623:22;:::i;:::-;4682:29;4700:10;4682:29;:::i;:::-;4872:2;4860:10;4857:18;4854:79;;;4914:1;4898:17;;4854:79;4983:12;4973:8;4969:27;5013:74;5073:12;5059;5055:31;5042:11;5013:74;:::i;:::-;4514:587;;;;4491:610;4462:649;4372:746;;;:::o;5124:117::-;5178:8;5228:5;5222:4;5218:16;5197:37;;5124:117;;;;:::o;5247:169::-;5291:6;5324:51;5372:1;5368:6;5360:5;5357:1;5353:13;5324:51;:::i;:::-;5320:56;5405:4;5399;5395:15;5385:25;;5298:118;5247:169;;;;:::o;5421:295::-;5497:4;5643:29;5668:3;5662:4;5643:29;:::i;:::-;5635:37;;5705:3;5702:1;5698:11;5692:4;5689:21;5681:29;;5421:295;;;;:::o;5721:1395::-;5838:37;5871:3;5838:37;:::i;:::-;5940:18;5932:6;5929:30;5926:56;;;5962:18;;:::i;:::-;5926:56;6006:38;6038:4;6032:11;6006:38;:::i;:::-;6091:67;6151:6;6143;6137:4;6091:67;:::i;:::-;6185:1;6209:4;6196:17;;6241:2;6233:6;6230:14;6258:1;6253:618;;;;6915:1;6932:6;6929:77;;;6981:9;6976:3;6972:19;6966:26;6957:35;;6929:77;7032:67;7092:6;7085:5;7032:67;:::i;:::-;7026:4;7019:81;6888:222;6223:887;;6253:618;6305:4;6301:9;6293:6;6289:22;6339:37;6371:4;6339:37;:::i;:::-;6398:1;6412:208;6426:7;6423:1;6420:14;6412:208;;;6505:9;6500:3;6496:19;6490:26;6482:6;6475:42;6556:1;6548:6;6544:14;6534:24;;6603:2;6592:9;6588:18;6575:31;;6449:4;6446:1;6442:12;6437:17;;6412:208;;;6648:6;6639:7;6636:19;6633:179;;;6706:9;6701:3;6697:19;6691:26;6749:48;6791:4;6783:6;6779:17;6768:9;6749:48;:::i;:::-;6741:6;6734:64;6656:156;6633:179;6858:1;6854;6846:6;6842:14;6838:22;6832:4;6825:36;6260:611;;;6223:887;;5813:1303;;;5721:1395;;:::o;170:1082:136:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033","sourceMap":"170:1082:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;657:33:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;618;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;390:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;218:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1004:246:136;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;768:230:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;540:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;311:73:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;470:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;657:33:136:-;;;;;;;;;;;;;:::o;618:::-;;;;;;;;;;;;;:::o;390:73::-;421:42;390:73;:::o;218:87::-;263:42;218:87;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1004:246:136:-;1046:14;1095:10;1108;:8;:10::i;:::-;1095:23;;1175:9;1167:5;:17;;;;:::i;:::-;1158:26;;1218:25;1224:10;1236:6;1218:5;:25::i;:::-;1061:189;1004:246;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;768:230:136:-;809:13;870:16;888;910:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;869:59;;;;;983:8;974;:17;;;;:::i;:::-;966:25;;;;824:174;;768:230;:::o;540:72::-;;;;;;;;;;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;311:73:136:-;342:42;311:73;:::o;470:64::-;;;;;;;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:60::-;4774:3;4795:5;4788:12;;4746:60;;;:::o;4812:142::-;4862:9;4895:53;4913:34;4922:24;4940:5;4922:24;:::i;:::-;4913:34;:::i;:::-;4895:53;:::i;:::-;4882:66;;4812:142;;;:::o;4960:126::-;5010:9;5043:37;5074:5;5043:37;:::i;:::-;5030:50;;4960:126;;;:::o;5092:142::-;5158:9;5191:37;5222:5;5191:37;:::i;:::-;5178:50;;5092:142;;;:::o;5240:163::-;5343:53;5390:5;5343:53;:::i;:::-;5338:3;5331:66;5240:163;;:::o;5409:254::-;5518:4;5556:2;5545:9;5541:18;5533:26;;5569:87;5653:1;5642:9;5638:17;5629:6;5569:87;:::i;:::-;5409:254;;;;:::o;5669:118::-;5756:24;5774:5;5756:24;:::i;:::-;5751:3;5744:37;5669:118;;:::o;5793:222::-;5886:4;5924:2;5913:9;5909:18;5901:26;;5937:71;6005:1;5994:9;5990:17;5981:6;5937:71;:::i;:::-;5793:222;;;;:::o;6021:329::-;6080:6;6129:2;6117:9;6108:7;6104:23;6100:32;6097:119;;;6135:79;;:::i;:::-;6097:119;6255:1;6280:53;6325:7;6316:6;6305:9;6301:22;6280:53;:::i;:::-;6270:63;;6226:117;6021:329;;;;:::o;6356:150::-;6430:9;6463:37;6494:5;6463:37;:::i;:::-;6450:50;;6356:150;;;:::o;6512:179::-;6623:61;6678:5;6623:61;:::i;:::-;6618:3;6611:74;6512:179;;:::o;6697:270::-;6814:4;6852:2;6841:9;6837:18;6829:26;;6865:95;6957:1;6946:9;6942:17;6933:6;6865:95;:::i;:::-;6697:270;;;;:::o;6973:153::-;7050:9;7083:37;7114:5;7083:37;:::i;:::-;7070:50;;6973:153;;;:::o;7132:185::-;7246:64;7304:5;7246:64;:::i;:::-;7241:3;7234:77;7132:185;;:::o;7323:276::-;7443:4;7481:2;7470:9;7466:18;7458:26;;7494:98;7589:1;7578:9;7574:17;7565:6;7494:98;:::i;:::-;7323:276;;;;:::o;7605:474::-;7673:6;7681;7730:2;7718:9;7709:7;7705:23;7701:32;7698:119;;;7736:79;;:::i;:::-;7698:119;7856:1;7881:53;7926:7;7917:6;7906:9;7902:22;7881:53;:::i;:::-;7871:63;;7827:117;7983:2;8009:53;8054:7;8045:6;8034:9;8030:22;8009:53;:::i;:::-;7999:63;;7954:118;7605:474;;;;;:::o;8085:180::-;8133:77;8130:1;8123:88;8230:4;8227:1;8220:15;8254:4;8251:1;8244:15;8271:320;8315:6;8352:1;8346:4;8342:12;8332:22;;8399:1;8393:4;8389:12;8420:18;8410:81;;8476:4;8468:6;8464:17;8454:27;;8410:81;8538:2;8530:6;8527:14;8507:18;8504:38;8501:84;;8557:18;;:::i;:::-;8501:84;8322:269;8271:320;;;:::o;8597:180::-;8645:77;8642:1;8635:88;8742:4;8739:1;8732:15;8766:4;8763:1;8756:15;8783:410;8823:7;8846:20;8864:1;8846:20;:::i;:::-;8841:25;;8880:20;8898:1;8880:20;:::i;:::-;8875:25;;8935:1;8932;8928:9;8957:30;8975:11;8957:30;:::i;:::-;8946:41;;9136:1;9127:7;9123:15;9120:1;9117:22;9097:1;9090:9;9070:83;9047:139;;9166:18;;:::i;:::-;9047:139;8831:362;8783:410;;;;:::o;9199:114::-;9236:7;9276:30;9269:5;9265:42;9254:53;;9199:114;;;:::o;9319:122::-;9392:24;9410:5;9392:24;:::i;:::-;9385:5;9382:35;9372:63;;9431:1;9428;9421:12;9372:63;9319:122;:::o;9447:143::-;9504:5;9535:6;9529:13;9520:22;;9551:33;9578:5;9551:33;:::i;:::-;9447:143;;;;:::o;9596:93::-;9632:7;9672:10;9665:5;9661:22;9650:33;;9596:93;;;:::o;9695:120::-;9767:23;9784:5;9767:23;:::i;:::-;9760:5;9757:34;9747:62;;9805:1;9802;9795:12;9747:62;9695:120;:::o;9821:141::-;9877:5;9908:6;9902:13;9893:22;;9924:32;9950:5;9924:32;:::i;:::-;9821:141;;;;:::o;9968:661::-;10055:6;10063;10071;10120:2;10108:9;10099:7;10095:23;10091:32;10088:119;;;10126:79;;:::i;:::-;10088:119;10246:1;10271:64;10327:7;10318:6;10307:9;10303:22;10271:64;:::i;:::-;10261:74;;10217:128;10384:2;10410:64;10466:7;10457:6;10446:9;10442:22;10410:64;:::i;:::-;10400:74;;10355:129;10523:2;10549:63;10604:7;10595:6;10584:9;10580:22;10549:63;:::i;:::-;10539:73;;10494:128;9968:661;;;;;:::o;10635:180::-;10683:77;10680:1;10673:88;10780:4;10777:1;10770:15;10804:4;10801:1;10794:15;10821:185;10861:1;10878:20;10896:1;10878:20;:::i;:::-;10873:25;;10912:20;10930:1;10912:20;:::i;:::-;10907:25;;10951:1;10941:35;;10956:18;;:::i;:::-;10941:35;10998:1;10995;10991:9;10986:14;;10821:185;;;;:::o;11012:442::-;11161:4;11199:2;11188:9;11184:18;11176:26;;11212:71;11280:1;11269:9;11265:17;11256:6;11212:71;:::i;:::-;11293:72;11361:2;11350:9;11346:18;11337:6;11293:72;:::i;:::-;11375;11443:2;11432:9;11428:18;11419:6;11375:72;:::i;:::-;11012:442;;;;;;:::o;11460:191::-;11500:3;11519:20;11537:1;11519:20;:::i;:::-;11514:25;;11553:20;11571:1;11553:20;:::i;:::-;11548:25;;11596:1;11593;11589:9;11582:16;;11617:3;11614:1;11611:10;11608:36;;;11624:18;;:::i;:::-;11608:36;11460:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"BUSD()":"484f4ea9","FACTORY_V2()":"4d2eaf70","WETH()":"ad5c4648","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","busd()":"3ca5b234","decimals()":"313ce567","factory()":"c45a0155","getPrice()":"98d5fdca","name()":"06fdde03","pair()":"a8aa1b31","swap()":"8119c065","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","weth()":"3fc8cef3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":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\":\"BUSD\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY_V2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"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\":[],\"name\":\"busd\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pair\",\"outputs\":[{\"internalType\":\"contract IUniswapV2Pair\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/src/Oracle.sol\":\"oUSD\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"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":"BUSD","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY_V2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH","outputs":[{"internalType":"address","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":[],"stateMutability":"view","type":"function","name":"busd","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amount","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":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/src/Oracle.sol":"oUSD"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"}},"version":1},"id":136} \ No newline at end of file diff --git a/out/Oracle.t.sol/IBUSD.json b/out/Oracle.t.sol/IBUSD.json index 599075ed..e40083f3 100644 --- a/out/Oracle.t.sol/IBUSD.json +++ b/out/Oracle.t.sol/IBUSD.json @@ -1 +1 @@ -{"abi":[{"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":"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":"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":[],\"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\"}],\"devdoc\":{\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"IBUSD\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":[],"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"}]}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"IBUSD"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":143} \ No newline at end of file +{"abi":[{"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":"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":"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":[],\"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\"}],\"devdoc\":{\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"IBUSD\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":[],"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"}]}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"IBUSD"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":137} \ No newline at end of file diff --git a/out/Oracle.t.sol/IWETH.json b/out/Oracle.t.sol/IWETH.json index d5f07505..3c8c58bc 100644 --- a/out/Oracle.t.sol/IWETH.json +++ b/out/Oracle.t.sol/IWETH.json @@ -1 +1 @@ -{"abi":[{"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":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"IWETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":[],"stateMutability":"payable","type":"function","name":"deposit"},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"IWETH"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":143} \ No newline at end of file +{"abi":[{"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":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":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\":[{\"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\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"IWETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"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":"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":[{"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":[],"stateMutability":"payable","type":"function","name":"deposit"},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"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":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"IWETH"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":137} \ No newline at end of file diff --git a/out/Oracle.t.sol/OracleTest.json b/out/Oracle.t.sol/OracleTest.json index 64d4bf1d..28fcacf0 100644 --- a/out/Oracle.t.sol/OracleTest.json +++ b/out/Oracle.t.sol/OracleTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapBUSDtoWETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testOracleAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360215f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801560ea575f5ffd5b50616976806100f85f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806366d9a9a011610095578063b5508aa911610064578063b5508aa91461022b578063ba414fa614610249578063e20c9f7114610267578063fa7626d414610285576100f3565b806366d9a9a0146101b357806385226c81146101d1578063916a17c6146101ef578063b0464fdc1461020d576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f4146101655780634a8d75e314610183576100f3565b806306c44797146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff6102a3565b005b610109610723565b005b61011361090f565b6040516101209190613535565b60405180910390f35b61013161099a565b60405161013e9190613775565b60405180910390f35b61014f610b1e565b60405161015c9190613535565b60405180910390f35b61016d610ba9565b60405161017a9190613535565b60405180910390f35b61019d600480360381019061019891906137d9565b610c34565b6040516101aa9190613826565b60405180910390f35b6101bb610ed7565b6040516101c89190613a1d565b60405180910390f35b6101d9611059565b6040516101e69190613ac0565b60405180910390f35b6101f761112d565b6040516102049190613bd5565b60405180910390f35b610215611274565b6040516102229190613bd5565b60405180910390f35b6102336113bb565b6040516102409190613ac0565b60405180910390f35b61025161148f565b60405161025e9190613c0f565b60405180910390f35b61026f611596565b60405161027c9190613535565b60405180910390f35b61028d611621565b60405161029a9190613c0f565b60405180910390f35b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561030e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103329190613c3c565b90506103736040518060400160405280602081526020017f312e2045544820507269636520286265666f72652061747461636b293a20257381525082611633565b5f6a084595161401484a00000090506103a2734fabb145d64652a948d72533023f6e7a623c7c536001836116cf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ca669fa760016040518263ffffffff1660e01b81526004016103f09190613c76565b5f604051808303815f87803b158015610407575f5ffd5b505af1158015610419573d5f5f3e3d5ffd5b5050505060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb30836040518363ffffffff1660e01b8152600401610479929190613c8f565b6020604051808303815f875af1158015610495573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190613ce0565b506104c5816001610c34565b506104e760405180606001604052806037815260200161690a603791396116e0565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105769190613c3c565b90506105b76040518060400160405280601f81526020017f332e20455448207072696365202861667465722061747461636b293a2025730081525082611633565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c065670de0b6b3a76400006040518263ffffffff1660e01b815260040160206040518083038185885af115801561062b573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106509190613c3c565b5061071e6040518060600160405280602b81526020016168df602b9139678ac7230489e8000060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106d09190613c76565b602060405180830381865afa1580156106eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070f9190613c3c565b6107199190613d65565b611633565b505050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f877cb196040518163ffffffff1660e01b815260040161076e90613def565b5f60405180830381865afa158015610788573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107b09190613f2b565b602290816107be9190614180565b50737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166371ee464d602262f50ff56040518363ffffffff1660e01b8152600401610812929190614309565b6020604051808303815f875af115801561082e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190613c3c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516108b4906133a9565b604051809103905ff0801580156108cd573d5f5f3e3d5ffd5b5060235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561099057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610947575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610b15578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610afe578382905f5260205f20018054610a7390613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613f9f565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b505050505081526020019060010190610a56565b5050505081525050815260200190600101906109bd565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610b9f57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b56575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c2a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be1575b5050505050905090565b5f60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610cb3929190613c8f565b6020604051808303815f875af1158015610ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf39190613ce0565b506060600267ffffffffffffffff811115610d1157610d10613e15565b5b604051908082528060200260200182016040528015610d3f5781602001602082028036833780820191505090505b509050734fabb145d64652a948d72533023f6e7a623c7c53815f81518110610d6a57610d69614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610dcd57610dcc614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed17398686856001426040518663ffffffff1660e01b8152600401610e6c959493929190614364565b5f604051808303815f875af1158015610e87573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610eaf9190614480565b905080600181518110610ec557610ec4614337565b5b60200260200101519250505092915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611050578382905f5260205f2090600202016040518060400160405290815f82018054610f2a90613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5690613f9f565b8015610fa15780601f10610f7857610100808354040283529160200191610fa1565b820191905f5260205f20905b815481529060010190602001808311610f8457829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561103857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610fe55790505b50505050508152505081526020019060010190610efa565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611124578382905f5260205f2001805461109990613f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546110c590613f9f565b80156111105780601f106110e757610100808354040283529160200191611110565b820191905f5260205f20905b8154815290600101906020018083116110f357829003601f168201915b50505050508152602001906001019061107c565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561126b578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561125357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116112005790505b50505050508152505081526020019060010190611150565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156113b2578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561139a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116113475790505b50505050508152505081526020019060010190611297565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611486578382905f5260205f200180546113fb90613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461142790613f9f565b80156114725780601f1061144957610100808354040283529160200191611472565b820191905f5260205f20905b81548152906001019060200180831161145557829003601f168201915b5050505050815260200190600101906113de565b50505050905090565b5f60085f9054906101000a900460ff16156114ad5760019050611593565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161154f9291906144df565b602060405180830381865afa15801561156a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158e9190614530565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561161757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115ce575b5050505050905090565b601f5f9054906101000a900460ff1681565b6116cb8282604051602401611649929190614593565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b5050565b6116db8383835f611793565b505050565b611776816040516024016116f491906145c1565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b50565b61179081611788611a11611a30565b63ffffffff16565b50565b5f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016117c19190613c76565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161180f9190614625565b5f60405180830381855afa9150503d805f8114611847576040519150601f19603f3d011682016040523d82523d5f602084013e61184c565b606091505b509150505f818060200190518101906118659190613c3c565b90506118b8846118aa8761189c6370a0823160e01b61188e8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a6190919063ffffffff16565b611a7490919063ffffffff16565b8215611a09575f8673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161192f9190614625565b5f60405180830381855afa9150503d805f8114611967576040519150601f19603f3d011682016040523d82523d5f602084013e61196c565b606091505b509150505f818060200190518101906119859190613c3c565b9050828610156119ad57858361199b919061463b565b816119a6919061463b565b90506119c7565b82866119b9919061463b565b816119c4919061466e565b90505b611a06816119f86318160ddd60e01b6119ea8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a7490919063ffffffff16565b50505b505050505050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6133b6819050919050565b5f611a468383611a84565b905092915050565b5f611a598383611ad0565b905092915050565b5f611a6c8383611af9565b905092915050565b611a8082825f1b611b43565b5050565b5f81836004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082905092915050565b5f81836002015f6101000a81548163ffffffff021916908360e01c021790555082905092915050565b5f826001018273ffffffffffffffffffffffffffffffffffffffff165f1b908060018154018082558091505060019003905f5260205f20015f909190919091505582905092915050565b5f826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836002015f9054906101000a900460e01b90505f846003015490505f611b90866120da565b9050855f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8284604051602001611c319291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16611c7457611c72865f6121e6565b505b5f865f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8385604051602001611d149291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154611d4e919061466e565b1115611e89575f81600201548260010154611d69919061466e565b610100611d76919061463b565b6002611d829190614817565b905080875f1c107f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae836040518263ffffffff1660e01b8152600401611de49190613826565b5f60405180830381865afa158015611dfe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e269190613f2b565b604051602001611e369190614931565b60405160208183030381529060405290611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d91906145c1565b60405180910390fd5b50505b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d7087845f01545f1b6040518363ffffffff1660e01b8152600401611eec9291906144df565b602060405180830381865afa158015611f07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2b9190614530565b90505f611f4482895f1c856001015486600201546121fc565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb88855f01545f1b846040518463ffffffff1660e01b8152600401611faa93929190614952565b5f604051808303815f87803b158015611fc1575f5ffd5b505af1158015611fd3573d5f5f3e3d5ffd5b505050505f5f611fe28b61221d565b91509150811580611ff35750898114155b156120c4577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8a875f01545f1b876040518463ffffffff1660e01b815260040161205c93929190614952565b5f604051808303815f87803b158015612073575f5ffd5b505af1158015612085573d5f5f3e3d5ffd5b505050506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb906149f7565b60405180910390fd5b6120cd8b612314565b5050505050505050505050565b60605f8260070180546120ec90613f9f565b9050036121535761214c8260010180548060200260200160405190810160405280929190818152602001828054801561214257602002820191905f5260205f20905b81548152602001906001019080831161212e575b5050505050612320565b90506121e1565b81600701805461216290613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461218e90613f9f565b80156121d95780601f106121b0576101008083540402835291602001916121d9565b820191905f5260205f20905b8154815290600101906020018083116121bc57829003601f168201915b505050505090505b919050565b5f6121f183836123ce565b5f0154905092915050565b5f8184901b61220b8484612ce6565b19865f1c16175f1b9050949350505050565b5f5f5f836002015f9054906101000a900460e01b61223a856120da565b60405160200161224b929190614a35565b60405160208183030381529060405290505f5f856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516122a69190614625565b5f60405180830381855afa9150503d805f81146122de576040519150601f19603f3d011682016040523d82523d5f602084013e6122e3565b606091505b50915091505f61230382886003015460206122fe9190614a5c565b612cfd565b905082819550955050505050915091565b61231d81612db6565b50565b60605f602083516123319190614a5c565b67ffffffffffffffff81111561234a57612349613e15565b5b6040519080825280601f01601f19166020018201604052801561237c5781602001600182028036833780820191505090505b5090505f5f90505b83518110156123c4575f8482815181106123a1576123a0614337565b5b602002602001015190508082602002602001840152508080600101915050612384565b5080915050919050565b5f5f836004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f846002015f9054906101000a900460e01b90505f856003015490505f61241c876120da565b9050865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016124bd9291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16156125d25785156125055761250487612db6565b5b865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016125a49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f20945050505050612ce0565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612639575f5ffd5b505af115801561264b573d5f5f3e3d5ffd5b505050505f6126598861221d565b9150505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166365bc9481876040518263ffffffff1660e01b81526004016126b89190613c76565b5f60405180830381865afa1580156126d2573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906126fa9190614b5d565b5090505f815103612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c43565b60405180910390fd5b5f815190505b5f8161275190614c61565b91508110612af3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70898585815181106127ac576127ab614337565b5b60200260200101516040518363ffffffff1660e01b81526004016127d19291906144df565b602060405180830381865afa1580156127ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128109190614530565b90505f5f1b8103612871577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5888484815181106128505761284f614337565b5b60200260200101515f1c604051612868929190613c8f565b60405180910390a15b6128958b84848151811061288857612887614337565b5b6020026020010151612e2d565b61289f5750612aee565b5f5f5f5f915091508c6006015f9054906101000a900460ff16156128fe575f6128e28e8787815181106128d5576128d4614337565b5b60200260200101516130bc565b809450819550829350505050806128fc5750505050612aee565b505b5f8161290a8484612ce6565b855f1c16901c905080875f1c146129245750505050612aee565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c60405160200161295a9291906146c1565b6040516020818303038152906040528051906020012089898151811061298357612982614337565b5b60200260200101515f1c60405161299d9493929190614c97565b60405180910390a160405180608001604052808787815181106129c3576129c2614337565b5b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c604051602001612a849291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050612af3565b612746565b50885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612b939291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16612c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfc90614d4a565b60405180910390fd5b8715612c1557612c1489612db6565b5b885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612cb49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2096505050505050505b92915050565b5f600180848401610100031b03821b905092915050565b5f5f5f83855111612d0e575f612d1c565b838551612d1b919061463b565b5b90506020811115612d2c57602090505b5f5f90505b81811015612daa57600881612d469190614a5c565b60ff60f81b878388612d58919061466e565b81518110612d6957612d68614337565b5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c831792508080600101915050612d31565b50819250505092915050565b806004015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055806002015f6101000a81549063ffffffff0219169055806001015f612e0191906133c0565b806003015f9055806006015f6101000a81549060ff0219169055806007015f612e2a91906133da565b50565b5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401612eaf9291906144df565b602060405180830381865afa158015612eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eee9190614530565b90505f5f612efb8661221d565b915091505f5f5f1b8214612f11575f5f1b612f35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f1b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688846040518463ffffffff1660e01b8152600401612fb993929190614952565b5f604051808303815f87803b158015612fd0575f5ffd5b505af1158015612fe2573d5f5f3e3d5ffd5b505050505f612ff08861221d565b9150507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb896004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689886040518463ffffffff1660e01b815260040161307593929190614952565b5f604051808303815f87803b15801561308c575f5ffd5b505af115801561309e573d5f5f3e3d5ffd5b505050508380156130af5750808314155b9550505050505092915050565b5f5f5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70876004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016131409291906144df565b602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614530565b90505f5f61318f88886001613271565b915091505f5f6131a08a8a5f613271565b915091507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8b6004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b886040518463ffffffff1660e01b815260040161322693929190614952565b5f604051808303815f87803b15801561323d575f5ffd5b505af115801561324f573d5f5f3e3d5ffd5b5050505083801561325d5750815b838297509750975050505050509250925092565b5f5f5f5f90505b610100811015613399575f8461329257816001901b6132a4565b8160ff61329f919061463b565b6001901b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688845f1b6040518463ffffffff1660e01b815260040161332a93929190614952565b5f604051808303815f87803b158015613341575f5ffd5b505af1158015613353573d5f5f3e3d5ffd5b505050505f5f6133628961221d565b9150915081801561337457505f815f1c115b156133895760018495509550505050506133a1565b5050508080600101915050613278565b505f5f915091505b935093915050565b611b4980614d9683390190565b6133be614d68565b565b5080545f8255905f5260205f20906133d89190613414565b565b5080546133e690613f9f565b5f825580601f106133f8575050613412565b601f0160209004905f5260205f20906134119190613431565b5b565b5f5b8082111561342c578281015f9055600101613416565b505050565b5f5b80821115613449578281015f9055600101613433565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a082613477565b9050919050565b6134b081613496565b82525050565b5f6134c183836134a7565b60208301905092915050565b5f602082019050919050565b5f6134e38261344e565b6134ed8185613458565b93506134f883613468565b805f5b8381101561352857815161350f88826134b6565b975061351a836134cd565b9250506001810190506134fb565b5085935050505092915050565b5f6020820190508181035f83015261354d81846134d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6135e9826135a7565b6135f381856135b1565b93506136038185602086016135c1565b61360c816135cf565b840191505092915050565b5f61362283836135df565b905092915050565b5f602082019050919050565b5f6136408261357e565b61364a8185613588565b93508360208202850161365c85613598565b805f5b8581101561369757848403895281516136788582613617565b94506136838361362a565b925060208a0199505060018101905061365f565b50829750879550505050505092915050565b5f604083015f8301516136be5f8601826134a7565b50602083015184820360208601526136d68282613636565b9150508091505092915050565b5f6136ee83836136a9565b905092915050565b5f602082019050919050565b5f61370c82613555565b613716818561355f565b9350836020820285016137288561356f565b805f5b85811015613763578484038952815161374485826136e3565b945061374f836136f6565b925060208a0199505060018101905061372b565b50829750879550505050505092915050565b5f6020820190508181035f83015261378d8184613702565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6137b8816137a6565b81146137c2575f5ffd5b50565b5f813590506137d3816137af565b92915050565b5f5f604083850312156137ef576137ee61379e565b5b5f6137fc858286016137c5565b925050602061380d858286016137c5565b9150509250929050565b613820816137a6565b82525050565b5f6020820190506138395f830184613817565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6138c581613891565b82525050565b5f6138d683836138bc565b60208301905092915050565b5f602082019050919050565b5f6138f882613868565b6139028185613872565b935061390d83613882565b805f5b8381101561393d57815161392488826138cb565b975061392f836138e2565b925050600181019050613910565b5085935050505092915050565b5f604083015f8301518482035f86015261396482826135df565b9150506020830151848203602086015261397e82826138ee565b9150508091505092915050565b5f613996838361394a565b905092915050565b5f602082019050919050565b5f6139b48261383f565b6139be8185613849565b9350836020820285016139d085613859565b805f5b85811015613a0b57848403895281516139ec858261398b565b94506139f78361399e565b925060208a019950506001810190506139d3565b50829750879550505050505092915050565b5f6020820190508181035f830152613a3581846139aa565b905092915050565b5f82825260208201905092915050565b5f613a578261357e565b613a618185613a3d565b935083602082028501613a7385613598565b805f5b85811015613aae5784840389528151613a8f8582613617565b9450613a9a8361362a565b925060208a01995050600181019050613a76565b50829750879550505050505092915050565b5f6020820190508181035f830152613ad88184613a4d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151613b1e5f8601826134a7565b5060208301518482036020860152613b3682826138ee565b9150508091505092915050565b5f613b4e8383613b09565b905092915050565b5f602082019050919050565b5f613b6c82613ae0565b613b768185613aea565b935083602082028501613b8885613afa565b805f5b85811015613bc35784840389528151613ba48582613b43565b9450613baf83613b56565b925060208a01995050600181019050613b8b565b50829750879550505050505092915050565b5f6020820190508181035f830152613bed8184613b62565b905092915050565b5f8115159050919050565b613c0981613bf5565b82525050565b5f602082019050613c225f830184613c00565b92915050565b5f81519050613c36816137af565b92915050565b5f60208284031215613c5157613c5061379e565b5b5f613c5e84828501613c28565b91505092915050565b613c7081613496565b82525050565b5f602082019050613c895f830184613c67565b92915050565b5f604082019050613ca25f830185613c67565b613caf6020830184613817565b9392505050565b613cbf81613bf5565b8114613cc9575f5ffd5b50565b5f81519050613cda81613cb6565b92915050565b5f60208284031215613cf557613cf461379e565b5b5f613d0284828501613ccc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d6f826137a6565b9150613d7a836137a6565b925082613d8a57613d89613d0b565b5b828204905092915050565b5f82825260208201905092915050565b7f4d41494e4e45545f5250435f55524c00000000000000000000000000000000005f82015250565b5f613dd9600f83613d95565b9150613de482613da5565b602082019050919050565b5f6020820190508181035f830152613e0681613dcd565b9050919050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613e4b826135cf565b810181811067ffffffffffffffff82111715613e6a57613e69613e15565b5b80604052505050565b5f613e7c613795565b9050613e888282613e42565b919050565b5f67ffffffffffffffff821115613ea757613ea6613e15565b5b613eb0826135cf565b9050602081019050919050565b5f613ecf613eca84613e8d565b613e73565b905082815260208101848484011115613eeb57613eea613e11565b5b613ef68482856135c1565b509392505050565b5f82601f830112613f1257613f11613e0d565b5b8151613f22848260208601613ebd565b91505092915050565b5f60208284031215613f4057613f3f61379e565b5b5f82015167ffffffffffffffff811115613f5d57613f5c6137a2565b5b613f6984828501613efe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fb657607f821691505b602082108103613fc957613fc8613f72565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261402b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ff0565b6140358683613ff0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61407061406b614066846137a6565b61404d565b6137a6565b9050919050565b5f819050919050565b61408983614056565b61409d61409582614077565b848454613ffc565b825550505050565b5f5f905090565b6140b46140a5565b6140bf818484614080565b505050565b5f5b828110156140e5576140da5f8284016140ac565b6001810190506140c6565b505050565b601f82111561413857828211156141375761410481613fcf565b61410d83613fe1565b61411685613fe1565b6020861015614123575f90505b808301614132828403826140c4565b505050505b5b505050565b5f82821c905092915050565b5f6141585f198460080261413d565b1980831691505092915050565b5f6141708383614149565b9150826002028217905092915050565b614189826135a7565b67ffffffffffffffff8111156141a2576141a1613e15565b5b6141ac8254613f9f565b6141b78282856140ea565b5f60209050601f8311600181146141e8575f84156141d6578287015190505b6141e08582614165565b865550614247565b601f1984166141f686613fcf565b5f5b8281101561421d578489015182556001820191506020850194506020810190506141f8565b8683101561423a5784890151614236601f891682614149565b8355505b6001600288020188555050505b505050505050565b5f815461425b81613f9f565b6142658186613d95565b9450600182165f811461427f5760018114614295576142c7565b60ff1983168652811515602002860193506142c7565b61429e85613fcf565b5f5b838110156142bf578154818901526001820191506020810190506142a0565b808801955050505b50505092915050565b5f819050919050565b5f6142f36142ee6142e9846142d0565b61404d565b6137a6565b9050919050565b614303816142d9565b82525050565b5f6040820190508181035f830152614321818561424f565b905061433060208301846142fa565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820190506143775f830188613817565b6143846020830187613817565b818103604083015261439681866134d9565b90506143a56060830185613c67565b6143b26080830184613817565b9695505050505050565b5f67ffffffffffffffff8211156143d6576143d5613e15565b5b602082029050602081019050919050565b5f5ffd5b5f6143fd6143f8846143bc565b613e73565b905080838252602082019050602084028301858111156144205761441f6143e7565b5b835b8181101561444957806144358882613c28565b845260208401935050602081019050614422565b5050509392505050565b5f82601f83011261446757614466613e0d565b5b81516144778482602086016143eb565b91505092915050565b5f602082840312156144955761449461379e565b5b5f82015167ffffffffffffffff8111156144b2576144b16137a2565b5b6144be84828501614453565b91505092915050565b5f819050919050565b6144d9816144c7565b82525050565b5f6040820190506144f25f830185613c67565b6144ff60208301846144d0565b9392505050565b61450f816144c7565b8114614519575f5ffd5b50565b5f8151905061452a81614506565b92915050565b5f602082840312156145455761454461379e565b5b5f6145528482850161451c565b91505092915050565b5f614565826135a7565b61456f8185613d95565b935061457f8185602086016135c1565b614588816135cf565b840191505092915050565b5f6040820190508181035f8301526145ab818561455b565b90506145ba6020830184613817565b9392505050565b5f6020820190508181035f8301526145d9818461455b565b905092915050565b5f81519050919050565b5f81905092915050565b5f6145ff826145e1565b61460981856145eb565b93506146198185602086016135c1565b80840191505092915050565b5f61463082846145f5565b915081905092915050565b5f614645826137a6565b9150614650836137a6565b925082820390508181111561466857614667613d38565b5b92915050565b5f614678826137a6565b9150614683836137a6565b925082820190508082111561469b5761469a613d38565b5b92915050565b5f819050919050565b6146bb6146b6826137a6565b6146a1565b82525050565b5f6146cc82856145f5565b91506146d882846146aa565b6020820191508190509392505050565b5f8160011c9050919050565b5f5f8291508390505b600185111561473d5780860481111561471957614718613d38565b5b60018516156147285780820291505b8081029050614736856146e8565b94506146fd565b94509492505050565b5f826147555760019050614810565b81614762575f9050614810565b81600181146147785760028114614782576147b1565b6001915050614810565b60ff84111561479457614793613d38565b5b8360020a9150848211156147ab576147aa613d38565b5b50614810565b5060208310610133831016604e8410600b84101617156147e65782820a9050838111156147e1576147e0613d38565b5b614810565b6147f384848460016146f4565b9250905081840481111561480a57614809613d38565b5b81810290505b9392505050565b5f614821826137a6565b915061482c836137a6565b92506148597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614746565b905092915050565b5f81905092915050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a205061636b656420736c6f742e2057652063616e2774206669742060208201527f76616c75652067726561746572207468616e2000000000000000000000000000604082015250565b5f6148eb605383614861565b91506148f68261486b565b605382019050919050565b5f61490b826135a7565b6149158185614861565b93506149258185602086016135c1565b80840191505092915050565b5f61493b826148df565b91506149478284614901565b915081905092915050565b5f6060820190506149655f830186613c67565b61497260208301856144d0565b61497f60408301846144d0565b949350505050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a204661696c656420746f2077726974652076616c75652e00000000602082015250565b5f6149e1603c83613d95565b91506149ec82614987565b604082019050919050565b5f6020820190508181035f830152614a0e816149d5565b9050919050565b5f819050919050565b614a2f614a2a82613891565b614a15565b82525050565b5f614a408285614a1e565b600482019150614a5082846145f5565b91508190509392505050565b5f614a66826137a6565b9150614a71836137a6565b9250828202614a7f816137a6565b91508282048414831517614a9657614a95613d38565b5b5092915050565b5f67ffffffffffffffff821115614ab757614ab6613e15565b5b602082029050602081019050919050565b5f614ada614ad584614a9d565b613e73565b90508083825260208201905060208402830185811115614afd57614afc6143e7565b5b835b81811015614b265780614b12888261451c565b845260208401935050602081019050614aff565b5050509392505050565b5f82601f830112614b4457614b43613e0d565b5b8151614b54848260208601614ac8565b91505092915050565b5f5f60408385031215614b7357614b7261379e565b5b5f83015167ffffffffffffffff811115614b9057614b8f6137a2565b5b614b9c85828601614b30565b925050602083015167ffffffffffffffff811115614bbd57614bbc6137a2565b5b614bc985828601614b30565b9150509250929050565b7f73746453746f726167652066696e642853746453746f72616765293a204e6f205f8201527f73746f726167652075736520646574656374656420666f72207461726765742e602082015250565b5f614c2d604083613d95565b9150614c3882614bd3565b604082019050919050565b5f6020820190508181035f830152614c5a81614c21565b9050919050565b5f614c6b826137a6565b91505f8203614c7d57614c7c613d38565b5b600182039050919050565b614c9181613891565b82525050565b5f608082019050614caa5f830187613c67565b614cb76020830186614c88565b614cc460408301856144d0565b614cd16060830184613817565b95945050505050565b7f73746453746f726167652066696e642853746453746f72616765293a20536c6f5f8201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000602082015250565b5f614d34602f83613d95565b9150614d3f82614cda565b604082019050919050565b5f6020820190508181035f830152614d6181614d28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033342e204d696e746564202573206f5553442077697468203120455448202861667465722061747461636b29322e205377617020312c3030302c303030204255534420746f205745544820746f206d616e6970756c61746520746865206f7261636c65a2646970667358221220fdb0e7242204c2f9babb28b0dc8b734985528131e78ceecf2eac4a1dfb98e24064736f6c63430008220033","sourceMap":"147:2299:143:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;262:42:143;501:32;;;;;;;;;;;;;;;;;;;;342:42;539:32;;;;;;;;;;;;;;;;;;;;147:2299;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806366d9a9a011610095578063b5508aa911610064578063b5508aa91461022b578063ba414fa614610249578063e20c9f7114610267578063fa7626d414610285576100f3565b806366d9a9a0146101b357806385226c81146101d1578063916a17c6146101ef578063b0464fdc1461020d576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f4146101655780634a8d75e314610183576100f3565b806306c44797146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff6102a3565b005b610109610723565b005b61011361090f565b6040516101209190613535565b60405180910390f35b61013161099a565b60405161013e9190613775565b60405180910390f35b61014f610b1e565b60405161015c9190613535565b60405180910390f35b61016d610ba9565b60405161017a9190613535565b60405180910390f35b61019d600480360381019061019891906137d9565b610c34565b6040516101aa9190613826565b60405180910390f35b6101bb610ed7565b6040516101c89190613a1d565b60405180910390f35b6101d9611059565b6040516101e69190613ac0565b60405180910390f35b6101f761112d565b6040516102049190613bd5565b60405180910390f35b610215611274565b6040516102229190613bd5565b60405180910390f35b6102336113bb565b6040516102409190613ac0565b60405180910390f35b61025161148f565b60405161025e9190613c0f565b60405180910390f35b61026f611596565b60405161027c9190613535565b60405180910390f35b61028d611621565b60405161029a9190613c0f565b60405180910390f35b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561030e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103329190613c3c565b90506103736040518060400160405280602081526020017f312e2045544820507269636520286265666f72652061747461636b293a20257381525082611633565b5f6a084595161401484a00000090506103a2734fabb145d64652a948d72533023f6e7a623c7c536001836116cf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ca669fa760016040518263ffffffff1660e01b81526004016103f09190613c76565b5f604051808303815f87803b158015610407575f5ffd5b505af1158015610419573d5f5f3e3d5ffd5b5050505060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb30836040518363ffffffff1660e01b8152600401610479929190613c8f565b6020604051808303815f875af1158015610495573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190613ce0565b506104c5816001610c34565b506104e760405180606001604052806037815260200161690a603791396116e0565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105769190613c3c565b90506105b76040518060400160405280601f81526020017f332e20455448207072696365202861667465722061747461636b293a2025730081525082611633565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c065670de0b6b3a76400006040518263ffffffff1660e01b815260040160206040518083038185885af115801561062b573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106509190613c3c565b5061071e6040518060600160405280602b81526020016168df602b9139678ac7230489e8000060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106d09190613c76565b602060405180830381865afa1580156106eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070f9190613c3c565b6107199190613d65565b611633565b505050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f877cb196040518163ffffffff1660e01b815260040161076e90613def565b5f60405180830381865afa158015610788573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107b09190613f2b565b602290816107be9190614180565b50737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166371ee464d602262f50ff56040518363ffffffff1660e01b8152600401610812929190614309565b6020604051808303815f875af115801561082e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190613c3c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516108b4906133a9565b604051809103905ff0801580156108cd573d5f5f3e3d5ffd5b5060235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561099057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610947575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610b15578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610afe578382905f5260205f20018054610a7390613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613f9f565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b505050505081526020019060010190610a56565b5050505081525050815260200190600101906109bd565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610b9f57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b56575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c2a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be1575b5050505050905090565b5f60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610cb3929190613c8f565b6020604051808303815f875af1158015610ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf39190613ce0565b506060600267ffffffffffffffff811115610d1157610d10613e15565b5b604051908082528060200260200182016040528015610d3f5781602001602082028036833780820191505090505b509050734fabb145d64652a948d72533023f6e7a623c7c53815f81518110610d6a57610d69614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610dcd57610dcc614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed17398686856001426040518663ffffffff1660e01b8152600401610e6c959493929190614364565b5f604051808303815f875af1158015610e87573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610eaf9190614480565b905080600181518110610ec557610ec4614337565b5b60200260200101519250505092915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611050578382905f5260205f2090600202016040518060400160405290815f82018054610f2a90613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5690613f9f565b8015610fa15780601f10610f7857610100808354040283529160200191610fa1565b820191905f5260205f20905b815481529060010190602001808311610f8457829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561103857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610fe55790505b50505050508152505081526020019060010190610efa565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611124578382905f5260205f2001805461109990613f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546110c590613f9f565b80156111105780601f106110e757610100808354040283529160200191611110565b820191905f5260205f20905b8154815290600101906020018083116110f357829003601f168201915b50505050508152602001906001019061107c565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561126b578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561125357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116112005790505b50505050508152505081526020019060010190611150565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156113b2578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561139a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116113475790505b50505050508152505081526020019060010190611297565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611486578382905f5260205f200180546113fb90613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461142790613f9f565b80156114725780601f1061144957610100808354040283529160200191611472565b820191905f5260205f20905b81548152906001019060200180831161145557829003601f168201915b5050505050815260200190600101906113de565b50505050905090565b5f60085f9054906101000a900460ff16156114ad5760019050611593565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161154f9291906144df565b602060405180830381865afa15801561156a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158e9190614530565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561161757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115ce575b5050505050905090565b601f5f9054906101000a900460ff1681565b6116cb8282604051602401611649929190614593565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b5050565b6116db8383835f611793565b505050565b611776816040516024016116f491906145c1565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b50565b61179081611788611a11611a30565b63ffffffff16565b50565b5f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016117c19190613c76565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161180f9190614625565b5f60405180830381855afa9150503d805f8114611847576040519150601f19603f3d011682016040523d82523d5f602084013e61184c565b606091505b509150505f818060200190518101906118659190613c3c565b90506118b8846118aa8761189c6370a0823160e01b61188e8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a6190919063ffffffff16565b611a7490919063ffffffff16565b8215611a09575f8673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161192f9190614625565b5f60405180830381855afa9150503d805f8114611967576040519150601f19603f3d011682016040523d82523d5f602084013e61196c565b606091505b509150505f818060200190518101906119859190613c3c565b9050828610156119ad57858361199b919061463b565b816119a6919061463b565b90506119c7565b82866119b9919061463b565b816119c4919061466e565b90505b611a06816119f86318160ddd60e01b6119ea8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a7490919063ffffffff16565b50505b505050505050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6133b6819050919050565b5f611a468383611a84565b905092915050565b5f611a598383611ad0565b905092915050565b5f611a6c8383611af9565b905092915050565b611a8082825f1b611b43565b5050565b5f81836004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082905092915050565b5f81836002015f6101000a81548163ffffffff021916908360e01c021790555082905092915050565b5f826001018273ffffffffffffffffffffffffffffffffffffffff165f1b908060018154018082558091505060019003905f5260205f20015f909190919091505582905092915050565b5f826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836002015f9054906101000a900460e01b90505f846003015490505f611b90866120da565b9050855f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8284604051602001611c319291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16611c7457611c72865f6121e6565b505b5f865f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8385604051602001611d149291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154611d4e919061466e565b1115611e89575f81600201548260010154611d69919061466e565b610100611d76919061463b565b6002611d829190614817565b905080875f1c107f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae836040518263ffffffff1660e01b8152600401611de49190613826565b5f60405180830381865afa158015611dfe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e269190613f2b565b604051602001611e369190614931565b60405160208183030381529060405290611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d91906145c1565b60405180910390fd5b50505b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d7087845f01545f1b6040518363ffffffff1660e01b8152600401611eec9291906144df565b602060405180830381865afa158015611f07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2b9190614530565b90505f611f4482895f1c856001015486600201546121fc565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb88855f01545f1b846040518463ffffffff1660e01b8152600401611faa93929190614952565b5f604051808303815f87803b158015611fc1575f5ffd5b505af1158015611fd3573d5f5f3e3d5ffd5b505050505f5f611fe28b61221d565b91509150811580611ff35750898114155b156120c4577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8a875f01545f1b876040518463ffffffff1660e01b815260040161205c93929190614952565b5f604051808303815f87803b158015612073575f5ffd5b505af1158015612085573d5f5f3e3d5ffd5b505050506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb906149f7565b60405180910390fd5b6120cd8b612314565b5050505050505050505050565b60605f8260070180546120ec90613f9f565b9050036121535761214c8260010180548060200260200160405190810160405280929190818152602001828054801561214257602002820191905f5260205f20905b81548152602001906001019080831161212e575b5050505050612320565b90506121e1565b81600701805461216290613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461218e90613f9f565b80156121d95780601f106121b0576101008083540402835291602001916121d9565b820191905f5260205f20905b8154815290600101906020018083116121bc57829003601f168201915b505050505090505b919050565b5f6121f183836123ce565b5f0154905092915050565b5f8184901b61220b8484612ce6565b19865f1c16175f1b9050949350505050565b5f5f5f836002015f9054906101000a900460e01b61223a856120da565b60405160200161224b929190614a35565b60405160208183030381529060405290505f5f856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516122a69190614625565b5f60405180830381855afa9150503d805f81146122de576040519150601f19603f3d011682016040523d82523d5f602084013e6122e3565b606091505b50915091505f61230382886003015460206122fe9190614a5c565b612cfd565b905082819550955050505050915091565b61231d81612db6565b50565b60605f602083516123319190614a5c565b67ffffffffffffffff81111561234a57612349613e15565b5b6040519080825280601f01601f19166020018201604052801561237c5781602001600182028036833780820191505090505b5090505f5f90505b83518110156123c4575f8482815181106123a1576123a0614337565b5b602002602001015190508082602002602001840152508080600101915050612384565b5080915050919050565b5f5f836004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f846002015f9054906101000a900460e01b90505f856003015490505f61241c876120da565b9050865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016124bd9291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16156125d25785156125055761250487612db6565b5b865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016125a49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f20945050505050612ce0565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612639575f5ffd5b505af115801561264b573d5f5f3e3d5ffd5b505050505f6126598861221d565b9150505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166365bc9481876040518263ffffffff1660e01b81526004016126b89190613c76565b5f60405180830381865afa1580156126d2573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906126fa9190614b5d565b5090505f815103612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c43565b60405180910390fd5b5f815190505b5f8161275190614c61565b91508110612af3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70898585815181106127ac576127ab614337565b5b60200260200101516040518363ffffffff1660e01b81526004016127d19291906144df565b602060405180830381865afa1580156127ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128109190614530565b90505f5f1b8103612871577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5888484815181106128505761284f614337565b5b60200260200101515f1c604051612868929190613c8f565b60405180910390a15b6128958b84848151811061288857612887614337565b5b6020026020010151612e2d565b61289f5750612aee565b5f5f5f5f915091508c6006015f9054906101000a900460ff16156128fe575f6128e28e8787815181106128d5576128d4614337565b5b60200260200101516130bc565b809450819550829350505050806128fc5750505050612aee565b505b5f8161290a8484612ce6565b855f1c16901c905080875f1c146129245750505050612aee565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c60405160200161295a9291906146c1565b6040516020818303038152906040528051906020012089898151811061298357612982614337565b5b60200260200101515f1c60405161299d9493929190614c97565b60405180910390a160405180608001604052808787815181106129c3576129c2614337565b5b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c604051602001612a849291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050612af3565b612746565b50885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612b939291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16612c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfc90614d4a565b60405180910390fd5b8715612c1557612c1489612db6565b5b885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612cb49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2096505050505050505b92915050565b5f600180848401610100031b03821b905092915050565b5f5f5f83855111612d0e575f612d1c565b838551612d1b919061463b565b5b90506020811115612d2c57602090505b5f5f90505b81811015612daa57600881612d469190614a5c565b60ff60f81b878388612d58919061466e565b81518110612d6957612d68614337565b5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c831792508080600101915050612d31565b50819250505092915050565b806004015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055806002015f6101000a81549063ffffffff0219169055806001015f612e0191906133c0565b806003015f9055806006015f6101000a81549060ff0219169055806007015f612e2a91906133da565b50565b5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401612eaf9291906144df565b602060405180830381865afa158015612eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eee9190614530565b90505f5f612efb8661221d565b915091505f5f5f1b8214612f11575f5f1b612f35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f1b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688846040518463ffffffff1660e01b8152600401612fb993929190614952565b5f604051808303815f87803b158015612fd0575f5ffd5b505af1158015612fe2573d5f5f3e3d5ffd5b505050505f612ff08861221d565b9150507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb896004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689886040518463ffffffff1660e01b815260040161307593929190614952565b5f604051808303815f87803b15801561308c575f5ffd5b505af115801561309e573d5f5f3e3d5ffd5b505050508380156130af5750808314155b9550505050505092915050565b5f5f5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70876004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016131409291906144df565b602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614530565b90505f5f61318f88886001613271565b915091505f5f6131a08a8a5f613271565b915091507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8b6004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b886040518463ffffffff1660e01b815260040161322693929190614952565b5f604051808303815f87803b15801561323d575f5ffd5b505af115801561324f573d5f5f3e3d5ffd5b5050505083801561325d5750815b838297509750975050505050509250925092565b5f5f5f5f90505b610100811015613399575f8461329257816001901b6132a4565b8160ff61329f919061463b565b6001901b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688845f1b6040518463ffffffff1660e01b815260040161332a93929190614952565b5f604051808303815f87803b158015613341575f5ffd5b505af1158015613353573d5f5f3e3d5ffd5b505050505f5f6133628961221d565b9150915081801561337457505f815f1c115b156133895760018495509550505050506133a1565b5050508080600101915050613278565b505f5f915091505b935093915050565b611b4980614d9683390190565b6133be614d68565b565b5080545f8255905f5260205f20906133d89190613414565b565b5080546133e690613f9f565b5f825580601f106133f8575050613412565b601f0160209004905f5260205f20906134119190613431565b5b565b5f5b8082111561342c578281015f9055600101613416565b505050565b5f5b80821115613449578281015f9055600101613433565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a082613477565b9050919050565b6134b081613496565b82525050565b5f6134c183836134a7565b60208301905092915050565b5f602082019050919050565b5f6134e38261344e565b6134ed8185613458565b93506134f883613468565b805f5b8381101561352857815161350f88826134b6565b975061351a836134cd565b9250506001810190506134fb565b5085935050505092915050565b5f6020820190508181035f83015261354d81846134d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6135e9826135a7565b6135f381856135b1565b93506136038185602086016135c1565b61360c816135cf565b840191505092915050565b5f61362283836135df565b905092915050565b5f602082019050919050565b5f6136408261357e565b61364a8185613588565b93508360208202850161365c85613598565b805f5b8581101561369757848403895281516136788582613617565b94506136838361362a565b925060208a0199505060018101905061365f565b50829750879550505050505092915050565b5f604083015f8301516136be5f8601826134a7565b50602083015184820360208601526136d68282613636565b9150508091505092915050565b5f6136ee83836136a9565b905092915050565b5f602082019050919050565b5f61370c82613555565b613716818561355f565b9350836020820285016137288561356f565b805f5b85811015613763578484038952815161374485826136e3565b945061374f836136f6565b925060208a0199505060018101905061372b565b50829750879550505050505092915050565b5f6020820190508181035f83015261378d8184613702565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6137b8816137a6565b81146137c2575f5ffd5b50565b5f813590506137d3816137af565b92915050565b5f5f604083850312156137ef576137ee61379e565b5b5f6137fc858286016137c5565b925050602061380d858286016137c5565b9150509250929050565b613820816137a6565b82525050565b5f6020820190506138395f830184613817565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6138c581613891565b82525050565b5f6138d683836138bc565b60208301905092915050565b5f602082019050919050565b5f6138f882613868565b6139028185613872565b935061390d83613882565b805f5b8381101561393d57815161392488826138cb565b975061392f836138e2565b925050600181019050613910565b5085935050505092915050565b5f604083015f8301518482035f86015261396482826135df565b9150506020830151848203602086015261397e82826138ee565b9150508091505092915050565b5f613996838361394a565b905092915050565b5f602082019050919050565b5f6139b48261383f565b6139be8185613849565b9350836020820285016139d085613859565b805f5b85811015613a0b57848403895281516139ec858261398b565b94506139f78361399e565b925060208a019950506001810190506139d3565b50829750879550505050505092915050565b5f6020820190508181035f830152613a3581846139aa565b905092915050565b5f82825260208201905092915050565b5f613a578261357e565b613a618185613a3d565b935083602082028501613a7385613598565b805f5b85811015613aae5784840389528151613a8f8582613617565b9450613a9a8361362a565b925060208a01995050600181019050613a76565b50829750879550505050505092915050565b5f6020820190508181035f830152613ad88184613a4d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151613b1e5f8601826134a7565b5060208301518482036020860152613b3682826138ee565b9150508091505092915050565b5f613b4e8383613b09565b905092915050565b5f602082019050919050565b5f613b6c82613ae0565b613b768185613aea565b935083602082028501613b8885613afa565b805f5b85811015613bc35784840389528151613ba48582613b43565b9450613baf83613b56565b925060208a01995050600181019050613b8b565b50829750879550505050505092915050565b5f6020820190508181035f830152613bed8184613b62565b905092915050565b5f8115159050919050565b613c0981613bf5565b82525050565b5f602082019050613c225f830184613c00565b92915050565b5f81519050613c36816137af565b92915050565b5f60208284031215613c5157613c5061379e565b5b5f613c5e84828501613c28565b91505092915050565b613c7081613496565b82525050565b5f602082019050613c895f830184613c67565b92915050565b5f604082019050613ca25f830185613c67565b613caf6020830184613817565b9392505050565b613cbf81613bf5565b8114613cc9575f5ffd5b50565b5f81519050613cda81613cb6565b92915050565b5f60208284031215613cf557613cf461379e565b5b5f613d0284828501613ccc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d6f826137a6565b9150613d7a836137a6565b925082613d8a57613d89613d0b565b5b828204905092915050565b5f82825260208201905092915050565b7f4d41494e4e45545f5250435f55524c00000000000000000000000000000000005f82015250565b5f613dd9600f83613d95565b9150613de482613da5565b602082019050919050565b5f6020820190508181035f830152613e0681613dcd565b9050919050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613e4b826135cf565b810181811067ffffffffffffffff82111715613e6a57613e69613e15565b5b80604052505050565b5f613e7c613795565b9050613e888282613e42565b919050565b5f67ffffffffffffffff821115613ea757613ea6613e15565b5b613eb0826135cf565b9050602081019050919050565b5f613ecf613eca84613e8d565b613e73565b905082815260208101848484011115613eeb57613eea613e11565b5b613ef68482856135c1565b509392505050565b5f82601f830112613f1257613f11613e0d565b5b8151613f22848260208601613ebd565b91505092915050565b5f60208284031215613f4057613f3f61379e565b5b5f82015167ffffffffffffffff811115613f5d57613f5c6137a2565b5b613f6984828501613efe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fb657607f821691505b602082108103613fc957613fc8613f72565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261402b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ff0565b6140358683613ff0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61407061406b614066846137a6565b61404d565b6137a6565b9050919050565b5f819050919050565b61408983614056565b61409d61409582614077565b848454613ffc565b825550505050565b5f5f905090565b6140b46140a5565b6140bf818484614080565b505050565b5f5b828110156140e5576140da5f8284016140ac565b6001810190506140c6565b505050565b601f82111561413857828211156141375761410481613fcf565b61410d83613fe1565b61411685613fe1565b6020861015614123575f90505b808301614132828403826140c4565b505050505b5b505050565b5f82821c905092915050565b5f6141585f198460080261413d565b1980831691505092915050565b5f6141708383614149565b9150826002028217905092915050565b614189826135a7565b67ffffffffffffffff8111156141a2576141a1613e15565b5b6141ac8254613f9f565b6141b78282856140ea565b5f60209050601f8311600181146141e8575f84156141d6578287015190505b6141e08582614165565b865550614247565b601f1984166141f686613fcf565b5f5b8281101561421d578489015182556001820191506020850194506020810190506141f8565b8683101561423a5784890151614236601f891682614149565b8355505b6001600288020188555050505b505050505050565b5f815461425b81613f9f565b6142658186613d95565b9450600182165f811461427f5760018114614295576142c7565b60ff1983168652811515602002860193506142c7565b61429e85613fcf565b5f5b838110156142bf578154818901526001820191506020810190506142a0565b808801955050505b50505092915050565b5f819050919050565b5f6142f36142ee6142e9846142d0565b61404d565b6137a6565b9050919050565b614303816142d9565b82525050565b5f6040820190508181035f830152614321818561424f565b905061433060208301846142fa565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820190506143775f830188613817565b6143846020830187613817565b818103604083015261439681866134d9565b90506143a56060830185613c67565b6143b26080830184613817565b9695505050505050565b5f67ffffffffffffffff8211156143d6576143d5613e15565b5b602082029050602081019050919050565b5f5ffd5b5f6143fd6143f8846143bc565b613e73565b905080838252602082019050602084028301858111156144205761441f6143e7565b5b835b8181101561444957806144358882613c28565b845260208401935050602081019050614422565b5050509392505050565b5f82601f83011261446757614466613e0d565b5b81516144778482602086016143eb565b91505092915050565b5f602082840312156144955761449461379e565b5b5f82015167ffffffffffffffff8111156144b2576144b16137a2565b5b6144be84828501614453565b91505092915050565b5f819050919050565b6144d9816144c7565b82525050565b5f6040820190506144f25f830185613c67565b6144ff60208301846144d0565b9392505050565b61450f816144c7565b8114614519575f5ffd5b50565b5f8151905061452a81614506565b92915050565b5f602082840312156145455761454461379e565b5b5f6145528482850161451c565b91505092915050565b5f614565826135a7565b61456f8185613d95565b935061457f8185602086016135c1565b614588816135cf565b840191505092915050565b5f6040820190508181035f8301526145ab818561455b565b90506145ba6020830184613817565b9392505050565b5f6020820190508181035f8301526145d9818461455b565b905092915050565b5f81519050919050565b5f81905092915050565b5f6145ff826145e1565b61460981856145eb565b93506146198185602086016135c1565b80840191505092915050565b5f61463082846145f5565b915081905092915050565b5f614645826137a6565b9150614650836137a6565b925082820390508181111561466857614667613d38565b5b92915050565b5f614678826137a6565b9150614683836137a6565b925082820190508082111561469b5761469a613d38565b5b92915050565b5f819050919050565b6146bb6146b6826137a6565b6146a1565b82525050565b5f6146cc82856145f5565b91506146d882846146aa565b6020820191508190509392505050565b5f8160011c9050919050565b5f5f8291508390505b600185111561473d5780860481111561471957614718613d38565b5b60018516156147285780820291505b8081029050614736856146e8565b94506146fd565b94509492505050565b5f826147555760019050614810565b81614762575f9050614810565b81600181146147785760028114614782576147b1565b6001915050614810565b60ff84111561479457614793613d38565b5b8360020a9150848211156147ab576147aa613d38565b5b50614810565b5060208310610133831016604e8410600b84101617156147e65782820a9050838111156147e1576147e0613d38565b5b614810565b6147f384848460016146f4565b9250905081840481111561480a57614809613d38565b5b81810290505b9392505050565b5f614821826137a6565b915061482c836137a6565b92506148597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614746565b905092915050565b5f81905092915050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a205061636b656420736c6f742e2057652063616e2774206669742060208201527f76616c75652067726561746572207468616e2000000000000000000000000000604082015250565b5f6148eb605383614861565b91506148f68261486b565b605382019050919050565b5f61490b826135a7565b6149158185614861565b93506149258185602086016135c1565b80840191505092915050565b5f61493b826148df565b91506149478284614901565b915081905092915050565b5f6060820190506149655f830186613c67565b61497260208301856144d0565b61497f60408301846144d0565b949350505050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a204661696c656420746f2077726974652076616c75652e00000000602082015250565b5f6149e1603c83613d95565b91506149ec82614987565b604082019050919050565b5f6020820190508181035f830152614a0e816149d5565b9050919050565b5f819050919050565b614a2f614a2a82613891565b614a15565b82525050565b5f614a408285614a1e565b600482019150614a5082846145f5565b91508190509392505050565b5f614a66826137a6565b9150614a71836137a6565b9250828202614a7f816137a6565b91508282048414831517614a9657614a95613d38565b5b5092915050565b5f67ffffffffffffffff821115614ab757614ab6613e15565b5b602082029050602081019050919050565b5f614ada614ad584614a9d565b613e73565b90508083825260208201905060208402830185811115614afd57614afc6143e7565b5b835b81811015614b265780614b12888261451c565b845260208401935050602081019050614aff565b5050509392505050565b5f82601f830112614b4457614b43613e0d565b5b8151614b54848260208601614ac8565b91505092915050565b5f5f60408385031215614b7357614b7261379e565b5b5f83015167ffffffffffffffff811115614b9057614b8f6137a2565b5b614b9c85828601614b30565b925050602083015167ffffffffffffffff811115614bbd57614bbc6137a2565b5b614bc985828601614b30565b9150509250929050565b7f73746453746f726167652066696e642853746453746f72616765293a204e6f205f8201527f73746f726167652075736520646574656374656420666f72207461726765742e602082015250565b5f614c2d604083613d95565b9150614c3882614bd3565b604082019050919050565b5f6020820190508181035f830152614c5a81614c21565b9050919050565b5f614c6b826137a6565b91505f8203614c7d57614c7c613d38565b5b600182039050919050565b614c9181613891565b82525050565b5f608082019050614caa5f830187613c67565b614cb76020830186614c88565b614cc460408301856144d0565b614cd16060830184613817565b95945050505050565b7f73746453746f726167652066696e642853746453746f72616765293a20536c6f5f8201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000602082015250565b5f614d34602f83613d95565b9150614d3f82614cda565b604082019050919050565b5f6020820190508181035f830152614d6181614d28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033342e204d696e746564202573206f5553442077697468203120455448202861667465722061747461636b29322e205377617020312c3030302c303030204255534420746f205745544820746f206d616e6970756c61746520746865206f7261636c65a2646970667358221220fdb0e7242204c2f9babb28b0dc8b734985528131e78ceecf2eac4a1dfb98e24064736f6c63430008220033","sourceMap":"147:2299:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:928;;;:::i;:::-;;621:243;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1882:562:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3802:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:928:143;1040:19;1062:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1040:37;;1087:60;;;;;;;;;;;;;;;;;;1135:11;1087;:60::i;:::-;1198:15;1216:17;1198:35;;1243:29;342:42;222:1;1261:10;1243:4;:29::i;:::-;351:42:0;1332:8:143;;;222:1;1332:15;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1357:4;;;;;;;;;;;:13;;;1379:4;1386:10;1357:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1407:29;1422:10;1434:1;1407:14;:29::i;:::-;;1446:70;;;;;;;;;;;;;;;;;;:11;:70::i;:::-;1571:18;1592:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1571:36;;1617:58;;;;;;;;;;;;;;;;;;1664:10;1617:11;:58::i;:::-;1711:4;;;;;;;;;;;:9;;;1728:7;1711:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1748:95;;;;;;;;;;;;;;;;;;1837:5;1807:4;;;;;;;;;;;:14;;;1830:4;1807:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;;;:::i;:::-;1748:11;:95::i;:::-;958:893;;;923:928::o;621:243::-;351:42:0;673:12:143;;;:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;655:15;:49;;;;;;:::i;:::-;;351:42:0;742:19:143;;;762:15;778:8;742:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;424:42;797:6;;:33;;;;;;;;;;;;;;;;;;847:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;840:4;;:17;;;;;;;;;;;;;;;;;;621:243::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;1882:562:143:-;1972:14;2005:4;;;;;;;;;;;:12;;;2026:6;;;;;;;;;;;2035:8;2005:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2055:21;2107:1;2093:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2086:23;;342:42;2119:4;2124:1;2119:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;262:42;2143:4;2148:1;2143:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;2168:21;2192:6;;;;;;;;;;;:31;;;2237:8;2259:12;2285:4;222:1;2322:15;2192:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2168:179;;2427:7;2435:1;2427:10;;;;;;;;:::i;:::-;;;;;;;;2420:17;;;;1882:562;;;;:::o;4465:186:6:-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;3802:147::-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;6966:145:15:-;7033:71;7096:2;7100;7049:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7033:15;:71::i;:::-;6966:145;;:::o;27326:117:3:-;27408:28;27413:5;27420:2;27424:4;27430:5;27408:4;:28::i;:::-;27326:117;;;:::o;6018:121:15:-;6073:59;6128:2;6089:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:15;:59::i;:::-;6018:121;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;27722:837:3:-;27851:20;27875:5;:16;;27915:10;27927:2;27892:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27875:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27848:83;;;27941:15;27970:7;27959:30;;;;;;;;;;;;:::i;:::-;27941:48;;28026:71;28092:4;28026:51;28074:2;28026:38;28053:10;28026:38;;:22;28042:5;28026:8;:15;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:47;;:51;;;;:::i;:::-;:65;;:71;;;;:::i;:::-;28143:6;28139:414;;;28168:23;28195:5;:16;;28235:10;28212:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28195:52;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28165:82;;;28261:14;28289:10;28278:33;;;;;;;;;;;;:::i;:::-;28261:50;;28336:7;28329:4;:14;28325:144;;;28384:4;28374:7;:14;;;;:::i;:::-;28363:26;;;;;:::i;:::-;;;28325:144;;;28446:7;28439:4;:14;;;;:::i;:::-;28428:26;;;;;:::i;:::-;;;28325:144;28482:60;28535:6;28482:38;28509:10;28482:38;;:22;28498:5;28482:8;:15;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:52;;:60;;;;:::i;:::-;28151:402;;28139:414;27807:752;;27722:837;;;;:::o;186:268:15:-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;13403:156:9:-;13479:18;13516:36;13538:4;13544:7;13516:21;:36::i;:::-;13509:43;;13403:156;;;;:::o;13565:143::-;13634:18;13671:30;13690:4;13696;13671:18;:30::i;:::-;13664:37;;13565:143;;;;:::o;13870:152::-;13944:18;13981:34;14005:4;14011:3;13981:23;:34::i;:::-;13974:41;;13870:152;;;;:::o;15091:120::-;15171:33;15185:4;15199:3;15191:12;;15171:13;:33::i;:::-;15091:120;;:::o;6758:156::-;6834:18;6879:7;6864:4;:12;;;:22;;;;;;;;;;;;;;;;;;6903:4;6896:11;;6758:156;;;;:::o;6920:143::-;6989:18;7031:4;7019;:9;;;:16;;;;;;;;;;;;;;;;;;7052:4;7045:11;;6920:143;;;;:::o;7411:179::-;7485:18;7515:4;:10;;7555:3;7539:21;;7531:30;;7515:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7579:4;7572:11;;7411:179;;;;:::o;15556:1502::-;15636:11;15650:4;:12;;;;;;;;;;;;15636:26;;15672:11;15686:4;:9;;;;;;;;;;;;15672:23;;15705:19;15727:4;:11;;;15705:33;;15748:19;15770:34;15799:4;15770:28;:34::i;:::-;15748:56;;15820:4;:10;;:15;15831:3;15820:15;;;;;;;;;;;;;;;:21;15836:4;15820:21;;;;;;;;;;;;;;;;;:71;15869:6;15877:11;15852:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15842:48;;;;;;15820:71;;;;;;;;;;;:77;;;;;;;;;;;;15815:126;;15913:17;15918:4;15924:5;15913:4;:17::i;:::-;;15815:126;15950:21;15974:4;:10;;:15;15985:3;15974:15;;;;;;;;;;;;;;;:21;15990:4;15974:21;;;;;;;;;;;;;;;;;:71;16023:6;16031:11;16006:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15996:48;;;;;;15974:71;;;;;;;;;;;15950:95;;16098:1;16078:4;:16;;;16060:4;:15;;;:34;;;;:::i;:::-;16059:40;16055:469;;;16115:14;16163:4;:16;;;16145:4;:15;;;:34;;;;:::i;:::-;16138:3;:42;;;;:::i;:::-;16132:1;:49;;;;:::i;:::-;16115:66;;16235:6;16228:3;16220:12;;:21;12981:28;12973:37;;16440:11;;;16452:6;16440:19;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16287:194;;;;;;;;:::i;:::-;;;;;;;;;;;;;16195:318;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16101:423;16055:469;16533:14;12981:28;12973:37;;16550:7;;;16558:3;16571:4;:9;;;16563:18;;16550:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16533:49;;16592:16;16611:91;16646:6;16662:3;16654:12;;16668:4;:15;;;16685:4;:16;;;16611:34;:91::i;:::-;16592:110;;12981:28;12973:37;;16713:8;;;16722:3;16735:4;:9;;;16727:18;;16747:8;16713:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16768:12;16782:18;16804:31;16830:4;16804:25;:31::i;:::-;16767:68;;;;16851:7;16850:8;:29;;;;16876:3;16862:10;:17;;16850:29;16846:185;;;12981:28;12973:37;;16895:8;;;16904:3;16917:4;:9;;;16909:18;;16929:6;16895:41;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16950:70;;;;;;;;;;:::i;:::-;;;;;;;;16846:185;17040:11;17046:4;17040:5;:11::i;:::-;15626:1432;;;;;;;;;15556:1502;;:::o;968:236::-;1039:12;1092:1;1067:4;:14;;:21;;;;;:::i;:::-;;;:26;1063:135;;1116:19;1124:4;:10;;1116:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:19::i;:::-;1109:26;;;;1063:135;1173:4;:14;;1166:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;968:236;;;;:::o;13256:141::-;13326:7;13352:33;13372:4;13378:6;13352:19;:33::i;:::-;:38;;;13345:45;;13256:141;;;;:::o;12600:300::-;12753:16;12880:11;12868:8;:23;;12822:41;12839:10;12851:11;12822:16;:41::i;:::-;12821:42;12809:8;12801:17;;:62;12800:92;12792:101;;12785:108;;12600:300;;;;;;:::o;1266:339::-;1334:4;1340:7;1359:15;1394:4;:9;;;;;;;;;;;;1405:19;1419:4;1405:13;:19::i;:::-;1377:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1359:66;;1436:12;1450:17;1471:4;:12;;;;;;;;;;;;:23;;1495:2;1471:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:63;;;;1508:14;1525:38;1540:4;1551;:11;;;1546:2;:16;;;;:::i;:::-;1525:14;:38::i;:::-;1508:55;;1582:7;1591:6;1574:24;;;;;;;;1266:339;;;:::o;14849:92::-;14908:26;14929:4;14908:20;:26::i;:::-;14849:92;:::o;11362:362::-;11421:12;11445:19;11488:2;11477:1;:8;:13;;;;:::i;:::-;11467:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11445:46;;11506:9;11518:1;11506:13;;11501:193;11525:1;:8;11521:1;:12;11501:193;;;11554:9;11566:1;11568;11566:4;;;;;;;;:::i;:::-;;;;;;;;11554:16;;11668:1;11662;11658:2;11654:10;11650:2;11646:19;11638:6;11634:32;11627:43;11609:75;11535:3;;;;;;;11501:193;;;;11711:6;11704:13;;;11362:362;;;:::o;4260:2492::-;4330:16;4358:11;4372:4;:12;;;;;;;;;;;;4358:26;;4394:11;4408:4;:9;;;;;;;;;;;;4394:23;;4427:19;4449:4;:11;;;4427:33;;4470:19;4492;4506:4;4492:13;:19::i;:::-;4470:41;;4562:4;:10;;:15;4573:3;4562:15;;;;;;;;;;;;;;;:21;4578:4;4562:21;;;;;;;;;;;;;;;;;:71;4611:6;4619:11;4594:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4584:48;;;;;;4562:71;;;;;;;;;;;:77;;;;;;;;;;;;4558:255;;;4659:6;4655:56;;;4685:11;4691:4;4685:5;:11::i;:::-;4655:56;4731:4;:10;;:15;4742:3;4731:15;;;;;;;;;;;;;;;:21;4747:4;4731:21;;;;;;;;;;;;;;;;;:71;4780:6;4788:11;4763:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4753:48;;;;;;4731:71;;;;;;;;;;;4724:78;;;;;;;;4558:255;685:28;677:37;;4822:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4846:18;4868:16;4879:4;4868:10;:16::i;:::-;4843:41;;;4895:22;685:28;677:37;;4922:11;;;4942:3;4922:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4894:53;;;4978:1;4962:5;:12;:17;4958:1460;;4995:74;;;;;;;;;;:::i;:::-;;;;;;;;4958:1460;5105:9;5117:5;:12;5105:24;;5100:1308;5138:1;5131:3;;;;:::i;:::-;;;;:8;5100:1308;;5160:12;685:28;677:37;;5175:7;;;5183:3;5188:5;5194:1;5188:8;;;;;;;;:::i;:::-;;;;;;;;5175:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5160:37;;5235:1;5227:10;;5219:4;:18;5215:114;;5266:44;5287:3;5300:5;5306:1;5300:8;;;;;;;;:::i;:::-;;;;;;;;5292:17;;5266:44;;;;;;;:::i;:::-;;;;;;;;5215:114;5352:36;5373:4;5379:5;5385:1;5379:8;;;;;;;;:::i;:::-;;;;;;;;5352:20;:36::i;:::-;5347:92;;5412:8;;;5347:92;5458:18;5478:19;5502:1;5505;5457:50;;;;5530:4;:25;;;;;;;;;;;;5526:256;;;5579:10;5646:27;5658:4;5664:5;5670:1;5664:8;;;;;;;;:::i;:::-;;;;;;;;5646:11;:27::i;:::-;5611:62;;;;;;;;;;;;5700:5;5695:69;;5733:8;;;;;;5695:69;5557:225;5526:256;5894:14;5974:11;5928:41;5945:10;5957:11;5928:16;:41::i;:::-;5920:4;5912:13;;:57;5911:74;;5894:91;;6031:6;6016:10;6008:19;;:29;6004:84;;6061:8;;;;;;6004:84;6111:89;6121:3;6126:4;6159:6;6167:11;6142:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6132:48;;;;;;6190:5;6196:1;6190:8;;;;;;;;:::i;:::-;;;;;;;;6182:17;;6111:89;;;;;;;;;:::i;:::-;;;;;;;;6312:58;;;;;;;;6329:5;6335:1;6329:8;;;;;;;;:::i;:::-;;;;;;;;6321:17;;6312:58;;;;6340:10;6312:58;;;;6352:11;6312:58;;;;6365:4;6312:58;;;;;6218:4;:10;;:15;6229:3;6218:15;;;;;;;;;;;;;;;:21;6234:4;6218:21;;;;;;;;;;;;;;;;;:71;6267:6;6275:11;6250:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6240:48;;;;;;6218:71;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6388:5;;;;;;5100:1308;;;;;6449:4;:10;;:15;6460:3;6449:15;;;;;;;;;;;;;;;:21;6465:4;6449:21;;;;;;;;;;;;;;;;;:71;6498:6;6506:11;6481:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6471:48;;;;;;6449:71;;;;;;;;;;;:77;;;;;;;;;;;;6428:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;6614:6;6610:48;;;6636:11;6642:4;6636:5;:11::i;:::-;6610:48;6674:4;:10;;:15;6685:3;6674:15;;;;;;;;;;;;;;;:21;6690:4;6674:21;;;;;;;;;;;;;;;;;:71;6723:6;6731:11;6706:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6696:48;;;;;;6674:71;;;;;;;;;;;6667:78;;;;;;;;4260:2492;;;;;:::o;12162:376::-;12252:12;12519:1;12515;12501:10;12488:11;12484:28;12479:3;12475:38;12471:46;12467:54;12454:11;12450:72;12442:80;;12162:376;;;;:::o;10879:477::-;10957:7;10976:11;11103;11128:6;11117:1;:8;:17;:41;;11157:1;11117:41;;;11148:6;11137:1;:8;:17;;;;:::i;:::-;11117:41;11103:55;;11178:2;11172:3;:8;11168:47;;;11202:2;11196:8;;11168:47;11229:9;11241:1;11229:13;;11224:106;11248:3;11244:1;:7;11224:106;;;11317:1;11313;:5;;;;:::i;:::-;11303:4;11287:20;;:1;11298;11289:6;:10;;;;:::i;:::-;11287:13;;;;;;;;:::i;:::-;;;;;;;;;;:20;11279:29;;;:40;;11272:47;;;;11253:3;;;;;;;11224:106;;;;11346:3;11339:10;;;;10879:477;;;;:::o;11730:239::-;11796:4;:12;;;11789:19;;;;;;;;;;;11825:4;:9;;;11818:16;;;;;;;;;;;11851:4;:10;;;11844:17;;;;:::i;:::-;11878:4;:11;;11871:18;;;11906:4;:25;;;11899:32;;;;;;;;;;;11948:4;:14;;;11941:21;;;;:::i;:::-;11730:239;:::o;1862:546::-;1949:4;1965:21;685:28;677:37;;1989:7;;;1997:4;:12;;;;;;;;;;;;2011:4;1989:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1965:51;;2027:12;2041:23;2068:16;2079:4;2068:10;:16::i;:::-;2026:58;;;;2095:15;2140:1;2132:10;;2113:15;:29;:65;;2176:1;2168:10;;2113:65;;;754:78;2145:20;;2113:65;2095:83;;685:28;677:37;;2188:8;;;2197:4;:12;;;;;;;;;;;;2211:4;2217:7;2188:37;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:22;2265:16;2276:4;2265:10;:16::i;:::-;2236:45;;;685:28;677:37;;2292:8;;;2301:4;:12;;;;;;;;;;;;2315:4;2321:13;2292:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2354:7;:46;;;;;2385:14;2366:15;:33;;2354:46;2346:55;;;;;;;1862:546;;;;:::o;3091:534::-;3169:4;3175:7;3184;3203:21;685:28;677:37;;3227:7;;;3235:4;:12;;;;;;;;;;;;3249:4;3227:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3203:51;;3266:14;3282:18;3304:28;3315:4;3321;3327;3304:10;:28::i;:::-;3265:67;;;;3343:15;3360:19;3383:29;3394:4;3400;3406:5;3383:10;:29::i;:::-;3342:70;;;;685:28;677:37;;3508:8;;;3517:4;:12;;;;;;;;;;;;3531:4;3537:13;3508:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3569:9;:23;;;;;3582:10;3569:23;3594:10;3606:11;3561:57;;;;;;;;;;;3091:534;;;;;:::o;2571:514::-;2659:4;2665:7;2689:14;2706:1;2689:18;;2684:368;2718:3;2709:6;:12;2684:368;;;2747:18;2768:4;:44;;2805:6;2800:1;:11;;2768:44;;;2788:6;2782:3;:12;;;;:::i;:::-;2776:1;:19;;2768:44;2747:65;;685:28;677:37;;2826:8;;;2835:4;:12;;;;;;;;;;;;2849:4;2863:10;2855:19;;2826:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2891:12;2905;2921:16;2932:4;2921:10;:16::i;:::-;2890:47;;;;2956:7;:30;;;;;2984:1;2976:4;2968:13;;:17;2956:30;2952:90;;;3014:4;3020:6;3006:21;;;;;;;;;;2952:90;2733:319;;;2723:8;;;;;;;2684:368;;;;3069:5;3076:1;3061:17;;;;2571:514;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:75::-;8451:6;8484:2;8478:9;8468:19;;8418:75;:::o;8499:117::-;8608:1;8605;8598:12;8622:117;8731:1;8728;8721:12;8745:77;8782:7;8811:5;8800:16;;8745:77;;;:::o;8828:122::-;8901:24;8919:5;8901:24;:::i;:::-;8894:5;8891:35;8881:63;;8940:1;8937;8930:12;8881:63;8828:122;:::o;8956:139::-;9002:5;9040:6;9027:20;9018:29;;9056:33;9083:5;9056:33;:::i;:::-;8956:139;;;;:::o;9101:474::-;9169:6;9177;9226:2;9214:9;9205:7;9201:23;9197:32;9194:119;;;9232:79;;:::i;:::-;9194:119;9352:1;9377:53;9422:7;9413:6;9402:9;9398:22;9377:53;:::i;:::-;9367:63;;9323:117;9479:2;9505:53;9550:7;9541:6;9530:9;9526:22;9505:53;:::i;:::-;9495:63;;9450:118;9101:474;;;;;:::o;9581:118::-;9668:24;9686:5;9668:24;:::i;:::-;9663:3;9656:37;9581:118;;:::o;9705:222::-;9798:4;9836:2;9825:9;9821:18;9813:26;;9849:71;9917:1;9906:9;9902:17;9893:6;9849:71;:::i;:::-;9705:222;;;;:::o;9933:152::-;10038:6;10072:5;10066:12;10056:22;;9933:152;;;:::o;10091:222::-;10228:11;10262:6;10257:3;10250:19;10302:4;10297:3;10293:14;10278:29;;10091:222;;;;:::o;10319:170::-;10424:4;10447:3;10439:11;;10477:4;10472:3;10468:14;10460:22;;10319:170;;;:::o;10495:113::-;10561:6;10595:5;10589:12;10579:22;;10495:113;;;:::o;10614:173::-;10702:11;10736:6;10731:3;10724:19;10776:4;10771:3;10767:14;10752:29;;10614:173;;;;:::o;10793:131::-;10859:4;10882:3;10874:11;;10912:4;10907:3;10903:14;10895:22;;10793:131;;;:::o;10930:149::-;10966:7;11006:66;10999:5;10995:78;10984:89;;10930:149;;;:::o;11085:105::-;11160:23;11177:5;11160:23;:::i;:::-;11155:3;11148:36;11085:105;;:::o;11196:175::-;11263:10;11284:44;11324:3;11316:6;11284:44;:::i;:::-;11360:4;11355:3;11351:14;11337:28;;11196:175;;;;:::o;11377:112::-;11446:4;11478;11473:3;11469:14;11461:22;;11377:112;;;:::o;11523:704::-;11630:3;11659:53;11706:5;11659:53;:::i;:::-;11728:75;11796:6;11791:3;11728:75;:::i;:::-;11721:82;;11827:55;11876:5;11827:55;:::i;:::-;11905:7;11936:1;11921:281;11946:6;11943:1;11940:13;11921:281;;;12022:6;12016:13;12049:61;12106:3;12091:13;12049:61;:::i;:::-;12042:68;;12133:59;12185:6;12133:59;:::i;:::-;12123:69;;11981:221;11968:1;11965;11961:9;11956:14;;11921:281;;;11925:14;12218:3;12211:10;;11635:592;;;11523:704;;;;:::o;12325:730::-;12460:3;12496:4;12491:3;12487:14;12587:4;12580:5;12576:16;12570:23;12640:3;12634:4;12630:14;12623:4;12618:3;12614:14;12607:38;12666:73;12734:4;12720:12;12666:73;:::i;:::-;12658:81;;12511:239;12837:4;12830:5;12826:16;12820:23;12890:3;12884:4;12880:14;12873:4;12868:3;12864:14;12857:38;12916:101;13012:4;12998:12;12916:101;:::i;:::-;12908:109;;12760:268;13045:4;13038:11;;12465:590;12325:730;;;;:::o;13061:308::-;13206:10;13241:122;13359:3;13351:6;13241:122;:::i;:::-;13227:136;;13061:308;;;;:::o;13375:151::-;13483:4;13515;13510:3;13506:14;13498:22;;13375:151;;;:::o;13628:1215::-;13823:3;13852:92;13938:5;13852:92;:::i;:::-;13960:124;14077:6;14072:3;13960:124;:::i;:::-;13953:131;;14110:3;14155:4;14147:6;14143:17;14138:3;14134:27;14185:94;14273:5;14185:94;:::i;:::-;14302:7;14333:1;14318:480;14343:6;14340:1;14337:13;14318:480;;;14414:9;14408:4;14404:20;14399:3;14392:33;14465:6;14459:13;14493:140;14628:4;14613:13;14493:140;:::i;:::-;14485:148;;14656:98;14747:6;14656:98;:::i;:::-;14646:108;;14783:4;14778:3;14774:14;14767:21;;14378:420;14365:1;14362;14358:9;14353:14;;14318:480;;;14322:14;14814:4;14807:11;;14834:3;14827:10;;13828:1015;;;;;13628:1215;;;;:::o;14849:525::-;15068:4;15106:2;15095:9;15091:18;15083:26;;15155:9;15149:4;15145:20;15141:1;15130:9;15126:17;15119:47;15183:184;15362:4;15353:6;15183:184;:::i;:::-;15175:192;;14849:525;;;;:::o;15380:194::-;15489:11;15523:6;15518:3;15511:19;15563:4;15558:3;15554:14;15539:29;;15380:194;;;;:::o;15608:991::-;15747:3;15776:64;15834:5;15776:64;:::i;:::-;15856:96;15945:6;15940:3;15856:96;:::i;:::-;15849:103;;15978:3;16023:4;16015:6;16011:17;16006:3;16002:27;16053:66;16113:5;16053:66;:::i;:::-;16142:7;16173:1;16158:396;16183:6;16180:1;16177:13;16158:396;;;16254:9;16248:4;16244:20;16239:3;16232:33;16305:6;16299:13;16333:84;16412:4;16397:13;16333:84;:::i;:::-;16325:92;;16440:70;16503:6;16440:70;:::i;:::-;16430:80;;16539:4;16534:3;16530:14;16523:21;;16218:336;16205:1;16202;16198:9;16193:14;;16158:396;;;16162:14;16570:4;16563:11;;16590:3;16583:10;;15752:847;;;;;15608:991;;;;:::o;16605:413::-;16768:4;16806:2;16795:9;16791:18;16783:26;;16855:9;16849:4;16845:20;16841:1;16830:9;16826:17;16819:47;16883:128;17006:4;16997:6;16883:128;:::i;:::-;16875:136;;16605:413;;;;:::o;17024:144::-;17121:6;17155:5;17149:12;17139:22;;17024:144;;;:::o;17174:214::-;17303:11;17337:6;17332:3;17325:19;17377:4;17372:3;17368:14;17353:29;;17174:214;;;;:::o;17394:162::-;17491:4;17514:3;17506:11;;17544:4;17539:3;17535:14;17527:22;;17394:162;;;:::o;17638:639::-;17757:3;17793:4;17788:3;17784:14;17880:4;17873:5;17869:16;17863:23;17899:63;17956:4;17951:3;17947:14;17933:12;17899:63;:::i;:::-;17808:164;18059:4;18052:5;18048:16;18042:23;18112:3;18106:4;18102:14;18095:4;18090:3;18086:14;18079:38;18138:101;18234:4;18220:12;18138:101;:::i;:::-;18130:109;;17982:268;18267:4;18260:11;;17762:515;17638:639;;;;:::o;18283:276::-;18412:10;18447:106;18549:3;18541:6;18447:106;:::i;:::-;18433:120;;18283:276;;;;:::o;18565:143::-;18665:4;18697;18692:3;18688:14;18680:22;;18565:143;;;:::o;18794:1151::-;18973:3;19002:84;19080:5;19002:84;:::i;:::-;19102:116;19211:6;19206:3;19102:116;:::i;:::-;19095:123;;19244:3;19289:4;19281:6;19277:17;19272:3;19268:27;19319:86;19399:5;19319:86;:::i;:::-;19428:7;19459:1;19444:456;19469:6;19466:1;19463:13;19444:456;;;19540:9;19534:4;19530:20;19525:3;19518:33;19591:6;19585:13;19619:124;19738:4;19723:13;19619:124;:::i;:::-;19611:132;;19766:90;19849:6;19766:90;:::i;:::-;19756:100;;19885:4;19880:3;19876:14;19869:21;;19504:396;19491:1;19488;19484:9;19479:14;;19444:456;;;19448:14;19916:4;19909:11;;19936:3;19929:10;;18978:967;;;;;18794:1151;;;;:::o;19951:493::-;20154:4;20192:2;20181:9;20177:18;20169:26;;20241:9;20235:4;20231:20;20227:1;20216:9;20212:17;20205:47;20269:168;20432:4;20423:6;20269:168;:::i;:::-;20261:176;;19951:493;;;;:::o;20450:90::-;20484:7;20527:5;20520:13;20513:21;20502:32;;20450:90;;;:::o;20546:109::-;20627:21;20642:5;20627:21;:::i;:::-;20622:3;20615:34;20546:109;;:::o;20661:210::-;20748:4;20786:2;20775:9;20771:18;20763:26;;20799:65;20861:1;20850:9;20846:17;20837:6;20799:65;:::i;:::-;20661:210;;;;:::o;20877:143::-;20934:5;20965:6;20959:13;20950:22;;20981:33;21008:5;20981:33;:::i;:::-;20877:143;;;;:::o;21026:351::-;21096:6;21145:2;21133:9;21124:7;21120:23;21116:32;21113:119;;;21151:79;;:::i;:::-;21113:119;21271:1;21296:64;21352:7;21343:6;21332:9;21328:22;21296:64;:::i;:::-;21286:74;;21242:128;21026:351;;;;:::o;21383:118::-;21470:24;21488:5;21470:24;:::i;:::-;21465:3;21458:37;21383:118;;:::o;21507:222::-;21600:4;21638:2;21627:9;21623:18;21615:26;;21651:71;21719:1;21708:9;21704:17;21695:6;21651:71;:::i;:::-;21507:222;;;;:::o;21735:332::-;21856:4;21894:2;21883:9;21879:18;21871:26;;21907:71;21975:1;21964:9;21960:17;21951:6;21907:71;:::i;:::-;21988:72;22056:2;22045:9;22041:18;22032:6;21988:72;:::i;:::-;21735:332;;;;;:::o;22073:116::-;22143:21;22158:5;22143:21;:::i;:::-;22136:5;22133:32;22123:60;;22179:1;22176;22169:12;22123:60;22073:116;:::o;22195:137::-;22249:5;22280:6;22274:13;22265:22;;22296:30;22320:5;22296:30;:::i;:::-;22195:137;;;;:::o;22338:345::-;22405:6;22454:2;22442:9;22433:7;22429:23;22425:32;22422:119;;;22460:79;;:::i;:::-;22422:119;22580:1;22605:61;22658:7;22649:6;22638:9;22634:22;22605:61;:::i;:::-;22595:71;;22551:125;22338:345;;;;:::o;22689:180::-;22737:77;22734:1;22727:88;22834:4;22831:1;22824:15;22858:4;22855:1;22848:15;22875:180;22923:77;22920:1;22913:88;23020:4;23017:1;23010:15;23044:4;23041:1;23034:15;23061:185;23101:1;23118:20;23136:1;23118:20;:::i;:::-;23113:25;;23152:20;23170:1;23152:20;:::i;:::-;23147:25;;23191:1;23181:35;;23196:18;;:::i;:::-;23181:35;23238:1;23235;23231:9;23226:14;;23061:185;;;;:::o;23252:169::-;23336:11;23370:6;23365:3;23358:19;23410:4;23405:3;23401:14;23386:29;;23252:169;;;;:::o;23427:165::-;23567:17;23563:1;23555:6;23551:14;23544:41;23427:165;:::o;23598:366::-;23740:3;23761:67;23825:2;23820:3;23761:67;:::i;:::-;23754:74;;23837:93;23926:3;23837:93;:::i;:::-;23955:2;23950:3;23946:12;23939:19;;23598:366;;;:::o;23970:419::-;24136:4;24174:2;24163:9;24159:18;24151:26;;24223:9;24217:4;24213:20;24209:1;24198:9;24194:17;24187:47;24251:131;24377:4;24251:131;:::i;:::-;24243:139;;23970:419;;;:::o;24395:117::-;24504:1;24501;24494:12;24518:117;24627:1;24624;24617:12;24641:180;24689:77;24686:1;24679:88;24786:4;24783:1;24776:15;24810:4;24807:1;24800:15;24827:281;24910:27;24932:4;24910:27;:::i;:::-;24902:6;24898:40;25040:6;25028:10;25025:22;25004:18;24992:10;24989:34;24986:62;24983:88;;;25051:18;;:::i;:::-;24983:88;25091:10;25087:2;25080:22;24870:238;24827:281;;:::o;25114:129::-;25148:6;25175:20;;:::i;:::-;25165:30;;25204:33;25232:4;25224:6;25204:33;:::i;:::-;25114:129;;;:::o;25249:308::-;25311:4;25401:18;25393:6;25390:30;25387:56;;;25423:18;;:::i;:::-;25387:56;25461:29;25483:6;25461:29;:::i;:::-;25453:37;;25545:4;25539;25535:15;25527:23;;25249:308;;;:::o;25563:434::-;25652:5;25677:66;25693:49;25735:6;25693:49;:::i;:::-;25677:66;:::i;:::-;25668:75;;25766:6;25759:5;25752:21;25804:4;25797:5;25793:16;25842:3;25833:6;25828:3;25824:16;25821:25;25818:112;;;25849:79;;:::i;:::-;25818:112;25939:52;25984:6;25979:3;25974;25939:52;:::i;:::-;25658:339;25563:434;;;;;:::o;26017:355::-;26084:5;26133:3;26126:4;26118:6;26114:17;26110:27;26100:122;;26141:79;;:::i;:::-;26100:122;26251:6;26245:13;26276:90;26362:3;26354:6;26347:4;26339:6;26335:17;26276:90;:::i;:::-;26267:99;;26090:282;26017:355;;;;:::o;26378:524::-;26458:6;26507:2;26495:9;26486:7;26482:23;26478:32;26475:119;;;26513:79;;:::i;:::-;26475:119;26654:1;26643:9;26639:17;26633:24;26684:18;26676:6;26673:30;26670:117;;;26706:79;;:::i;:::-;26670:117;26811:74;26877:7;26868:6;26857:9;26853:22;26811:74;:::i;:::-;26801:84;;26604:291;26378:524;;;;:::o;26908:180::-;26956:77;26953:1;26946:88;27053:4;27050:1;27043:15;27077:4;27074:1;27067:15;27094:320;27138:6;27175:1;27169:4;27165:12;27155:22;;27222:1;27216:4;27212:12;27243:18;27233:81;;27299:4;27291:6;27287:17;27277:27;;27233:81;27361:2;27353:6;27350:14;27330:18;27327:38;27324:84;;27380:18;;:::i;:::-;27324:84;27145:269;27094:320;;;:::o;27420:141::-;27469:4;27492:3;27484:11;;27515:3;27512:1;27505:14;27549:4;27546:1;27536:18;27528:26;;27420:141;;;:::o;27567:93::-;27604:6;27651:2;27646;27639:5;27635:14;27631:23;27621:33;;27567:93;;;:::o;27666:107::-;27710:8;27760:5;27754:4;27750:16;27729:37;;27666:107;;;;:::o;27779:393::-;27848:6;27898:1;27886:10;27882:18;27921:97;27951:66;27940:9;27921:97;:::i;:::-;28039:39;28069:8;28058:9;28039:39;:::i;:::-;28027:51;;28111:4;28107:9;28100:5;28096:21;28087:30;;28160:4;28150:8;28146:19;28139:5;28136:30;28126:40;;27855:317;;27779:393;;;;;:::o;28178:60::-;28206:3;28227:5;28220:12;;28178:60;;;:::o;28244:142::-;28294:9;28327:53;28345:34;28354:24;28372:5;28354:24;:::i;:::-;28345:34;:::i;:::-;28327:53;:::i;:::-;28314:66;;28244:142;;;:::o;28392:75::-;28435:3;28456:5;28449:12;;28392:75;;;:::o;28473:269::-;28583:39;28614:7;28583:39;:::i;:::-;28644:91;28693:41;28717:16;28693:41;:::i;:::-;28685:6;28678:4;28672:11;28644:91;:::i;:::-;28638:4;28631:105;28549:193;28473:269;;;:::o;28748:73::-;28793:3;28814:1;28807:8;;28748:73;:::o;28827:189::-;28904:32;;:::i;:::-;28945:65;29003:6;28995;28989:4;28945:65;:::i;:::-;28880:136;28827:189;;:::o;29022:214::-;29107:1;29092:138;29117:9;29114:1;29111:16;29092:138;;;29169:51;29218:1;29214;29203:9;29199:17;29169:51;:::i;:::-;29142:1;29139;29135:9;29130:14;;29092:138;;;29096:14;29022:214;;:::o;29242:746::-;29343:2;29338:3;29335:11;29332:649;;;29372:10;29367:3;29364:19;29361:610;;;29418:38;29450:5;29418:38;:::i;:::-;29493:22;29511:3;29493:22;:::i;:::-;29552:29;29570:10;29552:29;:::i;:::-;29742:2;29730:10;29727:18;29724:79;;;29784:1;29768:17;;29724:79;29853:12;29843:8;29839:27;29883:74;29943:12;29929;29925:31;29912:11;29883:74;:::i;:::-;29384:587;;;;29361:610;29332:649;29242:746;;;:::o;29994:117::-;30048:8;30098:5;30092:4;30088:16;30067:37;;29994:117;;;;:::o;30117:169::-;30161:6;30194:51;30242:1;30238:6;30230:5;30227:1;30223:13;30194:51;:::i;:::-;30190:56;30275:4;30269;30265:15;30255:25;;30168:118;30117:169;;;;:::o;30291:295::-;30367:4;30513:29;30538:3;30532:4;30513:29;:::i;:::-;30505:37;;30575:3;30572:1;30568:11;30562:4;30559:21;30551:29;;30291:295;;;;:::o;30591:1395::-;30708:37;30741:3;30708:37;:::i;:::-;30810:18;30802:6;30799:30;30796:56;;;30832:18;;:::i;:::-;30796:56;30876:38;30908:4;30902:11;30876:38;:::i;:::-;30961:67;31021:6;31013;31007:4;30961:67;:::i;:::-;31055:1;31079:4;31066:17;;31111:2;31103:6;31100:14;31128:1;31123:618;;;;31785:1;31802:6;31799:77;;;31851:9;31846:3;31842:19;31836:26;31827:35;;31799:77;31902:67;31962:6;31955:5;31902:67;:::i;:::-;31896:4;31889:81;31758:222;31093:887;;31123:618;31175:4;31171:9;31163:6;31159:22;31209:37;31241:4;31209:37;:::i;:::-;31268:1;31282:208;31296:7;31293:1;31290:14;31282:208;;;31375:9;31370:3;31366:19;31360:26;31352:6;31345:42;31426:1;31418:6;31414:14;31404:24;;31473:2;31462:9;31458:18;31445:31;;31319:4;31316:1;31312:12;31307:17;;31282:208;;;31518:6;31509:7;31506:19;31503:179;;;31576:9;31571:3;31567:19;31561:26;31619:48;31661:4;31653:6;31649:17;31638:9;31619:48;:::i;:::-;31611:6;31604:64;31526:156;31503:179;31728:1;31724;31716:6;31712:14;31708:22;31702:4;31695:36;31130:611;;;31093:887;;30683:1303;;;30591:1395;;:::o;32016:831::-;32101:3;32138:5;32132:12;32167:36;32193:9;32167:36;:::i;:::-;32219:71;32283:6;32278:3;32219:71;:::i;:::-;32212:78;;32321:1;32310:9;32306:17;32337:1;32332:164;;;;32510:1;32505:336;;;;32299:542;;32332:164;32416:4;32412:9;32401;32397:25;32392:3;32385:38;32476:6;32469:14;32462:22;32456:4;32452:33;32447:3;32443:43;32436:50;;32332:164;;32505:336;32572:38;32604:5;32572:38;:::i;:::-;32632:1;32646:154;32660:6;32657:1;32654:13;32646:154;;;32734:7;32728:14;32724:1;32719:3;32715:11;32708:35;32784:1;32775:7;32771:15;32760:26;;32682:4;32679:1;32675:12;32670:17;;32646:154;;;32829:1;32824:3;32820:11;32813:18;;32512:329;;32299:542;;32105:742;;32016:831;;;;:::o;32853:92::-;32905:7;32934:5;32923:16;;32853:92;;;:::o;32951:172::-;33016:9;33049:68;33067:49;33076:39;33109:5;33076:39;:::i;:::-;33067:49;:::i;:::-;33049:68;:::i;:::-;33036:81;;32951:172;;;:::o;33129:161::-;33231:52;33277:5;33231:52;:::i;:::-;33226:3;33219:65;33129:161;;:::o;33296:447::-;33449:4;33487:2;33476:9;33472:18;33464:26;;33536:9;33530:4;33526:20;33522:1;33511:9;33507:17;33500:47;33564:75;33634:4;33625:6;33564:75;:::i;:::-;33556:83;;33649:87;33732:2;33721:9;33717:18;33708:6;33649:87;:::i;:::-;33296:447;;;;;:::o;33749:180::-;33797:77;33794:1;33787:88;33894:4;33891:1;33884:15;33918:4;33915:1;33908:15;33935:815;34190:4;34228:3;34217:9;34213:19;34205:27;;34242:71;34310:1;34299:9;34295:17;34286:6;34242:71;:::i;:::-;34323:72;34391:2;34380:9;34376:18;34367:6;34323:72;:::i;:::-;34442:9;34436:4;34432:20;34427:2;34416:9;34412:18;34405:48;34470:108;34573:4;34564:6;34470:108;:::i;:::-;34462:116;;34588:72;34656:2;34645:9;34641:18;34632:6;34588:72;:::i;:::-;34670:73;34738:3;34727:9;34723:19;34714:6;34670:73;:::i;:::-;33935:815;;;;;;;;:::o;34756:311::-;34833:4;34923:18;34915:6;34912:30;34909:56;;;34945:18;;:::i;:::-;34909:56;34995:4;34987:6;34983:17;34975:25;;35055:4;35049;35045:15;35037:23;;34756:311;;;:::o;35073:117::-;35182:1;35179;35172:12;35213:732;35320:5;35345:81;35361:64;35418:6;35361:64;:::i;:::-;35345:81;:::i;:::-;35336:90;;35446:5;35475:6;35468:5;35461:21;35509:4;35502:5;35498:16;35491:23;;35562:4;35554:6;35550:17;35542:6;35538:30;35591:3;35583:6;35580:15;35577:122;;;35610:79;;:::i;:::-;35577:122;35725:6;35708:231;35742:6;35737:3;35734:15;35708:231;;;35817:3;35846:48;35890:3;35878:10;35846:48;:::i;:::-;35841:3;35834:61;35924:4;35919:3;35915:14;35908:21;;35784:155;35768:4;35763:3;35759:14;35752:21;;35708:231;;;35712:21;35326:619;;35213:732;;;;;:::o;35968:385::-;36050:5;36099:3;36092:4;36084:6;36080:17;36076:27;36066:122;;36107:79;;:::i;:::-;36066:122;36217:6;36211:13;36242:105;36343:3;36335:6;36328:4;36320:6;36316:17;36242:105;:::i;:::-;36233:114;;36056:297;35968:385;;;;:::o;36359:554::-;36454:6;36503:2;36491:9;36482:7;36478:23;36474:32;36471:119;;;36509:79;;:::i;:::-;36471:119;36650:1;36639:9;36635:17;36629:24;36680:18;36672:6;36669:30;36666:117;;;36702:79;;:::i;:::-;36666:117;36807:89;36888:7;36879:6;36868:9;36864:22;36807:89;:::i;:::-;36797:99;;36600:306;36359:554;;;;:::o;36919:77::-;36956:7;36985:5;36974:16;;36919:77;;;:::o;37002:118::-;37089:24;37107:5;37089:24;:::i;:::-;37084:3;37077:37;37002:118;;:::o;37126:332::-;37247:4;37285:2;37274:9;37270:18;37262:26;;37298:71;37366:1;37355:9;37351:17;37342:6;37298:71;:::i;:::-;37379:72;37447:2;37436:9;37432:18;37423:6;37379:72;:::i;:::-;37126:332;;;;;:::o;37464:122::-;37537:24;37555:5;37537:24;:::i;:::-;37530:5;37527:35;37517:63;;37576:1;37573;37566:12;37517:63;37464:122;:::o;37592:143::-;37649:5;37680:6;37674:13;37665:22;;37696:33;37723:5;37696:33;:::i;:::-;37592:143;;;;:::o;37741:351::-;37811:6;37860:2;37848:9;37839:7;37835:23;37831:32;37828:119;;;37866:79;;:::i;:::-;37828:119;37986:1;38011:64;38067:7;38058:6;38047:9;38043:22;38011:64;:::i;:::-;38001:74;;37957:128;37741:351;;;;:::o;38098:377::-;38186:3;38214:39;38247:5;38214:39;:::i;:::-;38269:71;38333:6;38328:3;38269:71;:::i;:::-;38262:78;;38349:65;38407:6;38402:3;38395:4;38388:5;38384:16;38349:65;:::i;:::-;38439:29;38461:6;38439:29;:::i;:::-;38434:3;38430:39;38423:46;;38190:285;38098:377;;;;:::o;38481:423::-;38622:4;38660:2;38649:9;38645:18;38637:26;;38709:9;38703:4;38699:20;38695:1;38684:9;38680:17;38673:47;38737:78;38810:4;38801:6;38737:78;:::i;:::-;38729:86;;38825:72;38893:2;38882:9;38878:18;38869:6;38825:72;:::i;:::-;38481:423;;;;;:::o;38910:313::-;39023:4;39061:2;39050:9;39046:18;39038:26;;39110:9;39104:4;39100:20;39096:1;39085:9;39081:17;39074:47;39138:78;39211:4;39202:6;39138:78;:::i;:::-;39130:86;;38910:313;;;;:::o;39229:98::-;39280:6;39314:5;39308:12;39298:22;;39229:98;;;:::o;39333:147::-;39434:11;39471:3;39456:18;;39333:147;;;;:::o;39486:386::-;39590:3;39618:38;39650:5;39618:38;:::i;:::-;39672:88;39753:6;39748:3;39672:88;:::i;:::-;39665:95;;39769:65;39827:6;39822:3;39815:4;39808:5;39804:16;39769:65;:::i;:::-;39859:6;39854:3;39850:16;39843:23;;39594:278;39486:386;;;;:::o;39878:271::-;40008:3;40030:93;40119:3;40110:6;40030:93;:::i;:::-;40023:100;;40140:3;40133:10;;39878:271;;;;:::o;40155:194::-;40195:4;40215:20;40233:1;40215:20;:::i;:::-;40210:25;;40249:20;40267:1;40249:20;:::i;:::-;40244:25;;40293:1;40290;40286:9;40278:17;;40317:1;40311:4;40308:11;40305:37;;;40322:18;;:::i;:::-;40305:37;40155:194;;;;:::o;40355:191::-;40395:3;40414:20;40432:1;40414:20;:::i;:::-;40409:25;;40448:20;40466:1;40448:20;:::i;:::-;40443:25;;40491:1;40488;40484:9;40477:16;;40512:3;40509:1;40506:10;40503:36;;;40519:18;;:::i;:::-;40503:36;40355:191;;;;:::o;40552:79::-;40591:7;40620:5;40609:16;;40552:79;;;:::o;40637:157::-;40742:45;40762:24;40780:5;40762:24;:::i;:::-;40742:45;:::i;:::-;40737:3;40730:58;40637:157;;:::o;40800:412::-;40958:3;40980:93;41069:3;41060:6;40980:93;:::i;:::-;40973:100;;41083:75;41154:3;41145:6;41083:75;:::i;:::-;41183:2;41178:3;41174:12;41167:19;;41203:3;41196:10;;40800:412;;;;;:::o;41218:102::-;41260:8;41307:5;41304:1;41300:13;41279:34;;41218:102;;;:::o;41326:848::-;41387:5;41394:4;41418:6;41409:15;;41442:5;41433:14;;41456:712;41477:1;41467:8;41464:15;41456:712;;;41572:4;41567:3;41563:14;41557:4;41554:24;41551:50;;;41581:18;;:::i;:::-;41551:50;41631:1;41621:8;41617:16;41614:451;;;42046:4;42039:5;42035:16;42026:25;;41614:451;42096:4;42090;42086:15;42078:23;;42126:32;42149:8;42126:32;:::i;:::-;42114:44;;41456:712;;;41326:848;;;;;;;:::o;42180:1073::-;42234:5;42425:8;42415:40;;42446:1;42437:10;;42448:5;;42415:40;42474:4;42464:36;;42491:1;42482:10;;42493:5;;42464:36;42560:4;42608:1;42603:27;;;;42644:1;42639:191;;;;42553:277;;42603:27;42621:1;42612:10;;42623:5;;;42639:191;42684:3;42674:8;42671:17;42668:43;;;42691:18;;:::i;:::-;42668:43;42740:8;42737:1;42733:16;42724:25;;42775:3;42768:5;42765:14;42762:40;;;42782:18;;:::i;:::-;42762:40;42815:5;;;42553:277;;42939:2;42929:8;42926:16;42920:3;42914:4;42911:13;42907:36;42889:2;42879:8;42876:16;42871:2;42865:4;42862:12;42858:35;42842:111;42839:246;;;42995:8;42989:4;42985:19;42976:28;;43030:3;43023:5;43020:14;43017:40;;;43037:18;;:::i;:::-;43017:40;43070:5;;42839:246;43110:42;43148:3;43138:8;43132:4;43129:1;43110:42;:::i;:::-;43095:57;;;;43184:4;43179:3;43175:14;43168:5;43165:25;43162:51;;;43193:18;;:::i;:::-;43162:51;43242:4;43235:5;43231:16;43222:25;;42180:1073;;;;;;:::o;43259:285::-;43319:5;43343:23;43361:4;43343:23;:::i;:::-;43335:31;;43387:27;43405:8;43387:27;:::i;:::-;43375:39;;43433:104;43470:66;43460:8;43454:4;43433:104;:::i;:::-;43424:113;;43259:285;;;;:::o;43550:148::-;43652:11;43689:3;43674:18;;43550:148;;;;:::o;43704:307::-;43844:34;43840:1;43832:6;43828:14;43821:58;43913:34;43908:2;43900:6;43896:15;43889:59;43982:21;43977:2;43969:6;43965:15;43958:46;43704:307;:::o;44017:402::-;44177:3;44198:85;44280:2;44275:3;44198:85;:::i;:::-;44191:92;;44292:93;44381:3;44292:93;:::i;:::-;44410:2;44405:3;44401:12;44394:19;;44017:402;;;:::o;44425:390::-;44531:3;44559:39;44592:5;44559:39;:::i;:::-;44614:89;44696:6;44691:3;44614:89;:::i;:::-;44607:96;;44712:65;44770:6;44765:3;44758:4;44751:5;44747:16;44712:65;:::i;:::-;44802:6;44797:3;44793:16;44786:23;;44535:280;44425:390;;;;:::o;44821:541::-;45054:3;45076:148;45220:3;45076:148;:::i;:::-;45069:155;;45241:95;45332:3;45323:6;45241:95;:::i;:::-;45234:102;;45353:3;45346:10;;44821:541;;;;:::o;45368:442::-;45517:4;45555:2;45544:9;45540:18;45532:26;;45568:71;45636:1;45625:9;45621:17;45612:6;45568:71;:::i;:::-;45649:72;45717:2;45706:9;45702:18;45693:6;45649:72;:::i;:::-;45731;45799:2;45788:9;45784:18;45775:6;45731:72;:::i;:::-;45368:442;;;;;;:::o;45816:247::-;45956:34;45952:1;45944:6;45940:14;45933:58;46025:30;46020:2;46012:6;46008:15;46001:55;45816:247;:::o;46069:366::-;46211:3;46232:67;46296:2;46291:3;46232:67;:::i;:::-;46225:74;;46308:93;46397:3;46308:93;:::i;:::-;46426:2;46421:3;46417:12;46410:19;;46069:366;;;:::o;46441:419::-;46607:4;46645:2;46634:9;46630:18;46622:26;;46694:9;46688:4;46684:20;46680:1;46669:9;46665:17;46658:47;46722:131;46848:4;46722:131;:::i;:::-;46714:139;;46441:419;;;:::o;46866:78::-;46904:7;46933:5;46922:16;;46866:78;;;:::o;46950:153::-;47053:43;47072:23;47089:5;47072:23;:::i;:::-;47053:43;:::i;:::-;47048:3;47041:56;46950:153;;:::o;47109:407::-;47265:3;47280:73;47349:3;47340:6;47280:73;:::i;:::-;47378:1;47373:3;47369:11;47362:18;;47397:93;47486:3;47477:6;47397:93;:::i;:::-;47390:100;;47507:3;47500:10;;47109:407;;;;;:::o;47522:410::-;47562:7;47585:20;47603:1;47585:20;:::i;:::-;47580:25;;47619:20;47637:1;47619:20;:::i;:::-;47614:25;;47674:1;47671;47667:9;47696:30;47714:11;47696:30;:::i;:::-;47685:41;;47875:1;47866:7;47862:15;47859:1;47856:22;47836:1;47829:9;47809:83;47786:139;;47905:18;;:::i;:::-;47786:139;47570:362;47522:410;;;;:::o;47938:311::-;48015:4;48105:18;48097:6;48094:30;48091:56;;;48127:18;;:::i;:::-;48091:56;48177:4;48169:6;48165:17;48157:25;;48237:4;48231;48227:15;48219:23;;47938:311;;;:::o;48272:732::-;48379:5;48404:81;48420:64;48477:6;48420:64;:::i;:::-;48404:81;:::i;:::-;48395:90;;48505:5;48534:6;48527:5;48520:21;48568:4;48561:5;48557:16;48550:23;;48621:4;48613:6;48609:17;48601:6;48597:30;48650:3;48642:6;48639:15;48636:122;;;48669:79;;:::i;:::-;48636:122;48784:6;48767:231;48801:6;48796:3;48793:15;48767:231;;;48876:3;48905:48;48949:3;48937:10;48905:48;:::i;:::-;48900:3;48893:61;48983:4;48978:3;48974:14;48967:21;;48843:155;48827:4;48822:3;48818:14;48811:21;;48767:231;;;48771:21;48385:619;;48272:732;;;;;:::o;49027:385::-;49109:5;49158:3;49151:4;49143:6;49139:17;49135:27;49125:122;;49166:79;;:::i;:::-;49125:122;49276:6;49270:13;49301:105;49402:3;49394:6;49387:4;49379:6;49375:17;49301:105;:::i;:::-;49292:114;;49115:297;49027:385;;;;:::o;49418:913::-;49547:6;49555;49604:2;49592:9;49583:7;49579:23;49575:32;49572:119;;;49610:79;;:::i;:::-;49572:119;49751:1;49740:9;49736:17;49730:24;49781:18;49773:6;49770:30;49767:117;;;49803:79;;:::i;:::-;49767:117;49908:89;49989:7;49980:6;49969:9;49965:22;49908:89;:::i;:::-;49898:99;;49701:306;50067:2;50056:9;50052:18;50046:25;50098:18;50090:6;50087:30;50084:117;;;50120:79;;:::i;:::-;50084:117;50225:89;50306:7;50297:6;50286:9;50282:22;50225:89;:::i;:::-;50215:99;;50017:307;49418:913;;;;;:::o;50337:251::-;50477:34;50473:1;50465:6;50461:14;50454:58;50546:34;50541:2;50533:6;50529:15;50522:59;50337:251;:::o;50594:366::-;50736:3;50757:67;50821:2;50816:3;50757:67;:::i;:::-;50750:74;;50833:93;50922:3;50833:93;:::i;:::-;50951:2;50946:3;50942:12;50935:19;;50594:366;;;:::o;50966:419::-;51132:4;51170:2;51159:9;51155:18;51147:26;;51219:9;51213:4;51209:20;51205:1;51194:9;51190:17;51183:47;51247:131;51373:4;51247:131;:::i;:::-;51239:139;;50966:419;;;:::o;51391:171::-;51430:3;51453:24;51471:5;51453:24;:::i;:::-;51444:33;;51499:4;51492:5;51489:15;51486:41;;51507:18;;:::i;:::-;51486:41;51554:1;51547:5;51543:13;51536:20;;51391:171;;;:::o;51568:115::-;51653:23;51670:5;51653:23;:::i;:::-;51648:3;51641:36;51568:115;;:::o;51689:549::-;51864:4;51902:3;51891:9;51887:19;51879:27;;51916:71;51984:1;51973:9;51969:17;51960:6;51916:71;:::i;:::-;51997:70;52063:2;52052:9;52048:18;52039:6;51997:70;:::i;:::-;52077:72;52145:2;52134:9;52130:18;52121:6;52077:72;:::i;:::-;52159;52227:2;52216:9;52212:18;52203:6;52159:72;:::i;:::-;51689:549;;;;;;;:::o;52244:234::-;52384:34;52380:1;52372:6;52368:14;52361:58;52453:17;52448:2;52440:6;52436:15;52429:42;52244:234;:::o;52484:366::-;52626:3;52647:67;52711:2;52706:3;52647:67;:::i;:::-;52640:74;;52723:93;52812:3;52723:93;:::i;:::-;52841:2;52836:3;52832:12;52825:19;;52484:366;;;:::o;52856:419::-;53022:4;53060:2;53049:9;53045:18;53037:26;;53109:9;53103:4;53099:20;53095:1;53084:9;53080:17;53073:47;53137:131;53263:4;53137:131;:::i;:::-;53129:139;;52856:419;;;:::o;53281:180::-;53329:77;53326:1;53319:88;53426:4;53423:1;53416:15;53450:4;53447:1;53440:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","swapBUSDtoWETH(uint256,uint256)":"4a8d75e3","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testOracleAttack()":"06c44797"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"}],\"name\":\"swapBUSDtoWETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testOracleAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"OracleTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapBUSDtoWETH","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testOracleAttack"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"OracleTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":143} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapBUSDtoWETH","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testOracleAttack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360215f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801560ea575f5ffd5b50616976806100f85f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806366d9a9a011610095578063b5508aa911610064578063b5508aa91461022b578063ba414fa614610249578063e20c9f7114610267578063fa7626d414610285576100f3565b806366d9a9a0146101b357806385226c81146101d1578063916a17c6146101ef578063b0464fdc1461020d576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f4146101655780634a8d75e314610183576100f3565b806306c44797146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff6102a3565b005b610109610723565b005b61011361090f565b6040516101209190613535565b60405180910390f35b61013161099a565b60405161013e9190613775565b60405180910390f35b61014f610b1e565b60405161015c9190613535565b60405180910390f35b61016d610ba9565b60405161017a9190613535565b60405180910390f35b61019d600480360381019061019891906137d9565b610c34565b6040516101aa9190613826565b60405180910390f35b6101bb610ed7565b6040516101c89190613a1d565b60405180910390f35b6101d9611059565b6040516101e69190613ac0565b60405180910390f35b6101f761112d565b6040516102049190613bd5565b60405180910390f35b610215611274565b6040516102229190613bd5565b60405180910390f35b6102336113bb565b6040516102409190613ac0565b60405180910390f35b61025161148f565b60405161025e9190613c0f565b60405180910390f35b61026f611596565b60405161027c9190613535565b60405180910390f35b61028d611621565b60405161029a9190613c0f565b60405180910390f35b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561030e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103329190613c3c565b90506103736040518060400160405280602081526020017f312e2045544820507269636520286265666f72652061747461636b293a20257381525082611633565b5f6a084595161401484a00000090506103a2734fabb145d64652a948d72533023f6e7a623c7c536001836116cf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ca669fa760016040518263ffffffff1660e01b81526004016103f09190613c76565b5f604051808303815f87803b158015610407575f5ffd5b505af1158015610419573d5f5f3e3d5ffd5b5050505060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb30836040518363ffffffff1660e01b8152600401610479929190613c8f565b6020604051808303815f875af1158015610495573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190613ce0565b506104c5816001610c34565b506104e760405180606001604052806037815260200161690a603791396116e0565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105769190613c3c565b90506105b76040518060400160405280601f81526020017f332e20455448207072696365202861667465722061747461636b293a2025730081525082611633565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c065670de0b6b3a76400006040518263ffffffff1660e01b815260040160206040518083038185885af115801561062b573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106509190613c3c565b5061071e6040518060600160405280602b81526020016168df602b9139678ac7230489e8000060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106d09190613c76565b602060405180830381865afa1580156106eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070f9190613c3c565b6107199190613d65565b611633565b505050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f877cb196040518163ffffffff1660e01b815260040161076e90613def565b5f60405180830381865afa158015610788573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107b09190613f2b565b602290816107be9190614180565b50737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166371ee464d602262f50ff56040518363ffffffff1660e01b8152600401610812929190614309565b6020604051808303815f875af115801561082e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190613c3c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516108b4906133a9565b604051809103905ff0801580156108cd573d5f5f3e3d5ffd5b5060235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561099057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610947575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610b15578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610afe578382905f5260205f20018054610a7390613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613f9f565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b505050505081526020019060010190610a56565b5050505081525050815260200190600101906109bd565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610b9f57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b56575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c2a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be1575b5050505050905090565b5f60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610cb3929190613c8f565b6020604051808303815f875af1158015610ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf39190613ce0565b506060600267ffffffffffffffff811115610d1157610d10613e15565b5b604051908082528060200260200182016040528015610d3f5781602001602082028036833780820191505090505b509050734fabb145d64652a948d72533023f6e7a623c7c53815f81518110610d6a57610d69614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610dcd57610dcc614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed17398686856001426040518663ffffffff1660e01b8152600401610e6c959493929190614364565b5f604051808303815f875af1158015610e87573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610eaf9190614480565b905080600181518110610ec557610ec4614337565b5b60200260200101519250505092915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611050578382905f5260205f2090600202016040518060400160405290815f82018054610f2a90613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5690613f9f565b8015610fa15780601f10610f7857610100808354040283529160200191610fa1565b820191905f5260205f20905b815481529060010190602001808311610f8457829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561103857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610fe55790505b50505050508152505081526020019060010190610efa565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611124578382905f5260205f2001805461109990613f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546110c590613f9f565b80156111105780601f106110e757610100808354040283529160200191611110565b820191905f5260205f20905b8154815290600101906020018083116110f357829003601f168201915b50505050508152602001906001019061107c565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561126b578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561125357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116112005790505b50505050508152505081526020019060010190611150565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156113b2578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561139a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116113475790505b50505050508152505081526020019060010190611297565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611486578382905f5260205f200180546113fb90613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461142790613f9f565b80156114725780601f1061144957610100808354040283529160200191611472565b820191905f5260205f20905b81548152906001019060200180831161145557829003601f168201915b5050505050815260200190600101906113de565b50505050905090565b5f60085f9054906101000a900460ff16156114ad5760019050611593565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161154f9291906144df565b602060405180830381865afa15801561156a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158e9190614530565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561161757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115ce575b5050505050905090565b601f5f9054906101000a900460ff1681565b6116cb8282604051602401611649929190614593565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b5050565b6116db8383835f611793565b505050565b611776816040516024016116f491906145c1565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b50565b61179081611788611a11611a30565b63ffffffff16565b50565b5f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016117c19190613c76565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161180f9190614625565b5f60405180830381855afa9150503d805f8114611847576040519150601f19603f3d011682016040523d82523d5f602084013e61184c565b606091505b509150505f818060200190518101906118659190613c3c565b90506118b8846118aa8761189c6370a0823160e01b61188e8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a6190919063ffffffff16565b611a7490919063ffffffff16565b8215611a09575f8673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161192f9190614625565b5f60405180830381855afa9150503d805f8114611967576040519150601f19603f3d011682016040523d82523d5f602084013e61196c565b606091505b509150505f818060200190518101906119859190613c3c565b9050828610156119ad57858361199b919061463b565b816119a6919061463b565b90506119c7565b82866119b9919061463b565b816119c4919061466e565b90505b611a06816119f86318160ddd60e01b6119ea8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a7490919063ffffffff16565b50505b505050505050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6133b6819050919050565b5f611a468383611a84565b905092915050565b5f611a598383611ad0565b905092915050565b5f611a6c8383611af9565b905092915050565b611a8082825f1b611b43565b5050565b5f81836004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082905092915050565b5f81836002015f6101000a81548163ffffffff021916908360e01c021790555082905092915050565b5f826001018273ffffffffffffffffffffffffffffffffffffffff165f1b908060018154018082558091505060019003905f5260205f20015f909190919091505582905092915050565b5f826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836002015f9054906101000a900460e01b90505f846003015490505f611b90866120da565b9050855f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8284604051602001611c319291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16611c7457611c72865f6121e6565b505b5f865f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8385604051602001611d149291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154611d4e919061466e565b1115611e89575f81600201548260010154611d69919061466e565b610100611d76919061463b565b6002611d829190614817565b905080875f1c107f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae836040518263ffffffff1660e01b8152600401611de49190613826565b5f60405180830381865afa158015611dfe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e269190613f2b565b604051602001611e369190614931565b60405160208183030381529060405290611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d91906145c1565b60405180910390fd5b50505b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d7087845f01545f1b6040518363ffffffff1660e01b8152600401611eec9291906144df565b602060405180830381865afa158015611f07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2b9190614530565b90505f611f4482895f1c856001015486600201546121fc565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb88855f01545f1b846040518463ffffffff1660e01b8152600401611faa93929190614952565b5f604051808303815f87803b158015611fc1575f5ffd5b505af1158015611fd3573d5f5f3e3d5ffd5b505050505f5f611fe28b61221d565b91509150811580611ff35750898114155b156120c4577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8a875f01545f1b876040518463ffffffff1660e01b815260040161205c93929190614952565b5f604051808303815f87803b158015612073575f5ffd5b505af1158015612085573d5f5f3e3d5ffd5b505050506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb906149f7565b60405180910390fd5b6120cd8b612314565b5050505050505050505050565b60605f8260070180546120ec90613f9f565b9050036121535761214c8260010180548060200260200160405190810160405280929190818152602001828054801561214257602002820191905f5260205f20905b81548152602001906001019080831161212e575b5050505050612320565b90506121e1565b81600701805461216290613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461218e90613f9f565b80156121d95780601f106121b0576101008083540402835291602001916121d9565b820191905f5260205f20905b8154815290600101906020018083116121bc57829003601f168201915b505050505090505b919050565b5f6121f183836123ce565b5f0154905092915050565b5f8184901b61220b8484612ce6565b19865f1c16175f1b9050949350505050565b5f5f5f836002015f9054906101000a900460e01b61223a856120da565b60405160200161224b929190614a35565b60405160208183030381529060405290505f5f856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516122a69190614625565b5f60405180830381855afa9150503d805f81146122de576040519150601f19603f3d011682016040523d82523d5f602084013e6122e3565b606091505b50915091505f61230382886003015460206122fe9190614a5c565b612cfd565b905082819550955050505050915091565b61231d81612db6565b50565b60605f602083516123319190614a5c565b67ffffffffffffffff81111561234a57612349613e15565b5b6040519080825280601f01601f19166020018201604052801561237c5781602001600182028036833780820191505090505b5090505f5f90505b83518110156123c4575f8482815181106123a1576123a0614337565b5b602002602001015190508082602002602001840152508080600101915050612384565b5080915050919050565b5f5f836004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f846002015f9054906101000a900460e01b90505f856003015490505f61241c876120da565b9050865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016124bd9291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16156125d25785156125055761250487612db6565b5b865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016125a49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f20945050505050612ce0565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612639575f5ffd5b505af115801561264b573d5f5f3e3d5ffd5b505050505f6126598861221d565b9150505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166365bc9481876040518263ffffffff1660e01b81526004016126b89190613c76565b5f60405180830381865afa1580156126d2573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906126fa9190614b5d565b5090505f815103612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c43565b60405180910390fd5b5f815190505b5f8161275190614c61565b91508110612af3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70898585815181106127ac576127ab614337565b5b60200260200101516040518363ffffffff1660e01b81526004016127d19291906144df565b602060405180830381865afa1580156127ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128109190614530565b90505f5f1b8103612871577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5888484815181106128505761284f614337565b5b60200260200101515f1c604051612868929190613c8f565b60405180910390a15b6128958b84848151811061288857612887614337565b5b6020026020010151612e2d565b61289f5750612aee565b5f5f5f5f915091508c6006015f9054906101000a900460ff16156128fe575f6128e28e8787815181106128d5576128d4614337565b5b60200260200101516130bc565b809450819550829350505050806128fc5750505050612aee565b505b5f8161290a8484612ce6565b855f1c16901c905080875f1c146129245750505050612aee565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c60405160200161295a9291906146c1565b6040516020818303038152906040528051906020012089898151811061298357612982614337565b5b60200260200101515f1c60405161299d9493929190614c97565b60405180910390a160405180608001604052808787815181106129c3576129c2614337565b5b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c604051602001612a849291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050612af3565b612746565b50885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612b939291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16612c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfc90614d4a565b60405180910390fd5b8715612c1557612c1489612db6565b5b885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612cb49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2096505050505050505b92915050565b5f600180848401610100031b03821b905092915050565b5f5f5f83855111612d0e575f612d1c565b838551612d1b919061463b565b5b90506020811115612d2c57602090505b5f5f90505b81811015612daa57600881612d469190614a5c565b60ff60f81b878388612d58919061466e565b81518110612d6957612d68614337565b5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c831792508080600101915050612d31565b50819250505092915050565b806004015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055806002015f6101000a81549063ffffffff0219169055806001015f612e0191906133c0565b806003015f9055806006015f6101000a81549060ff0219169055806007015f612e2a91906133da565b50565b5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401612eaf9291906144df565b602060405180830381865afa158015612eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eee9190614530565b90505f5f612efb8661221d565b915091505f5f5f1b8214612f11575f5f1b612f35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f1b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688846040518463ffffffff1660e01b8152600401612fb993929190614952565b5f604051808303815f87803b158015612fd0575f5ffd5b505af1158015612fe2573d5f5f3e3d5ffd5b505050505f612ff08861221d565b9150507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb896004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689886040518463ffffffff1660e01b815260040161307593929190614952565b5f604051808303815f87803b15801561308c575f5ffd5b505af115801561309e573d5f5f3e3d5ffd5b505050508380156130af5750808314155b9550505050505092915050565b5f5f5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70876004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016131409291906144df565b602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614530565b90505f5f61318f88886001613271565b915091505f5f6131a08a8a5f613271565b915091507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8b6004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b886040518463ffffffff1660e01b815260040161322693929190614952565b5f604051808303815f87803b15801561323d575f5ffd5b505af115801561324f573d5f5f3e3d5ffd5b5050505083801561325d5750815b838297509750975050505050509250925092565b5f5f5f5f90505b610100811015613399575f8461329257816001901b6132a4565b8160ff61329f919061463b565b6001901b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688845f1b6040518463ffffffff1660e01b815260040161332a93929190614952565b5f604051808303815f87803b158015613341575f5ffd5b505af1158015613353573d5f5f3e3d5ffd5b505050505f5f6133628961221d565b9150915081801561337457505f815f1c115b156133895760018495509550505050506133a1565b5050508080600101915050613278565b505f5f915091505b935093915050565b611b4980614d9683390190565b6133be614d68565b565b5080545f8255905f5260205f20906133d89190613414565b565b5080546133e690613f9f565b5f825580601f106133f8575050613412565b601f0160209004905f5260205f20906134119190613431565b5b565b5f5b8082111561342c578281015f9055600101613416565b505050565b5f5b80821115613449578281015f9055600101613433565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a082613477565b9050919050565b6134b081613496565b82525050565b5f6134c183836134a7565b60208301905092915050565b5f602082019050919050565b5f6134e38261344e565b6134ed8185613458565b93506134f883613468565b805f5b8381101561352857815161350f88826134b6565b975061351a836134cd565b9250506001810190506134fb565b5085935050505092915050565b5f6020820190508181035f83015261354d81846134d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6135e9826135a7565b6135f381856135b1565b93506136038185602086016135c1565b61360c816135cf565b840191505092915050565b5f61362283836135df565b905092915050565b5f602082019050919050565b5f6136408261357e565b61364a8185613588565b93508360208202850161365c85613598565b805f5b8581101561369757848403895281516136788582613617565b94506136838361362a565b925060208a0199505060018101905061365f565b50829750879550505050505092915050565b5f604083015f8301516136be5f8601826134a7565b50602083015184820360208601526136d68282613636565b9150508091505092915050565b5f6136ee83836136a9565b905092915050565b5f602082019050919050565b5f61370c82613555565b613716818561355f565b9350836020820285016137288561356f565b805f5b85811015613763578484038952815161374485826136e3565b945061374f836136f6565b925060208a0199505060018101905061372b565b50829750879550505050505092915050565b5f6020820190508181035f83015261378d8184613702565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6137b8816137a6565b81146137c2575f5ffd5b50565b5f813590506137d3816137af565b92915050565b5f5f604083850312156137ef576137ee61379e565b5b5f6137fc858286016137c5565b925050602061380d858286016137c5565b9150509250929050565b613820816137a6565b82525050565b5f6020820190506138395f830184613817565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6138c581613891565b82525050565b5f6138d683836138bc565b60208301905092915050565b5f602082019050919050565b5f6138f882613868565b6139028185613872565b935061390d83613882565b805f5b8381101561393d57815161392488826138cb565b975061392f836138e2565b925050600181019050613910565b5085935050505092915050565b5f604083015f8301518482035f86015261396482826135df565b9150506020830151848203602086015261397e82826138ee565b9150508091505092915050565b5f613996838361394a565b905092915050565b5f602082019050919050565b5f6139b48261383f565b6139be8185613849565b9350836020820285016139d085613859565b805f5b85811015613a0b57848403895281516139ec858261398b565b94506139f78361399e565b925060208a019950506001810190506139d3565b50829750879550505050505092915050565b5f6020820190508181035f830152613a3581846139aa565b905092915050565b5f82825260208201905092915050565b5f613a578261357e565b613a618185613a3d565b935083602082028501613a7385613598565b805f5b85811015613aae5784840389528151613a8f8582613617565b9450613a9a8361362a565b925060208a01995050600181019050613a76565b50829750879550505050505092915050565b5f6020820190508181035f830152613ad88184613a4d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151613b1e5f8601826134a7565b5060208301518482036020860152613b3682826138ee565b9150508091505092915050565b5f613b4e8383613b09565b905092915050565b5f602082019050919050565b5f613b6c82613ae0565b613b768185613aea565b935083602082028501613b8885613afa565b805f5b85811015613bc35784840389528151613ba48582613b43565b9450613baf83613b56565b925060208a01995050600181019050613b8b565b50829750879550505050505092915050565b5f6020820190508181035f830152613bed8184613b62565b905092915050565b5f8115159050919050565b613c0981613bf5565b82525050565b5f602082019050613c225f830184613c00565b92915050565b5f81519050613c36816137af565b92915050565b5f60208284031215613c5157613c5061379e565b5b5f613c5e84828501613c28565b91505092915050565b613c7081613496565b82525050565b5f602082019050613c895f830184613c67565b92915050565b5f604082019050613ca25f830185613c67565b613caf6020830184613817565b9392505050565b613cbf81613bf5565b8114613cc9575f5ffd5b50565b5f81519050613cda81613cb6565b92915050565b5f60208284031215613cf557613cf461379e565b5b5f613d0284828501613ccc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d6f826137a6565b9150613d7a836137a6565b925082613d8a57613d89613d0b565b5b828204905092915050565b5f82825260208201905092915050565b7f4d41494e4e45545f5250435f55524c00000000000000000000000000000000005f82015250565b5f613dd9600f83613d95565b9150613de482613da5565b602082019050919050565b5f6020820190508181035f830152613e0681613dcd565b9050919050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613e4b826135cf565b810181811067ffffffffffffffff82111715613e6a57613e69613e15565b5b80604052505050565b5f613e7c613795565b9050613e888282613e42565b919050565b5f67ffffffffffffffff821115613ea757613ea6613e15565b5b613eb0826135cf565b9050602081019050919050565b5f613ecf613eca84613e8d565b613e73565b905082815260208101848484011115613eeb57613eea613e11565b5b613ef68482856135c1565b509392505050565b5f82601f830112613f1257613f11613e0d565b5b8151613f22848260208601613ebd565b91505092915050565b5f60208284031215613f4057613f3f61379e565b5b5f82015167ffffffffffffffff811115613f5d57613f5c6137a2565b5b613f6984828501613efe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fb657607f821691505b602082108103613fc957613fc8613f72565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261402b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ff0565b6140358683613ff0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61407061406b614066846137a6565b61404d565b6137a6565b9050919050565b5f819050919050565b61408983614056565b61409d61409582614077565b848454613ffc565b825550505050565b5f5f905090565b6140b46140a5565b6140bf818484614080565b505050565b5f5b828110156140e5576140da5f8284016140ac565b6001810190506140c6565b505050565b601f82111561413857828211156141375761410481613fcf565b61410d83613fe1565b61411685613fe1565b6020861015614123575f90505b808301614132828403826140c4565b505050505b5b505050565b5f82821c905092915050565b5f6141585f198460080261413d565b1980831691505092915050565b5f6141708383614149565b9150826002028217905092915050565b614189826135a7565b67ffffffffffffffff8111156141a2576141a1613e15565b5b6141ac8254613f9f565b6141b78282856140ea565b5f60209050601f8311600181146141e8575f84156141d6578287015190505b6141e08582614165565b865550614247565b601f1984166141f686613fcf565b5f5b8281101561421d578489015182556001820191506020850194506020810190506141f8565b8683101561423a5784890151614236601f891682614149565b8355505b6001600288020188555050505b505050505050565b5f815461425b81613f9f565b6142658186613d95565b9450600182165f811461427f5760018114614295576142c7565b60ff1983168652811515602002860193506142c7565b61429e85613fcf565b5f5b838110156142bf578154818901526001820191506020810190506142a0565b808801955050505b50505092915050565b5f819050919050565b5f6142f36142ee6142e9846142d0565b61404d565b6137a6565b9050919050565b614303816142d9565b82525050565b5f6040820190508181035f830152614321818561424f565b905061433060208301846142fa565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820190506143775f830188613817565b6143846020830187613817565b818103604083015261439681866134d9565b90506143a56060830185613c67565b6143b26080830184613817565b9695505050505050565b5f67ffffffffffffffff8211156143d6576143d5613e15565b5b602082029050602081019050919050565b5f5ffd5b5f6143fd6143f8846143bc565b613e73565b905080838252602082019050602084028301858111156144205761441f6143e7565b5b835b8181101561444957806144358882613c28565b845260208401935050602081019050614422565b5050509392505050565b5f82601f83011261446757614466613e0d565b5b81516144778482602086016143eb565b91505092915050565b5f602082840312156144955761449461379e565b5b5f82015167ffffffffffffffff8111156144b2576144b16137a2565b5b6144be84828501614453565b91505092915050565b5f819050919050565b6144d9816144c7565b82525050565b5f6040820190506144f25f830185613c67565b6144ff60208301846144d0565b9392505050565b61450f816144c7565b8114614519575f5ffd5b50565b5f8151905061452a81614506565b92915050565b5f602082840312156145455761454461379e565b5b5f6145528482850161451c565b91505092915050565b5f614565826135a7565b61456f8185613d95565b935061457f8185602086016135c1565b614588816135cf565b840191505092915050565b5f6040820190508181035f8301526145ab818561455b565b90506145ba6020830184613817565b9392505050565b5f6020820190508181035f8301526145d9818461455b565b905092915050565b5f81519050919050565b5f81905092915050565b5f6145ff826145e1565b61460981856145eb565b93506146198185602086016135c1565b80840191505092915050565b5f61463082846145f5565b915081905092915050565b5f614645826137a6565b9150614650836137a6565b925082820390508181111561466857614667613d38565b5b92915050565b5f614678826137a6565b9150614683836137a6565b925082820190508082111561469b5761469a613d38565b5b92915050565b5f819050919050565b6146bb6146b6826137a6565b6146a1565b82525050565b5f6146cc82856145f5565b91506146d882846146aa565b6020820191508190509392505050565b5f8160011c9050919050565b5f5f8291508390505b600185111561473d5780860481111561471957614718613d38565b5b60018516156147285780820291505b8081029050614736856146e8565b94506146fd565b94509492505050565b5f826147555760019050614810565b81614762575f9050614810565b81600181146147785760028114614782576147b1565b6001915050614810565b60ff84111561479457614793613d38565b5b8360020a9150848211156147ab576147aa613d38565b5b50614810565b5060208310610133831016604e8410600b84101617156147e65782820a9050838111156147e1576147e0613d38565b5b614810565b6147f384848460016146f4565b9250905081840481111561480a57614809613d38565b5b81810290505b9392505050565b5f614821826137a6565b915061482c836137a6565b92506148597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614746565b905092915050565b5f81905092915050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a205061636b656420736c6f742e2057652063616e2774206669742060208201527f76616c75652067726561746572207468616e2000000000000000000000000000604082015250565b5f6148eb605383614861565b91506148f68261486b565b605382019050919050565b5f61490b826135a7565b6149158185614861565b93506149258185602086016135c1565b80840191505092915050565b5f61493b826148df565b91506149478284614901565b915081905092915050565b5f6060820190506149655f830186613c67565b61497260208301856144d0565b61497f60408301846144d0565b949350505050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a204661696c656420746f2077726974652076616c75652e00000000602082015250565b5f6149e1603c83613d95565b91506149ec82614987565b604082019050919050565b5f6020820190508181035f830152614a0e816149d5565b9050919050565b5f819050919050565b614a2f614a2a82613891565b614a15565b82525050565b5f614a408285614a1e565b600482019150614a5082846145f5565b91508190509392505050565b5f614a66826137a6565b9150614a71836137a6565b9250828202614a7f816137a6565b91508282048414831517614a9657614a95613d38565b5b5092915050565b5f67ffffffffffffffff821115614ab757614ab6613e15565b5b602082029050602081019050919050565b5f614ada614ad584614a9d565b613e73565b90508083825260208201905060208402830185811115614afd57614afc6143e7565b5b835b81811015614b265780614b12888261451c565b845260208401935050602081019050614aff565b5050509392505050565b5f82601f830112614b4457614b43613e0d565b5b8151614b54848260208601614ac8565b91505092915050565b5f5f60408385031215614b7357614b7261379e565b5b5f83015167ffffffffffffffff811115614b9057614b8f6137a2565b5b614b9c85828601614b30565b925050602083015167ffffffffffffffff811115614bbd57614bbc6137a2565b5b614bc985828601614b30565b9150509250929050565b7f73746453746f726167652066696e642853746453746f72616765293a204e6f205f8201527f73746f726167652075736520646574656374656420666f72207461726765742e602082015250565b5f614c2d604083613d95565b9150614c3882614bd3565b604082019050919050565b5f6020820190508181035f830152614c5a81614c21565b9050919050565b5f614c6b826137a6565b91505f8203614c7d57614c7c613d38565b5b600182039050919050565b614c9181613891565b82525050565b5f608082019050614caa5f830187613c67565b614cb76020830186614c88565b614cc460408301856144d0565b614cd16060830184613817565b95945050505050565b7f73746453746f726167652066696e642853746453746f72616765293a20536c6f5f8201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000602082015250565b5f614d34602f83613d95565b9150614d3f82614cda565b604082019050919050565b5f6020820190508181035f830152614d6181614d28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033342e204d696e746564202573206f5553442077697468203120455448202861667465722061747461636b29322e205377617020312c3030302c303030204255534420746f205745544820746f206d616e6970756c61746520746865206f7261636c65a2646970667358221220fdb0e7242204c2f9babb28b0dc8b734985528131e78ceecf2eac4a1dfb98e24064736f6c63430008220033","sourceMap":"147:2299:137:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;262:42:137;501:32;;;;;;;;;;;;;;;;;;;;342:42;539:32;;;;;;;;;;;;;;;;;;;;147:2299;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806366d9a9a011610095578063b5508aa911610064578063b5508aa91461022b578063ba414fa614610249578063e20c9f7114610267578063fa7626d414610285576100f3565b806366d9a9a0146101b357806385226c81146101d1578063916a17c6146101ef578063b0464fdc1461020d576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f4146101655780634a8d75e314610183576100f3565b806306c44797146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff6102a3565b005b610109610723565b005b61011361090f565b6040516101209190613535565b60405180910390f35b61013161099a565b60405161013e9190613775565b60405180910390f35b61014f610b1e565b60405161015c9190613535565b60405180910390f35b61016d610ba9565b60405161017a9190613535565b60405180910390f35b61019d600480360381019061019891906137d9565b610c34565b6040516101aa9190613826565b60405180910390f35b6101bb610ed7565b6040516101c89190613a1d565b60405180910390f35b6101d9611059565b6040516101e69190613ac0565b60405180910390f35b6101f761112d565b6040516102049190613bd5565b60405180910390f35b610215611274565b6040516102229190613bd5565b60405180910390f35b6102336113bb565b6040516102409190613ac0565b60405180910390f35b61025161148f565b60405161025e9190613c0f565b60405180910390f35b61026f611596565b60405161027c9190613535565b60405180910390f35b61028d611621565b60405161029a9190613c0f565b60405180910390f35b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561030e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103329190613c3c565b90506103736040518060400160405280602081526020017f312e2045544820507269636520286265666f72652061747461636b293a20257381525082611633565b5f6a084595161401484a00000090506103a2734fabb145d64652a948d72533023f6e7a623c7c536001836116cf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ca669fa760016040518263ffffffff1660e01b81526004016103f09190613c76565b5f604051808303815f87803b158015610407575f5ffd5b505af1158015610419573d5f5f3e3d5ffd5b5050505060215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb30836040518363ffffffff1660e01b8152600401610479929190613c8f565b6020604051808303815f875af1158015610495573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b99190613ce0565b506104c5816001610c34565b506104e760405180606001604052806037815260200161690a603791396116e0565b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398d5fdca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610552573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105769190613c3c565b90506105b76040518060400160405280601f81526020017f332e20455448207072696365202861667465722061747461636b293a2025730081525082611633565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638119c065670de0b6b3a76400006040518263ffffffff1660e01b815260040160206040518083038185885af115801561062b573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106509190613c3c565b5061071e6040518060600160405280602b81526020016168df602b9139678ac7230489e8000060235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106d09190613c76565b602060405180830381865afa1580156106eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070f9190613c3c565b6107199190613d65565b611633565b505050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f877cb196040518163ffffffff1660e01b815260040161076e90613def565b5f60405180830381865afa158015610788573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107b09190613f2b565b602290816107be9190614180565b50737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166371ee464d602262f50ff56040518363ffffffff1660e01b8152600401610812929190614309565b6020604051808303815f875af115801561082e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190613c3c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516108b4906133a9565b604051809103905ff0801580156108cd573d5f5f3e3d5ffd5b5060235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561099057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610947575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610b15578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610afe578382905f5260205f20018054610a7390613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9f90613f9f565b8015610aea5780601f10610ac157610100808354040283529160200191610aea565b820191905f5260205f20905b815481529060010190602001808311610acd57829003601f168201915b505050505081526020019060010190610a56565b5050505081525050815260200190600101906109bd565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610b9f57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b56575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c2a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610be1575b5050505050905090565b5f60215f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610cb3929190613c8f565b6020604051808303815f875af1158015610ccf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf39190613ce0565b506060600267ffffffffffffffff811115610d1157610d10613e15565b5b604051908082528060200260200182016040528015610d3f5781602001602082028036833780820191505090505b509050734fabb145d64652a948d72533023f6e7a623c7c53815f81518110610d6a57610d69614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610dcd57610dcc614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed17398686856001426040518663ffffffff1660e01b8152600401610e6c959493929190614364565b5f604051808303815f875af1158015610e87573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610eaf9190614480565b905080600181518110610ec557610ec4614337565b5b60200260200101519250505092915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611050578382905f5260205f2090600202016040518060400160405290815f82018054610f2a90613f9f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5690613f9f565b8015610fa15780601f10610f7857610100808354040283529160200191610fa1565b820191905f5260205f20905b815481529060010190602001808311610f8457829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561103857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610fe55790505b50505050508152505081526020019060010190610efa565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611124578382905f5260205f2001805461109990613f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546110c590613f9f565b80156111105780601f106110e757610100808354040283529160200191611110565b820191905f5260205f20905b8154815290600101906020018083116110f357829003601f168201915b50505050508152602001906001019061107c565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561126b578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561125357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116112005790505b50505050508152505081526020019060010190611150565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156113b2578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801561139a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116113475790505b50505050508152505081526020019060010190611297565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611486578382905f5260205f200180546113fb90613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461142790613f9f565b80156114725780601f1061144957610100808354040283529160200191611472565b820191905f5260205f20905b81548152906001019060200180831161145557829003601f168201915b5050505050815260200190600101906113de565b50505050905090565b5f60085f9054906101000a900460ff16156114ad5760019050611593565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040161154f9291906144df565b602060405180830381865afa15801561156a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158e9190614530565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561161757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115ce575b5050505050905090565b601f5f9054906101000a900460ff1681565b6116cb8282604051602401611649929190614593565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b5050565b6116db8383835f611793565b505050565b611776816040516024016116f491906145c1565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611779565b50565b61179081611788611a11611a30565b63ffffffff16565b50565b5f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016117c19190613c76565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161180f9190614625565b5f60405180830381855afa9150503d805f8114611847576040519150601f19603f3d011682016040523d82523d5f602084013e61184c565b606091505b509150505f818060200190518101906118659190613c3c565b90506118b8846118aa8761189c6370a0823160e01b61188e8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a6190919063ffffffff16565b611a7490919063ffffffff16565b8215611a09575f8673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161192f9190614625565b5f60405180830381855afa9150503d805f8114611967576040519150601f19603f3d011682016040523d82523d5f602084013e61196c565b606091505b509150505f818060200190518101906119859190613c3c565b9050828610156119ad57858361199b919061463b565b816119a6919061463b565b90506119c7565b82866119b9919061463b565b816119c4919061466e565b90505b611a06816119f86318160ddd60e01b6119ea8c600d611a3b90919063ffffffff16565b611a4e90919063ffffffff16565b611a7490919063ffffffff16565b50505b505050505050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6133b6819050919050565b5f611a468383611a84565b905092915050565b5f611a598383611ad0565b905092915050565b5f611a6c8383611af9565b905092915050565b611a8082825f1b611b43565b5050565b5f81836004015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082905092915050565b5f81836002015f6101000a81548163ffffffff021916908360e01c021790555082905092915050565b5f826001018273ffffffffffffffffffffffffffffffffffffffff165f1b908060018154018082558091505060019003905f5260205f20015f909190919091505582905092915050565b5f826004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f836002015f9054906101000a900460e01b90505f846003015490505f611b90866120da565b9050855f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8284604051602001611c319291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16611c7457611c72865f6121e6565b505b5f865f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8385604051602001611d149291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154611d4e919061466e565b1115611e89575f81600201548260010154611d69919061466e565b610100611d76919061463b565b6002611d829190614817565b905080875f1c107f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff16636900a3ae836040518263ffffffff1660e01b8152600401611de49190613826565b5f60405180830381865afa158015611dfe573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e269190613f2b565b604051602001611e369190614931565b60405160208183030381529060405290611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d91906145c1565b60405180910390fd5b50505b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d7087845f01545f1b6040518363ffffffff1660e01b8152600401611eec9291906144df565b602060405180830381865afa158015611f07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2b9190614530565b90505f611f4482895f1c856001015486600201546121fc565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb88855f01545f1b846040518463ffffffff1660e01b8152600401611faa93929190614952565b5f604051808303815f87803b158015611fc1575f5ffd5b505af1158015611fd3573d5f5f3e3d5ffd5b505050505f5f611fe28b61221d565b91509150811580611ff35750898114155b156120c4577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8a875f01545f1b876040518463ffffffff1660e01b815260040161205c93929190614952565b5f604051808303815f87803b158015612073575f5ffd5b505af1158015612085573d5f5f3e3d5ffd5b505050506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bb906149f7565b60405180910390fd5b6120cd8b612314565b5050505050505050505050565b60605f8260070180546120ec90613f9f565b9050036121535761214c8260010180548060200260200160405190810160405280929190818152602001828054801561214257602002820191905f5260205f20905b81548152602001906001019080831161212e575b5050505050612320565b90506121e1565b81600701805461216290613f9f565b80601f016020809104026020016040519081016040528092919081815260200182805461218e90613f9f565b80156121d95780601f106121b0576101008083540402835291602001916121d9565b820191905f5260205f20905b8154815290600101906020018083116121bc57829003601f168201915b505050505090505b919050565b5f6121f183836123ce565b5f0154905092915050565b5f8184901b61220b8484612ce6565b19865f1c16175f1b9050949350505050565b5f5f5f836002015f9054906101000a900460e01b61223a856120da565b60405160200161224b929190614a35565b60405160208183030381529060405290505f5f856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516122a69190614625565b5f60405180830381855afa9150503d805f81146122de576040519150601f19603f3d011682016040523d82523d5f602084013e6122e3565b606091505b50915091505f61230382886003015460206122fe9190614a5c565b612cfd565b905082819550955050505050915091565b61231d81612db6565b50565b60605f602083516123319190614a5c565b67ffffffffffffffff81111561234a57612349613e15565b5b6040519080825280601f01601f19166020018201604052801561237c5781602001600182028036833780820191505090505b5090505f5f90505b83518110156123c4575f8482815181106123a1576123a0614337565b5b602002602001015190508082602002602001840152508080600101915050612384565b5080915050919050565b5f5f836004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f846002015f9054906101000a900460e01b90505f856003015490505f61241c876120da565b9050865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016124bd9291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16156125d25785156125055761250487612db6565b5b865f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f82846040516020016125a49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f20945050505050612ce0565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612639575f5ffd5b505af115801561264b573d5f5f3e3d5ffd5b505050505f6126598861221d565b9150505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166365bc9481876040518263ffffffff1660e01b81526004016126b89190613c76565b5f60405180830381865afa1580156126d2573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906126fa9190614b5d565b5090505f815103612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614c43565b60405180910390fd5b5f815190505b5f8161275190614c61565b91508110612af3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70898585815181106127ac576127ab614337565b5b60200260200101516040518363ffffffff1660e01b81526004016127d19291906144df565b602060405180830381865afa1580156127ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128109190614530565b90505f5f1b8103612871577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5888484815181106128505761284f614337565b5b60200260200101515f1c604051612868929190613c8f565b60405180910390a15b6128958b84848151811061288857612887614337565b5b6020026020010151612e2d565b61289f5750612aee565b5f5f5f5f915091508c6006015f9054906101000a900460ff16156128fe575f6128e28e8787815181106128d5576128d4614337565b5b60200260200101516130bc565b809450819550829350505050806128fc5750505050612aee565b505b5f8161290a8484612ce6565b855f1c16901c905080875f1c146129245750505050612aee565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c60405160200161295a9291906146c1565b6040516020818303038152906040528051906020012089898151811061298357612982614337565b5b60200260200101515f1c60405161299d9493929190614c97565b60405180910390a160405180608001604052808787815181106129c3576129c2614337565b5b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c604051602001612a849291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050612af3565b612746565b50885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612b939291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f206003015f9054906101000a900460ff16612c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfc90614d4a565b60405180910390fd5b8715612c1557612c1489612db6565b5b885f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8486604051602001612cb49291906146c1565b6040516020818303038152906040528051906020012081526020019081526020015f2096505050505050505b92915050565b5f600180848401610100031b03821b905092915050565b5f5f5f83855111612d0e575f612d1c565b838551612d1b919061463b565b5b90506020811115612d2c57602090505b5f5f90505b81811015612daa57600881612d469190614a5c565b60ff60f81b878388612d58919061466e565b81518110612d6957612d68614337565b5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c831792508080600101915050612d31565b50819250505092915050565b806004015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055806002015f6101000a81549063ffffffff0219169055806001015f612e0191906133c0565b806003015f9055806006015f6101000a81549060ff0219169055806007015f612e2a91906133da565b50565b5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70856004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401612eaf9291906144df565b602060405180830381865afa158015612eca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eee9190614530565b90505f5f612efb8661221d565b915091505f5f5f1b8214612f11575f5f1b612f35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f1b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688846040518463ffffffff1660e01b8152600401612fb993929190614952565b5f604051808303815f87803b158015612fd0575f5ffd5b505af1158015612fe2573d5f5f3e3d5ffd5b505050505f612ff08861221d565b9150507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb896004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689886040518463ffffffff1660e01b815260040161307593929190614952565b5f604051808303815f87803b15801561308c575f5ffd5b505af115801561309e573d5f5f3e3d5ffd5b505050508380156130af5750808314155b9550505050505092915050565b5f5f5f5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d70876004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016131409291906144df565b602060405180830381865afa15801561315b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061317f9190614530565b90505f5f61318f88886001613271565b915091505f5f6131a08a8a5f613271565b915091507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb8b6004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b886040518463ffffffff1660e01b815260040161322693929190614952565b5f604051808303815f87803b15801561323d575f5ffd5b505af115801561324f573d5f5f3e3d5ffd5b5050505083801561325d5750815b838297509750975050505050509250925092565b5f5f5f5f90505b610100811015613399575f8461329257816001901b6132a4565b8160ff61329f919061463b565b6001901b5b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166370ca10bb886004015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688845f1b6040518463ffffffff1660e01b815260040161332a93929190614952565b5f604051808303815f87803b158015613341575f5ffd5b505af1158015613353573d5f5f3e3d5ffd5b505050505f5f6133628961221d565b9150915081801561337457505f815f1c115b156133895760018495509550505050506133a1565b5050508080600101915050613278565b505f5f915091505b935093915050565b611b4980614d9683390190565b6133be614d68565b565b5080545f8255905f5260205f20906133d89190613414565b565b5080546133e690613f9f565b5f825580601f106133f8575050613412565b601f0160209004905f5260205f20906134119190613431565b5b565b5f5b8082111561342c578281015f9055600101613416565b505050565b5f5b80821115613449578281015f9055600101613433565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134a082613477565b9050919050565b6134b081613496565b82525050565b5f6134c183836134a7565b60208301905092915050565b5f602082019050919050565b5f6134e38261344e565b6134ed8185613458565b93506134f883613468565b805f5b8381101561352857815161350f88826134b6565b975061351a836134cd565b9250506001810190506134fb565b5085935050505092915050565b5f6020820190508181035f83015261354d81846134d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6135e9826135a7565b6135f381856135b1565b93506136038185602086016135c1565b61360c816135cf565b840191505092915050565b5f61362283836135df565b905092915050565b5f602082019050919050565b5f6136408261357e565b61364a8185613588565b93508360208202850161365c85613598565b805f5b8581101561369757848403895281516136788582613617565b94506136838361362a565b925060208a0199505060018101905061365f565b50829750879550505050505092915050565b5f604083015f8301516136be5f8601826134a7565b50602083015184820360208601526136d68282613636565b9150508091505092915050565b5f6136ee83836136a9565b905092915050565b5f602082019050919050565b5f61370c82613555565b613716818561355f565b9350836020820285016137288561356f565b805f5b85811015613763578484038952815161374485826136e3565b945061374f836136f6565b925060208a0199505060018101905061372b565b50829750879550505050505092915050565b5f6020820190508181035f83015261378d8184613702565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6137b8816137a6565b81146137c2575f5ffd5b50565b5f813590506137d3816137af565b92915050565b5f5f604083850312156137ef576137ee61379e565b5b5f6137fc858286016137c5565b925050602061380d858286016137c5565b9150509250929050565b613820816137a6565b82525050565b5f6020820190506138395f830184613817565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6138c581613891565b82525050565b5f6138d683836138bc565b60208301905092915050565b5f602082019050919050565b5f6138f882613868565b6139028185613872565b935061390d83613882565b805f5b8381101561393d57815161392488826138cb565b975061392f836138e2565b925050600181019050613910565b5085935050505092915050565b5f604083015f8301518482035f86015261396482826135df565b9150506020830151848203602086015261397e82826138ee565b9150508091505092915050565b5f613996838361394a565b905092915050565b5f602082019050919050565b5f6139b48261383f565b6139be8185613849565b9350836020820285016139d085613859565b805f5b85811015613a0b57848403895281516139ec858261398b565b94506139f78361399e565b925060208a019950506001810190506139d3565b50829750879550505050505092915050565b5f6020820190508181035f830152613a3581846139aa565b905092915050565b5f82825260208201905092915050565b5f613a578261357e565b613a618185613a3d565b935083602082028501613a7385613598565b805f5b85811015613aae5784840389528151613a8f8582613617565b9450613a9a8361362a565b925060208a01995050600181019050613a76565b50829750879550505050505092915050565b5f6020820190508181035f830152613ad88184613a4d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151613b1e5f8601826134a7565b5060208301518482036020860152613b3682826138ee565b9150508091505092915050565b5f613b4e8383613b09565b905092915050565b5f602082019050919050565b5f613b6c82613ae0565b613b768185613aea565b935083602082028501613b8885613afa565b805f5b85811015613bc35784840389528151613ba48582613b43565b9450613baf83613b56565b925060208a01995050600181019050613b8b565b50829750879550505050505092915050565b5f6020820190508181035f830152613bed8184613b62565b905092915050565b5f8115159050919050565b613c0981613bf5565b82525050565b5f602082019050613c225f830184613c00565b92915050565b5f81519050613c36816137af565b92915050565b5f60208284031215613c5157613c5061379e565b5b5f613c5e84828501613c28565b91505092915050565b613c7081613496565b82525050565b5f602082019050613c895f830184613c67565b92915050565b5f604082019050613ca25f830185613c67565b613caf6020830184613817565b9392505050565b613cbf81613bf5565b8114613cc9575f5ffd5b50565b5f81519050613cda81613cb6565b92915050565b5f60208284031215613cf557613cf461379e565b5b5f613d0284828501613ccc565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d6f826137a6565b9150613d7a836137a6565b925082613d8a57613d89613d0b565b5b828204905092915050565b5f82825260208201905092915050565b7f4d41494e4e45545f5250435f55524c00000000000000000000000000000000005f82015250565b5f613dd9600f83613d95565b9150613de482613da5565b602082019050919050565b5f6020820190508181035f830152613e0681613dcd565b9050919050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613e4b826135cf565b810181811067ffffffffffffffff82111715613e6a57613e69613e15565b5b80604052505050565b5f613e7c613795565b9050613e888282613e42565b919050565b5f67ffffffffffffffff821115613ea757613ea6613e15565b5b613eb0826135cf565b9050602081019050919050565b5f613ecf613eca84613e8d565b613e73565b905082815260208101848484011115613eeb57613eea613e11565b5b613ef68482856135c1565b509392505050565b5f82601f830112613f1257613f11613e0d565b5b8151613f22848260208601613ebd565b91505092915050565b5f60208284031215613f4057613f3f61379e565b5b5f82015167ffffffffffffffff811115613f5d57613f5c6137a2565b5b613f6984828501613efe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613fb657607f821691505b602082108103613fc957613fc8613f72565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261402b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ff0565b6140358683613ff0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61407061406b614066846137a6565b61404d565b6137a6565b9050919050565b5f819050919050565b61408983614056565b61409d61409582614077565b848454613ffc565b825550505050565b5f5f905090565b6140b46140a5565b6140bf818484614080565b505050565b5f5b828110156140e5576140da5f8284016140ac565b6001810190506140c6565b505050565b601f82111561413857828211156141375761410481613fcf565b61410d83613fe1565b61411685613fe1565b6020861015614123575f90505b808301614132828403826140c4565b505050505b5b505050565b5f82821c905092915050565b5f6141585f198460080261413d565b1980831691505092915050565b5f6141708383614149565b9150826002028217905092915050565b614189826135a7565b67ffffffffffffffff8111156141a2576141a1613e15565b5b6141ac8254613f9f565b6141b78282856140ea565b5f60209050601f8311600181146141e8575f84156141d6578287015190505b6141e08582614165565b865550614247565b601f1984166141f686613fcf565b5f5b8281101561421d578489015182556001820191506020850194506020810190506141f8565b8683101561423a5784890151614236601f891682614149565b8355505b6001600288020188555050505b505050505050565b5f815461425b81613f9f565b6142658186613d95565b9450600182165f811461427f5760018114614295576142c7565b60ff1983168652811515602002860193506142c7565b61429e85613fcf565b5f5b838110156142bf578154818901526001820191506020810190506142a0565b808801955050505b50505092915050565b5f819050919050565b5f6142f36142ee6142e9846142d0565b61404d565b6137a6565b9050919050565b614303816142d9565b82525050565b5f6040820190508181035f830152614321818561424f565b905061433060208301846142fa565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820190506143775f830188613817565b6143846020830187613817565b818103604083015261439681866134d9565b90506143a56060830185613c67565b6143b26080830184613817565b9695505050505050565b5f67ffffffffffffffff8211156143d6576143d5613e15565b5b602082029050602081019050919050565b5f5ffd5b5f6143fd6143f8846143bc565b613e73565b905080838252602082019050602084028301858111156144205761441f6143e7565b5b835b8181101561444957806144358882613c28565b845260208401935050602081019050614422565b5050509392505050565b5f82601f83011261446757614466613e0d565b5b81516144778482602086016143eb565b91505092915050565b5f602082840312156144955761449461379e565b5b5f82015167ffffffffffffffff8111156144b2576144b16137a2565b5b6144be84828501614453565b91505092915050565b5f819050919050565b6144d9816144c7565b82525050565b5f6040820190506144f25f830185613c67565b6144ff60208301846144d0565b9392505050565b61450f816144c7565b8114614519575f5ffd5b50565b5f8151905061452a81614506565b92915050565b5f602082840312156145455761454461379e565b5b5f6145528482850161451c565b91505092915050565b5f614565826135a7565b61456f8185613d95565b935061457f8185602086016135c1565b614588816135cf565b840191505092915050565b5f6040820190508181035f8301526145ab818561455b565b90506145ba6020830184613817565b9392505050565b5f6020820190508181035f8301526145d9818461455b565b905092915050565b5f81519050919050565b5f81905092915050565b5f6145ff826145e1565b61460981856145eb565b93506146198185602086016135c1565b80840191505092915050565b5f61463082846145f5565b915081905092915050565b5f614645826137a6565b9150614650836137a6565b925082820390508181111561466857614667613d38565b5b92915050565b5f614678826137a6565b9150614683836137a6565b925082820190508082111561469b5761469a613d38565b5b92915050565b5f819050919050565b6146bb6146b6826137a6565b6146a1565b82525050565b5f6146cc82856145f5565b91506146d882846146aa565b6020820191508190509392505050565b5f8160011c9050919050565b5f5f8291508390505b600185111561473d5780860481111561471957614718613d38565b5b60018516156147285780820291505b8081029050614736856146e8565b94506146fd565b94509492505050565b5f826147555760019050614810565b81614762575f9050614810565b81600181146147785760028114614782576147b1565b6001915050614810565b60ff84111561479457614793613d38565b5b8360020a9150848211156147ab576147aa613d38565b5b50614810565b5060208310610133831016604e8410600b84101617156147e65782820a9050838111156147e1576147e0613d38565b5b614810565b6147f384848460016146f4565b9250905081840481111561480a57614809613d38565b5b81810290505b9392505050565b5f614821826137a6565b915061482c836137a6565b92506148597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614746565b905092915050565b5f81905092915050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a205061636b656420736c6f742e2057652063616e2774206669742060208201527f76616c75652067726561746572207468616e2000000000000000000000000000604082015250565b5f6148eb605383614861565b91506148f68261486b565b605382019050919050565b5f61490b826135a7565b6149158185614861565b93506149258185602086016135c1565b80840191505092915050565b5f61493b826148df565b91506149478284614901565b915081905092915050565b5f6060820190506149655f830186613c67565b61497260208301856144d0565b61497f60408301846144d0565b949350505050565b7f73746453746f7261676520636865636b65645f77726974652853746453746f725f8201527f616765293a204661696c656420746f2077726974652076616c75652e00000000602082015250565b5f6149e1603c83613d95565b91506149ec82614987565b604082019050919050565b5f6020820190508181035f830152614a0e816149d5565b9050919050565b5f819050919050565b614a2f614a2a82613891565b614a15565b82525050565b5f614a408285614a1e565b600482019150614a5082846145f5565b91508190509392505050565b5f614a66826137a6565b9150614a71836137a6565b9250828202614a7f816137a6565b91508282048414831517614a9657614a95613d38565b5b5092915050565b5f67ffffffffffffffff821115614ab757614ab6613e15565b5b602082029050602081019050919050565b5f614ada614ad584614a9d565b613e73565b90508083825260208201905060208402830185811115614afd57614afc6143e7565b5b835b81811015614b265780614b12888261451c565b845260208401935050602081019050614aff565b5050509392505050565b5f82601f830112614b4457614b43613e0d565b5b8151614b54848260208601614ac8565b91505092915050565b5f5f60408385031215614b7357614b7261379e565b5b5f83015167ffffffffffffffff811115614b9057614b8f6137a2565b5b614b9c85828601614b30565b925050602083015167ffffffffffffffff811115614bbd57614bbc6137a2565b5b614bc985828601614b30565b9150509250929050565b7f73746453746f726167652066696e642853746453746f72616765293a204e6f205f8201527f73746f726167652075736520646574656374656420666f72207461726765742e602082015250565b5f614c2d604083613d95565b9150614c3882614bd3565b604082019050919050565b5f6020820190508181035f830152614c5a81614c21565b9050919050565b5f614c6b826137a6565b91505f8203614c7d57614c7c613d38565b5b600182039050919050565b614c9181613891565b82525050565b5f608082019050614caa5f830187613c67565b614cb76020830186614c88565b614cc460408301856144d0565b614cd16060830184613817565b95945050505050565b7f73746453746f726167652066696e642853746453746f72616765293a20536c6f5f8201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000602082015250565b5f614d34602f83613d95565b9150614d3f82614cda565b604082019050919050565b5f6020820190508181035f830152614d6181614d28565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe6080604052735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390573c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2734fabb145d64652a948d72533023f6e7a623c7c536040518363ffffffff1660e01b81526004016100dc9291906102e0565b602060405180830381865afa1580156100f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b9190610335565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734fabb145d64652a948d72533023f6e7a623c7c5360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561020d575f5ffd5b506040518060400160405280600a81526020017f4f7261636c6520555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f6f55534400000000000000000000000000000000000000000000000000000000815250816003908161028991906105ae565b50806004908161029991906105ae565b50505061067d565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102ca826102a1565b9050919050565b6102da816102c0565b82525050565b5f6040820190506102f35f8301856102d1565b61030060208301846102d1565b9392505050565b5f5ffd5b610314816102c0565b811461031e575f5ffd5b50565b5f8151905061032f8161030b565b92915050565b5f6020828403121561034a57610349610307565b5b5f61035784828501610321565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103db57607f821691505b6020821081036103ee576103ed610397565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610415565b61045a8683610415565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049e61049961049484610472565b61047b565b610472565b9050919050565b5f819050919050565b6104b783610484565b6104cb6104c3826104a5565b848454610421565b825550505050565b5f5f905090565b6104e26104d3565b6104ed8184846104ae565b505050565b5f5b82811015610513576105085f8284016104da565b6001810190506104f4565b505050565b601f821115610566578282111561056557610532816103f4565b61053b83610406565b61054485610406565b6020861015610551575f90505b808301610560828403826104f2565b505050505b5b505050565b5f82821c905092915050565b5f6105865f198460080261056b565b1980831691505092915050565b5f61059e8383610577565b9150826002028217905092915050565b6105b782610360565b67ffffffffffffffff8111156105d0576105cf61036a565b5b6105da82546103c4565b6105e5828285610518565b5f60209050601f831160018114610616575f8415610604578287015190505b61060e8582610593565b865550610675565b601f198416610624866103f4565b5f5b8281101561064b57848901518255600182019150602085019450602081019050610626565b868310156106685784890151610664601f891682610577565b8355505b6001600288020188555050505b505050505050565b6114bf8061068a5f395ff3fe608060405260043610610108575f3560e01c806370a0823111610094578063a8aa1b3111610063578063a8aa1b3114610358578063a9059cbb14610382578063ad5c4648146103be578063c45a0155146103e8578063dd62ed3e1461041257610108565b806370a08231146102aa5780638119c065146102e657806395d89b411461030457806398d5fdca1461032e57610108565b8063313ce567116100db578063313ce567146101d85780633ca5b234146102025780633fc8cef31461022c578063484f4ea9146102565780634d2eaf701461028057610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c575b5f5ffd5b348015610117575f5ffd5b5061012061044e565b60405161012d9190610ee8565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190610f99565b6104de565b6040516101699190610ff1565b60405180910390f35b34801561017d575f5ffd5b50610186610500565b6040516101939190611019565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd9190611032565b610509565b6040516101cf9190610ff1565b60405180910390f35b3480156101e3575f5ffd5b506101ec610537565b6040516101f9919061109d565b60405180910390f35b34801561020d575f5ffd5b5061021661053f565b6040516102239190611111565b60405180910390f35b348015610237575f5ffd5b50610240610564565b60405161024d9190611111565b60405180910390f35b348015610261575f5ffd5b5061026a610589565b6040516102779190611139565b60405180910390f35b34801561028b575f5ffd5b506102946105a1565b6040516102a19190611139565b60405180910390f35b3480156102b5575f5ffd5b506102d060048036038101906102cb9190611152565b6105b9565b6040516102dd9190611019565b60405180910390f35b6102ee6105fe565b6040516102fb9190611019565b60405180910390f35b34801561030f575f5ffd5b50610318610626565b6040516103259190610ee8565b60405180910390f35b348015610339575f5ffd5b506103426106b6565b60405161034f9190611019565b60405180910390f35b348015610363575f5ffd5b5061036c61076f565b604051610379919061119d565b60405180910390f35b34801561038d575f5ffd5b506103a860048036038101906103a39190610f99565b610794565b6040516103b59190610ff1565b60405180910390f35b3480156103c9575f5ffd5b506103d26107b6565b6040516103df9190611139565b60405180910390f35b3480156103f3575f5ffd5b506103fc6107ce565b60405161040991906111d6565b60405180910390f35b34801561041d575f5ffd5b50610438600480360381019061043391906111ef565b6107f3565b6040516104459190611019565b60405180910390f35b60606003805461045d9061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061125a565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b5f5f6104e8610875565b90506104f581858561087c565b600191505092915050565b5f600254905090565b5f5f610513610875565b905061052085828561088e565b61052b858585610921565b60019150509392505050565b5f6012905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b734fabb145d64652a948d72533023f6e7a623c7c5381565b735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f6106086106b6565b9050348161061691906112b7565b91506106223383610a11565b5090565b6060600480546106359061125a565b80601f01602080910402602001604051908101604052809291908181526020018280546106619061125a565b80156106ac5780601f10610683576101008083540402835291602001916106ac565b820191905f5260205f20905b81548152906001019060200180831161068f57829003601f168201915b5050505050905090565b5f5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610723573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107479190611374565b5091509150808261075891906113f1565b6dffffffffffffffffffffffffffff169250505090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f61079e610875565b90506107ab818585610921565b600191505092915050565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6108898383836001610a90565b505050565b5f61089984846107f3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561091b578181101561090c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161090393929190611421565b60405180910390fd5b61091a84848484035f610a90565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109889190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a01575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109f89190611139565b60405180910390fd5b610a0c838383610c5f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a81575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a789190611139565b60405180910390fd5b610a8c5f8383610c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b00575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610af79190611139565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b70575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b679190611139565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c59578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c509190611019565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf578060025f828254610ca39190611456565b92505081905550610d7d565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d38578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d2f93929190611421565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc4578060025f8282540392505081905550610e0e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e6b9190611019565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eba82610e78565b610ec48185610e82565b9350610ed4818560208601610e92565b610edd81610ea0565b840191505092915050565b5f6020820190508181035f830152610f008184610eb0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3582610f0c565b9050919050565b610f4581610f2b565b8114610f4f575f5ffd5b50565b5f81359050610f6081610f3c565b92915050565b5f819050919050565b610f7881610f66565b8114610f82575f5ffd5b50565b5f81359050610f9381610f6f565b92915050565b5f5f60408385031215610faf57610fae610f08565b5b5f610fbc85828601610f52565b9250506020610fcd85828601610f85565b9150509250929050565b5f8115159050919050565b610feb81610fd7565b82525050565b5f6020820190506110045f830184610fe2565b92915050565b61101381610f66565b82525050565b5f60208201905061102c5f83018461100a565b92915050565b5f5f5f6060848603121561104957611048610f08565b5b5f61105686828701610f52565b935050602061106786828701610f52565b925050604061107886828701610f85565b9150509250925092565b5f60ff82169050919050565b61109781611082565b82525050565b5f6020820190506110b05f83018461108e565b92915050565b5f819050919050565b5f6110d96110d46110cf84610f0c565b6110b6565b610f0c565b9050919050565b5f6110ea826110bf565b9050919050565b5f6110fb826110e0565b9050919050565b61110b816110f1565b82525050565b5f6020820190506111245f830184611102565b92915050565b61113381610f2b565b82525050565b5f60208201905061114c5f83018461112a565b92915050565b5f6020828403121561116757611166610f08565b5b5f61117484828501610f52565b91505092915050565b5f611187826110e0565b9050919050565b6111978161117d565b82525050565b5f6020820190506111b05f83018461118e565b92915050565b5f6111c0826110e0565b9050919050565b6111d0816111b6565b82525050565b5f6020820190506111e95f8301846111c7565b92915050565b5f5f6040838503121561120557611204610f08565b5b5f61121285828601610f52565b925050602061122385828601610f52565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061127157607f821691505b6020821081036112845761128361122d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6112c182610f66565b91506112cc83610f66565b92508282026112da81610f66565b915082820484148315176112f1576112f061128a565b5b5092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61131a816112f8565b8114611324575f5ffd5b50565b5f8151905061133581611311565b92915050565b5f63ffffffff82169050919050565b6113538161133b565b811461135d575f5ffd5b50565b5f8151905061136e8161134a565b92915050565b5f5f5f6060848603121561138b5761138a610f08565b5b5f61139886828701611327565b93505060206113a986828701611327565b92505060406113ba86828701611360565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6113fb826112f8565b9150611406836112f8565b925082611416576114156113c4565b5b828204905092915050565b5f6060820190506114345f83018661112a565b611441602083018561100a565b61144e604083018461100a565b949350505050565b5f61146082610f66565b915061146b83610f66565b92508282019050808211156114835761148261128a565b5b9291505056fea2646970667358221220500568a93642554caeca9d1b81e6878775f0c3cdc81db5fc65c00e0a6dcc4ac064736f6c63430008220033342e204d696e746564202573206f5553442077697468203120455448202861667465722061747461636b29322e205377617020312c3030302c303030204255534420746f205745544820746f206d616e6970756c61746520746865206f7261636c65a2646970667358221220fdb0e7242204c2f9babb28b0dc8b734985528131e78ceecf2eac4a1dfb98e24064736f6c63430008220033","sourceMap":"147:2299:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:928;;;:::i;:::-;;621:243;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1882:562:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3802:147;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;923:928:137;1040:19;1062:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1040:37;;1087:60;;;;;;;;;;;;;;;;;;1135:11;1087;:60::i;:::-;1198:15;1216:17;1198:35;;1243:29;342:42;222:1;1261:10;1243:4;:29::i;:::-;351:42:0;1332:8:137;;;222:1;1332:15;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1357:4;;;;;;;;;;;:13;;;1379:4;1386:10;1357:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1407:29;1422:10;1434:1;1407:14;:29::i;:::-;;1446:70;;;;;;;;;;;;;;;;;;:11;:70::i;:::-;1571:18;1592:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1571:36;;1617:58;;;;;;;;;;;;;;;;;;1664:10;1617:11;:58::i;:::-;1711:4;;;;;;;;;;;:9;;;1728:7;1711:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1748:95;;;;;;;;;;;;;;;;;;1837:5;1807:4;;;;;;;;;;;:14;;;1830:4;1807:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;;;:::i;:::-;1748:11;:95::i;:::-;958:893;;;923:928::o;621:243::-;351:42:0;673:12:137;;;:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;655:15;:49;;;;;;:::i;:::-;;351:42:0;742:19:137;;;762:15;778:8;742:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;424:42;797:6;;:33;;;;;;;;;;;;;;;;;;847:10;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;840:4;;:17;;;;;;;;;;;;;;;;;;621:243::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;1882:562:137:-;1972:14;2005:4;;;;;;;;;;;:12;;;2026:6;;;;;;;;;;;2035:8;2005:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2055:21;2107:1;2093:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2086:23;;342:42;2119:4;2124:1;2119:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;262:42;2143:4;2148:1;2143:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;2168:21;2192:6;;;;;;;;;;;:31;;;2237:8;2259:12;2285:4;222:1;2322:15;2192:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2168:179;;2427:7;2435:1;2427:10;;;;;;;;:::i;:::-;;;;;;;;2420:17;;;;1882:562;;;;:::o;4465:186:6:-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;3802:147::-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;6966:145:15:-;7033:71;7096:2;7100;7049:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7033:15;:71::i;:::-;6966:145;;:::o;27326:117:3:-;27408:28;27413:5;27420:2;27424:4;27430:5;27408:4;:28::i;:::-;27326:117;;;:::o;6018:121:15:-;6073:59;6128:2;6089:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:15;:59::i;:::-;6018:121;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;27722:837:3:-;27851:20;27875:5;:16;;27915:10;27927:2;27892:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27875:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27848:83;;;27941:15;27970:7;27959:30;;;;;;;;;;;;:::i;:::-;27941:48;;28026:71;28092:4;28026:51;28074:2;28026:38;28053:10;28026:38;;:22;28042:5;28026:8;:15;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:47;;:51;;;;:::i;:::-;:65;;:71;;;;:::i;:::-;28143:6;28139:414;;;28168:23;28195:5;:16;;28235:10;28212:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28195:52;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28165:82;;;28261:14;28289:10;28278:33;;;;;;;;;;;;:::i;:::-;28261:50;;28336:7;28329:4;:14;28325:144;;;28384:4;28374:7;:14;;;;:::i;:::-;28363:26;;;;;:::i;:::-;;;28325:144;;;28446:7;28439:4;:14;;;;:::i;:::-;28428:26;;;;;:::i;:::-;;;28325:144;28482:60;28535:6;28482:38;28509:10;28482:38;;:22;28498:5;28482:8;:15;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:52;;:60;;;;:::i;:::-;28151:402;;28139:414;27807:752;;27722:837;;;;:::o;186:268:15:-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;13403:156:9:-;13479:18;13516:36;13538:4;13544:7;13516:21;:36::i;:::-;13509:43;;13403:156;;;;:::o;13565:143::-;13634:18;13671:30;13690:4;13696;13671:18;:30::i;:::-;13664:37;;13565:143;;;;:::o;13870:152::-;13944:18;13981:34;14005:4;14011:3;13981:23;:34::i;:::-;13974:41;;13870:152;;;;:::o;15091:120::-;15171:33;15185:4;15199:3;15191:12;;15171:13;:33::i;:::-;15091:120;;:::o;6758:156::-;6834:18;6879:7;6864:4;:12;;;:22;;;;;;;;;;;;;;;;;;6903:4;6896:11;;6758:156;;;;:::o;6920:143::-;6989:18;7031:4;7019;:9;;;:16;;;;;;;;;;;;;;;;;;7052:4;7045:11;;6920:143;;;;:::o;7411:179::-;7485:18;7515:4;:10;;7555:3;7539:21;;7531:30;;7515:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7579:4;7572:11;;7411:179;;;;:::o;15556:1502::-;15636:11;15650:4;:12;;;;;;;;;;;;15636:26;;15672:11;15686:4;:9;;;;;;;;;;;;15672:23;;15705:19;15727:4;:11;;;15705:33;;15748:19;15770:34;15799:4;15770:28;:34::i;:::-;15748:56;;15820:4;:10;;:15;15831:3;15820:15;;;;;;;;;;;;;;;:21;15836:4;15820:21;;;;;;;;;;;;;;;;;:71;15869:6;15877:11;15852:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15842:48;;;;;;15820:71;;;;;;;;;;;:77;;;;;;;;;;;;15815:126;;15913:17;15918:4;15924:5;15913:4;:17::i;:::-;;15815:126;15950:21;15974:4;:10;;:15;15985:3;15974:15;;;;;;;;;;;;;;;:21;15990:4;15974:21;;;;;;;;;;;;;;;;;:71;16023:6;16031:11;16006:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15996:48;;;;;;15974:71;;;;;;;;;;;15950:95;;16098:1;16078:4;:16;;;16060:4;:15;;;:34;;;;:::i;:::-;16059:40;16055:469;;;16115:14;16163:4;:16;;;16145:4;:15;;;:34;;;;:::i;:::-;16138:3;:42;;;;:::i;:::-;16132:1;:49;;;;:::i;:::-;16115:66;;16235:6;16228:3;16220:12;;:21;12981:28;12973:37;;16440:11;;;16452:6;16440:19;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16287:194;;;;;;;;:::i;:::-;;;;;;;;;;;;;16195:318;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16101:423;16055:469;16533:14;12981:28;12973:37;;16550:7;;;16558:3;16571:4;:9;;;16563:18;;16550:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16533:49;;16592:16;16611:91;16646:6;16662:3;16654:12;;16668:4;:15;;;16685:4;:16;;;16611:34;:91::i;:::-;16592:110;;12981:28;12973:37;;16713:8;;;16722:3;16735:4;:9;;;16727:18;;16747:8;16713:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16768:12;16782:18;16804:31;16830:4;16804:25;:31::i;:::-;16767:68;;;;16851:7;16850:8;:29;;;;16876:3;16862:10;:17;;16850:29;16846:185;;;12981:28;12973:37;;16895:8;;;16904:3;16917:4;:9;;;16909:18;;16929:6;16895:41;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16950:70;;;;;;;;;;:::i;:::-;;;;;;;;16846:185;17040:11;17046:4;17040:5;:11::i;:::-;15626:1432;;;;;;;;;15556:1502;;:::o;968:236::-;1039:12;1092:1;1067:4;:14;;:21;;;;;:::i;:::-;;;:26;1063:135;;1116:19;1124:4;:10;;1116:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:19::i;:::-;1109:26;;;;1063:135;1173:4;:14;;1166:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;968:236;;;;:::o;13256:141::-;13326:7;13352:33;13372:4;13378:6;13352:19;:33::i;:::-;:38;;;13345:45;;13256:141;;;;:::o;12600:300::-;12753:16;12880:11;12868:8;:23;;12822:41;12839:10;12851:11;12822:16;:41::i;:::-;12821:42;12809:8;12801:17;;:62;12800:92;12792:101;;12785:108;;12600:300;;;;;;:::o;1266:339::-;1334:4;1340:7;1359:15;1394:4;:9;;;;;;;;;;;;1405:19;1419:4;1405:13;:19::i;:::-;1377:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1359:66;;1436:12;1450:17;1471:4;:12;;;;;;;;;;;;:23;;1495:2;1471:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:63;;;;1508:14;1525:38;1540:4;1551;:11;;;1546:2;:16;;;;:::i;:::-;1525:14;:38::i;:::-;1508:55;;1582:7;1591:6;1574:24;;;;;;;;1266:339;;;:::o;14849:92::-;14908:26;14929:4;14908:20;:26::i;:::-;14849:92;:::o;11362:362::-;11421:12;11445:19;11488:2;11477:1;:8;:13;;;;:::i;:::-;11467:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11445:46;;11506:9;11518:1;11506:13;;11501:193;11525:1;:8;11521:1;:12;11501:193;;;11554:9;11566:1;11568;11566:4;;;;;;;;:::i;:::-;;;;;;;;11554:16;;11668:1;11662;11658:2;11654:10;11650:2;11646:19;11638:6;11634:32;11627:43;11609:75;11535:3;;;;;;;11501:193;;;;11711:6;11704:13;;;11362:362;;;:::o;4260:2492::-;4330:16;4358:11;4372:4;:12;;;;;;;;;;;;4358:26;;4394:11;4408:4;:9;;;;;;;;;;;;4394:23;;4427:19;4449:4;:11;;;4427:33;;4470:19;4492;4506:4;4492:13;:19::i;:::-;4470:41;;4562:4;:10;;:15;4573:3;4562:15;;;;;;;;;;;;;;;:21;4578:4;4562:21;;;;;;;;;;;;;;;;;:71;4611:6;4619:11;4594:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4584:48;;;;;;4562:71;;;;;;;;;;;:77;;;;;;;;;;;;4558:255;;;4659:6;4655:56;;;4685:11;4691:4;4685:5;:11::i;:::-;4655:56;4731:4;:10;;:15;4742:3;4731:15;;;;;;;;;;;;;;;:21;4747:4;4731:21;;;;;;;;;;;;;;;;;:71;4780:6;4788:11;4763:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4753:48;;;;;;4731:71;;;;;;;;;;;4724:78;;;;;;;;4558:255;685:28;677:37;;4822:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4846:18;4868:16;4879:4;4868:10;:16::i;:::-;4843:41;;;4895:22;685:28;677:37;;4922:11;;;4942:3;4922:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4894:53;;;4978:1;4962:5;:12;:17;4958:1460;;4995:74;;;;;;;;;;:::i;:::-;;;;;;;;4958:1460;5105:9;5117:5;:12;5105:24;;5100:1308;5138:1;5131:3;;;;:::i;:::-;;;;:8;5100:1308;;5160:12;685:28;677:37;;5175:7;;;5183:3;5188:5;5194:1;5188:8;;;;;;;;:::i;:::-;;;;;;;;5175:22;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5160:37;;5235:1;5227:10;;5219:4;:18;5215:114;;5266:44;5287:3;5300:5;5306:1;5300:8;;;;;;;;:::i;:::-;;;;;;;;5292:17;;5266:44;;;;;;;:::i;:::-;;;;;;;;5215:114;5352:36;5373:4;5379:5;5385:1;5379:8;;;;;;;;:::i;:::-;;;;;;;;5352:20;:36::i;:::-;5347:92;;5412:8;;;5347:92;5458:18;5478:19;5502:1;5505;5457:50;;;;5530:4;:25;;;;;;;;;;;;5526:256;;;5579:10;5646:27;5658:4;5664:5;5670:1;5664:8;;;;;;;;:::i;:::-;;;;;;;;5646:11;:27::i;:::-;5611:62;;;;;;;;;;;;5700:5;5695:69;;5733:8;;;;;;5695:69;5557:225;5526:256;5894:14;5974:11;5928:41;5945:10;5957:11;5928:16;:41::i;:::-;5920:4;5912:13;;:57;5911:74;;5894:91;;6031:6;6016:10;6008:19;;:29;6004:84;;6061:8;;;;;;6004:84;6111:89;6121:3;6126:4;6159:6;6167:11;6142:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6132:48;;;;;;6190:5;6196:1;6190:8;;;;;;;;:::i;:::-;;;;;;;;6182:17;;6111:89;;;;;;;;;:::i;:::-;;;;;;;;6312:58;;;;;;;;6329:5;6335:1;6329:8;;;;;;;;:::i;:::-;;;;;;;;6321:17;;6312:58;;;;6340:10;6312:58;;;;6352:11;6312:58;;;;6365:4;6312:58;;;;;6218:4;:10;;:15;6229:3;6218:15;;;;;;;;;;;;;;;:21;6234:4;6218:21;;;;;;;;;;;;;;;;;:71;6267:6;6275:11;6250:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6240:48;;;;;;6218:71;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6388:5;;;;;;5100:1308;;;;;6449:4;:10;;:15;6460:3;6449:15;;;;;;;;;;;;;;;:21;6465:4;6449:21;;;;;;;;;;;;;;;;;:71;6498:6;6506:11;6481:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6471:48;;;;;;6449:71;;;;;;;;;;;:77;;;;;;;;;;;;6428:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;6614:6;6610:48;;;6636:11;6642:4;6636:5;:11::i;:::-;6610:48;6674:4;:10;;:15;6685:3;6674:15;;;;;;;;;;;;;;;:21;6690:4;6674:21;;;;;;;;;;;;;;;;;:71;6723:6;6731:11;6706:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6696:48;;;;;;6674:71;;;;;;;;;;;6667:78;;;;;;;;4260:2492;;;;;:::o;12162:376::-;12252:12;12519:1;12515;12501:10;12488:11;12484:28;12479:3;12475:38;12471:46;12467:54;12454:11;12450:72;12442:80;;12162:376;;;;:::o;10879:477::-;10957:7;10976:11;11103;11128:6;11117:1;:8;:17;:41;;11157:1;11117:41;;;11148:6;11137:1;:8;:17;;;;:::i;:::-;11117:41;11103:55;;11178:2;11172:3;:8;11168:47;;;11202:2;11196:8;;11168:47;11229:9;11241:1;11229:13;;11224:106;11248:3;11244:1;:7;11224:106;;;11317:1;11313;:5;;;;:::i;:::-;11303:4;11287:20;;:1;11298;11289:6;:10;;;;:::i;:::-;11287:13;;;;;;;;:::i;:::-;;;;;;;;;;:20;11279:29;;;:40;;11272:47;;;;11253:3;;;;;;;11224:106;;;;11346:3;11339:10;;;;10879:477;;;;:::o;11730:239::-;11796:4;:12;;;11789:19;;;;;;;;;;;11825:4;:9;;;11818:16;;;;;;;;;;;11851:4;:10;;;11844:17;;;;:::i;:::-;11878:4;:11;;11871:18;;;11906:4;:25;;;11899:32;;;;;;;;;;;11948:4;:14;;;11941:21;;;;:::i;:::-;11730:239;:::o;1862:546::-;1949:4;1965:21;685:28;677:37;;1989:7;;;1997:4;:12;;;;;;;;;;;;2011:4;1989:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1965:51;;2027:12;2041:23;2068:16;2079:4;2068:10;:16::i;:::-;2026:58;;;;2095:15;2140:1;2132:10;;2113:15;:29;:65;;2176:1;2168:10;;2113:65;;;754:78;2145:20;;2113:65;2095:83;;685:28;677:37;;2188:8;;;2197:4;:12;;;;;;;;;;;;2211:4;2217:7;2188:37;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:22;2265:16;2276:4;2265:10;:16::i;:::-;2236:45;;;685:28;677:37;;2292:8;;;2301:4;:12;;;;;;;;;;;;2315:4;2321:13;2292:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2354:7;:46;;;;;2385:14;2366:15;:33;;2354:46;2346:55;;;;;;;1862:546;;;;:::o;3091:534::-;3169:4;3175:7;3184;3203:21;685:28;677:37;;3227:7;;;3235:4;:12;;;;;;;;;;;;3249:4;3227:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3203:51;;3266:14;3282:18;3304:28;3315:4;3321;3327;3304:10;:28::i;:::-;3265:67;;;;3343:15;3360:19;3383:29;3394:4;3400;3406:5;3383:10;:29::i;:::-;3342:70;;;;685:28;677:37;;3508:8;;;3517:4;:12;;;;;;;;;;;;3531:4;3537:13;3508:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3569:9;:23;;;;;3582:10;3569:23;3594:10;3606:11;3561:57;;;;;;;;;;;3091:534;;;;;:::o;2571:514::-;2659:4;2665:7;2689:14;2706:1;2689:18;;2684:368;2718:3;2709:6;:12;2684:368;;;2747:18;2768:4;:44;;2805:6;2800:1;:11;;2768:44;;;2788:6;2782:3;:12;;;;:::i;:::-;2776:1;:19;;2768:44;2747:65;;685:28;677:37;;2826:8;;;2835:4;:12;;;;;;;;;;;;2849:4;2863:10;2855:19;;2826:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2891:12;2905;2921:16;2932:4;2921:10;:16::i;:::-;2890:47;;;;2956:7;:30;;;;;2984:1;2976:4;2968:13;;:17;2956:30;2952:90;;;3014:4;3020:6;3006:21;;;;;;;;;;2952:90;2733:319;;;2723:8;;;;;;;2684:368;;;;3069:5;3076:1;3061:17;;;;2571:514;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:75::-;8451:6;8484:2;8478:9;8468:19;;8418:75;:::o;8499:117::-;8608:1;8605;8598:12;8622:117;8731:1;8728;8721:12;8745:77;8782:7;8811:5;8800:16;;8745:77;;;:::o;8828:122::-;8901:24;8919:5;8901:24;:::i;:::-;8894:5;8891:35;8881:63;;8940:1;8937;8930:12;8881:63;8828:122;:::o;8956:139::-;9002:5;9040:6;9027:20;9018:29;;9056:33;9083:5;9056:33;:::i;:::-;8956:139;;;;:::o;9101:474::-;9169:6;9177;9226:2;9214:9;9205:7;9201:23;9197:32;9194:119;;;9232:79;;:::i;:::-;9194:119;9352:1;9377:53;9422:7;9413:6;9402:9;9398:22;9377:53;:::i;:::-;9367:63;;9323:117;9479:2;9505:53;9550:7;9541:6;9530:9;9526:22;9505:53;:::i;:::-;9495:63;;9450:118;9101:474;;;;;:::o;9581:118::-;9668:24;9686:5;9668:24;:::i;:::-;9663:3;9656:37;9581:118;;:::o;9705:222::-;9798:4;9836:2;9825:9;9821:18;9813:26;;9849:71;9917:1;9906:9;9902:17;9893:6;9849:71;:::i;:::-;9705:222;;;;:::o;9933:152::-;10038:6;10072:5;10066:12;10056:22;;9933:152;;;:::o;10091:222::-;10228:11;10262:6;10257:3;10250:19;10302:4;10297:3;10293:14;10278:29;;10091:222;;;;:::o;10319:170::-;10424:4;10447:3;10439:11;;10477:4;10472:3;10468:14;10460:22;;10319:170;;;:::o;10495:113::-;10561:6;10595:5;10589:12;10579:22;;10495:113;;;:::o;10614:173::-;10702:11;10736:6;10731:3;10724:19;10776:4;10771:3;10767:14;10752:29;;10614:173;;;;:::o;10793:131::-;10859:4;10882:3;10874:11;;10912:4;10907:3;10903:14;10895:22;;10793:131;;;:::o;10930:149::-;10966:7;11006:66;10999:5;10995:78;10984:89;;10930:149;;;:::o;11085:105::-;11160:23;11177:5;11160:23;:::i;:::-;11155:3;11148:36;11085:105;;:::o;11196:175::-;11263:10;11284:44;11324:3;11316:6;11284:44;:::i;:::-;11360:4;11355:3;11351:14;11337:28;;11196:175;;;;:::o;11377:112::-;11446:4;11478;11473:3;11469:14;11461:22;;11377:112;;;:::o;11523:704::-;11630:3;11659:53;11706:5;11659:53;:::i;:::-;11728:75;11796:6;11791:3;11728:75;:::i;:::-;11721:82;;11827:55;11876:5;11827:55;:::i;:::-;11905:7;11936:1;11921:281;11946:6;11943:1;11940:13;11921:281;;;12022:6;12016:13;12049:61;12106:3;12091:13;12049:61;:::i;:::-;12042:68;;12133:59;12185:6;12133:59;:::i;:::-;12123:69;;11981:221;11968:1;11965;11961:9;11956:14;;11921:281;;;11925:14;12218:3;12211:10;;11635:592;;;11523:704;;;;:::o;12325:730::-;12460:3;12496:4;12491:3;12487:14;12587:4;12580:5;12576:16;12570:23;12640:3;12634:4;12630:14;12623:4;12618:3;12614:14;12607:38;12666:73;12734:4;12720:12;12666:73;:::i;:::-;12658:81;;12511:239;12837:4;12830:5;12826:16;12820:23;12890:3;12884:4;12880:14;12873:4;12868:3;12864:14;12857:38;12916:101;13012:4;12998:12;12916:101;:::i;:::-;12908:109;;12760:268;13045:4;13038:11;;12465:590;12325:730;;;;:::o;13061:308::-;13206:10;13241:122;13359:3;13351:6;13241:122;:::i;:::-;13227:136;;13061:308;;;;:::o;13375:151::-;13483:4;13515;13510:3;13506:14;13498:22;;13375:151;;;:::o;13628:1215::-;13823:3;13852:92;13938:5;13852:92;:::i;:::-;13960:124;14077:6;14072:3;13960:124;:::i;:::-;13953:131;;14110:3;14155:4;14147:6;14143:17;14138:3;14134:27;14185:94;14273:5;14185:94;:::i;:::-;14302:7;14333:1;14318:480;14343:6;14340:1;14337:13;14318:480;;;14414:9;14408:4;14404:20;14399:3;14392:33;14465:6;14459:13;14493:140;14628:4;14613:13;14493:140;:::i;:::-;14485:148;;14656:98;14747:6;14656:98;:::i;:::-;14646:108;;14783:4;14778:3;14774:14;14767:21;;14378:420;14365:1;14362;14358:9;14353:14;;14318:480;;;14322:14;14814:4;14807:11;;14834:3;14827:10;;13828:1015;;;;;13628:1215;;;;:::o;14849:525::-;15068:4;15106:2;15095:9;15091:18;15083:26;;15155:9;15149:4;15145:20;15141:1;15130:9;15126:17;15119:47;15183:184;15362:4;15353:6;15183:184;:::i;:::-;15175:192;;14849:525;;;;:::o;15380:194::-;15489:11;15523:6;15518:3;15511:19;15563:4;15558:3;15554:14;15539:29;;15380:194;;;;:::o;15608:991::-;15747:3;15776:64;15834:5;15776:64;:::i;:::-;15856:96;15945:6;15940:3;15856:96;:::i;:::-;15849:103;;15978:3;16023:4;16015:6;16011:17;16006:3;16002:27;16053:66;16113:5;16053:66;:::i;:::-;16142:7;16173:1;16158:396;16183:6;16180:1;16177:13;16158:396;;;16254:9;16248:4;16244:20;16239:3;16232:33;16305:6;16299:13;16333:84;16412:4;16397:13;16333:84;:::i;:::-;16325:92;;16440:70;16503:6;16440:70;:::i;:::-;16430:80;;16539:4;16534:3;16530:14;16523:21;;16218:336;16205:1;16202;16198:9;16193:14;;16158:396;;;16162:14;16570:4;16563:11;;16590:3;16583:10;;15752:847;;;;;15608:991;;;;:::o;16605:413::-;16768:4;16806:2;16795:9;16791:18;16783:26;;16855:9;16849:4;16845:20;16841:1;16830:9;16826:17;16819:47;16883:128;17006:4;16997:6;16883:128;:::i;:::-;16875:136;;16605:413;;;;:::o;17024:144::-;17121:6;17155:5;17149:12;17139:22;;17024:144;;;:::o;17174:214::-;17303:11;17337:6;17332:3;17325:19;17377:4;17372:3;17368:14;17353:29;;17174:214;;;;:::o;17394:162::-;17491:4;17514:3;17506:11;;17544:4;17539:3;17535:14;17527:22;;17394:162;;;:::o;17638:639::-;17757:3;17793:4;17788:3;17784:14;17880:4;17873:5;17869:16;17863:23;17899:63;17956:4;17951:3;17947:14;17933:12;17899:63;:::i;:::-;17808:164;18059:4;18052:5;18048:16;18042:23;18112:3;18106:4;18102:14;18095:4;18090:3;18086:14;18079:38;18138:101;18234:4;18220:12;18138:101;:::i;:::-;18130:109;;17982:268;18267:4;18260:11;;17762:515;17638:639;;;;:::o;18283:276::-;18412:10;18447:106;18549:3;18541:6;18447:106;:::i;:::-;18433:120;;18283:276;;;;:::o;18565:143::-;18665:4;18697;18692:3;18688:14;18680:22;;18565:143;;;:::o;18794:1151::-;18973:3;19002:84;19080:5;19002:84;:::i;:::-;19102:116;19211:6;19206:3;19102:116;:::i;:::-;19095:123;;19244:3;19289:4;19281:6;19277:17;19272:3;19268:27;19319:86;19399:5;19319:86;:::i;:::-;19428:7;19459:1;19444:456;19469:6;19466:1;19463:13;19444:456;;;19540:9;19534:4;19530:20;19525:3;19518:33;19591:6;19585:13;19619:124;19738:4;19723:13;19619:124;:::i;:::-;19611:132;;19766:90;19849:6;19766:90;:::i;:::-;19756:100;;19885:4;19880:3;19876:14;19869:21;;19504:396;19491:1;19488;19484:9;19479:14;;19444:456;;;19448:14;19916:4;19909:11;;19936:3;19929:10;;18978:967;;;;;18794:1151;;;;:::o;19951:493::-;20154:4;20192:2;20181:9;20177:18;20169:26;;20241:9;20235:4;20231:20;20227:1;20216:9;20212:17;20205:47;20269:168;20432:4;20423:6;20269:168;:::i;:::-;20261:176;;19951:493;;;;:::o;20450:90::-;20484:7;20527:5;20520:13;20513:21;20502:32;;20450:90;;;:::o;20546:109::-;20627:21;20642:5;20627:21;:::i;:::-;20622:3;20615:34;20546:109;;:::o;20661:210::-;20748:4;20786:2;20775:9;20771:18;20763:26;;20799:65;20861:1;20850:9;20846:17;20837:6;20799:65;:::i;:::-;20661:210;;;;:::o;20877:143::-;20934:5;20965:6;20959:13;20950:22;;20981:33;21008:5;20981:33;:::i;:::-;20877:143;;;;:::o;21026:351::-;21096:6;21145:2;21133:9;21124:7;21120:23;21116:32;21113:119;;;21151:79;;:::i;:::-;21113:119;21271:1;21296:64;21352:7;21343:6;21332:9;21328:22;21296:64;:::i;:::-;21286:74;;21242:128;21026:351;;;;:::o;21383:118::-;21470:24;21488:5;21470:24;:::i;:::-;21465:3;21458:37;21383:118;;:::o;21507:222::-;21600:4;21638:2;21627:9;21623:18;21615:26;;21651:71;21719:1;21708:9;21704:17;21695:6;21651:71;:::i;:::-;21507:222;;;;:::o;21735:332::-;21856:4;21894:2;21883:9;21879:18;21871:26;;21907:71;21975:1;21964:9;21960:17;21951:6;21907:71;:::i;:::-;21988:72;22056:2;22045:9;22041:18;22032:6;21988:72;:::i;:::-;21735:332;;;;;:::o;22073:116::-;22143:21;22158:5;22143:21;:::i;:::-;22136:5;22133:32;22123:60;;22179:1;22176;22169:12;22123:60;22073:116;:::o;22195:137::-;22249:5;22280:6;22274:13;22265:22;;22296:30;22320:5;22296:30;:::i;:::-;22195:137;;;;:::o;22338:345::-;22405:6;22454:2;22442:9;22433:7;22429:23;22425:32;22422:119;;;22460:79;;:::i;:::-;22422:119;22580:1;22605:61;22658:7;22649:6;22638:9;22634:22;22605:61;:::i;:::-;22595:71;;22551:125;22338:345;;;;:::o;22689:180::-;22737:77;22734:1;22727:88;22834:4;22831:1;22824:15;22858:4;22855:1;22848:15;22875:180;22923:77;22920:1;22913:88;23020:4;23017:1;23010:15;23044:4;23041:1;23034:15;23061:185;23101:1;23118:20;23136:1;23118:20;:::i;:::-;23113:25;;23152:20;23170:1;23152:20;:::i;:::-;23147:25;;23191:1;23181:35;;23196:18;;:::i;:::-;23181:35;23238:1;23235;23231:9;23226:14;;23061:185;;;;:::o;23252:169::-;23336:11;23370:6;23365:3;23358:19;23410:4;23405:3;23401:14;23386:29;;23252:169;;;;:::o;23427:165::-;23567:17;23563:1;23555:6;23551:14;23544:41;23427:165;:::o;23598:366::-;23740:3;23761:67;23825:2;23820:3;23761:67;:::i;:::-;23754:74;;23837:93;23926:3;23837:93;:::i;:::-;23955:2;23950:3;23946:12;23939:19;;23598:366;;;:::o;23970:419::-;24136:4;24174:2;24163:9;24159:18;24151:26;;24223:9;24217:4;24213:20;24209:1;24198:9;24194:17;24187:47;24251:131;24377:4;24251:131;:::i;:::-;24243:139;;23970:419;;;:::o;24395:117::-;24504:1;24501;24494:12;24518:117;24627:1;24624;24617:12;24641:180;24689:77;24686:1;24679:88;24786:4;24783:1;24776:15;24810:4;24807:1;24800:15;24827:281;24910:27;24932:4;24910:27;:::i;:::-;24902:6;24898:40;25040:6;25028:10;25025:22;25004:18;24992:10;24989:34;24986:62;24983:88;;;25051:18;;:::i;:::-;24983:88;25091:10;25087:2;25080:22;24870:238;24827:281;;:::o;25114:129::-;25148:6;25175:20;;:::i;:::-;25165:30;;25204:33;25232:4;25224:6;25204:33;:::i;:::-;25114:129;;;:::o;25249:308::-;25311:4;25401:18;25393:6;25390:30;25387:56;;;25423:18;;:::i;:::-;25387:56;25461:29;25483:6;25461:29;:::i;:::-;25453:37;;25545:4;25539;25535:15;25527:23;;25249:308;;;:::o;25563:434::-;25652:5;25677:66;25693:49;25735:6;25693:49;:::i;:::-;25677:66;:::i;:::-;25668:75;;25766:6;25759:5;25752:21;25804:4;25797:5;25793:16;25842:3;25833:6;25828:3;25824:16;25821:25;25818:112;;;25849:79;;:::i;:::-;25818:112;25939:52;25984:6;25979:3;25974;25939:52;:::i;:::-;25658:339;25563:434;;;;;:::o;26017:355::-;26084:5;26133:3;26126:4;26118:6;26114:17;26110:27;26100:122;;26141:79;;:::i;:::-;26100:122;26251:6;26245:13;26276:90;26362:3;26354:6;26347:4;26339:6;26335:17;26276:90;:::i;:::-;26267:99;;26090:282;26017:355;;;;:::o;26378:524::-;26458:6;26507:2;26495:9;26486:7;26482:23;26478:32;26475:119;;;26513:79;;:::i;:::-;26475:119;26654:1;26643:9;26639:17;26633:24;26684:18;26676:6;26673:30;26670:117;;;26706:79;;:::i;:::-;26670:117;26811:74;26877:7;26868:6;26857:9;26853:22;26811:74;:::i;:::-;26801:84;;26604:291;26378:524;;;;:::o;26908:180::-;26956:77;26953:1;26946:88;27053:4;27050:1;27043:15;27077:4;27074:1;27067:15;27094:320;27138:6;27175:1;27169:4;27165:12;27155:22;;27222:1;27216:4;27212:12;27243:18;27233:81;;27299:4;27291:6;27287:17;27277:27;;27233:81;27361:2;27353:6;27350:14;27330:18;27327:38;27324:84;;27380:18;;:::i;:::-;27324:84;27145:269;27094:320;;;:::o;27420:141::-;27469:4;27492:3;27484:11;;27515:3;27512:1;27505:14;27549:4;27546:1;27536:18;27528:26;;27420:141;;;:::o;27567:93::-;27604:6;27651:2;27646;27639:5;27635:14;27631:23;27621:33;;27567:93;;;:::o;27666:107::-;27710:8;27760:5;27754:4;27750:16;27729:37;;27666:107;;;;:::o;27779:393::-;27848:6;27898:1;27886:10;27882:18;27921:97;27951:66;27940:9;27921:97;:::i;:::-;28039:39;28069:8;28058:9;28039:39;:::i;:::-;28027:51;;28111:4;28107:9;28100:5;28096:21;28087:30;;28160:4;28150:8;28146:19;28139:5;28136:30;28126:40;;27855:317;;27779:393;;;;;:::o;28178:60::-;28206:3;28227:5;28220:12;;28178:60;;;:::o;28244:142::-;28294:9;28327:53;28345:34;28354:24;28372:5;28354:24;:::i;:::-;28345:34;:::i;:::-;28327:53;:::i;:::-;28314:66;;28244:142;;;:::o;28392:75::-;28435:3;28456:5;28449:12;;28392:75;;;:::o;28473:269::-;28583:39;28614:7;28583:39;:::i;:::-;28644:91;28693:41;28717:16;28693:41;:::i;:::-;28685:6;28678:4;28672:11;28644:91;:::i;:::-;28638:4;28631:105;28549:193;28473:269;;;:::o;28748:73::-;28793:3;28814:1;28807:8;;28748:73;:::o;28827:189::-;28904:32;;:::i;:::-;28945:65;29003:6;28995;28989:4;28945:65;:::i;:::-;28880:136;28827:189;;:::o;29022:214::-;29107:1;29092:138;29117:9;29114:1;29111:16;29092:138;;;29169:51;29218:1;29214;29203:9;29199:17;29169:51;:::i;:::-;29142:1;29139;29135:9;29130:14;;29092:138;;;29096:14;29022:214;;:::o;29242:746::-;29343:2;29338:3;29335:11;29332:649;;;29372:10;29367:3;29364:19;29361:610;;;29418:38;29450:5;29418:38;:::i;:::-;29493:22;29511:3;29493:22;:::i;:::-;29552:29;29570:10;29552:29;:::i;:::-;29742:2;29730:10;29727:18;29724:79;;;29784:1;29768:17;;29724:79;29853:12;29843:8;29839:27;29883:74;29943:12;29929;29925:31;29912:11;29883:74;:::i;:::-;29384:587;;;;29361:610;29332:649;29242:746;;;:::o;29994:117::-;30048:8;30098:5;30092:4;30088:16;30067:37;;29994:117;;;;:::o;30117:169::-;30161:6;30194:51;30242:1;30238:6;30230:5;30227:1;30223:13;30194:51;:::i;:::-;30190:56;30275:4;30269;30265:15;30255:25;;30168:118;30117:169;;;;:::o;30291:295::-;30367:4;30513:29;30538:3;30532:4;30513:29;:::i;:::-;30505:37;;30575:3;30572:1;30568:11;30562:4;30559:21;30551:29;;30291:295;;;;:::o;30591:1395::-;30708:37;30741:3;30708:37;:::i;:::-;30810:18;30802:6;30799:30;30796:56;;;30832:18;;:::i;:::-;30796:56;30876:38;30908:4;30902:11;30876:38;:::i;:::-;30961:67;31021:6;31013;31007:4;30961:67;:::i;:::-;31055:1;31079:4;31066:17;;31111:2;31103:6;31100:14;31128:1;31123:618;;;;31785:1;31802:6;31799:77;;;31851:9;31846:3;31842:19;31836:26;31827:35;;31799:77;31902:67;31962:6;31955:5;31902:67;:::i;:::-;31896:4;31889:81;31758:222;31093:887;;31123:618;31175:4;31171:9;31163:6;31159:22;31209:37;31241:4;31209:37;:::i;:::-;31268:1;31282:208;31296:7;31293:1;31290:14;31282:208;;;31375:9;31370:3;31366:19;31360:26;31352:6;31345:42;31426:1;31418:6;31414:14;31404:24;;31473:2;31462:9;31458:18;31445:31;;31319:4;31316:1;31312:12;31307:17;;31282:208;;;31518:6;31509:7;31506:19;31503:179;;;31576:9;31571:3;31567:19;31561:26;31619:48;31661:4;31653:6;31649:17;31638:9;31619:48;:::i;:::-;31611:6;31604:64;31526:156;31503:179;31728:1;31724;31716:6;31712:14;31708:22;31702:4;31695:36;31130:611;;;31093:887;;30683:1303;;;30591:1395;;:::o;32016:831::-;32101:3;32138:5;32132:12;32167:36;32193:9;32167:36;:::i;:::-;32219:71;32283:6;32278:3;32219:71;:::i;:::-;32212:78;;32321:1;32310:9;32306:17;32337:1;32332:164;;;;32510:1;32505:336;;;;32299:542;;32332:164;32416:4;32412:9;32401;32397:25;32392:3;32385:38;32476:6;32469:14;32462:22;32456:4;32452:33;32447:3;32443:43;32436:50;;32332:164;;32505:336;32572:38;32604:5;32572:38;:::i;:::-;32632:1;32646:154;32660:6;32657:1;32654:13;32646:154;;;32734:7;32728:14;32724:1;32719:3;32715:11;32708:35;32784:1;32775:7;32771:15;32760:26;;32682:4;32679:1;32675:12;32670:17;;32646:154;;;32829:1;32824:3;32820:11;32813:18;;32512:329;;32299:542;;32105:742;;32016:831;;;;:::o;32853:92::-;32905:7;32934:5;32923:16;;32853:92;;;:::o;32951:172::-;33016:9;33049:68;33067:49;33076:39;33109:5;33076:39;:::i;:::-;33067:49;:::i;:::-;33049:68;:::i;:::-;33036:81;;32951:172;;;:::o;33129:161::-;33231:52;33277:5;33231:52;:::i;:::-;33226:3;33219:65;33129:161;;:::o;33296:447::-;33449:4;33487:2;33476:9;33472:18;33464:26;;33536:9;33530:4;33526:20;33522:1;33511:9;33507:17;33500:47;33564:75;33634:4;33625:6;33564:75;:::i;:::-;33556:83;;33649:87;33732:2;33721:9;33717:18;33708:6;33649:87;:::i;:::-;33296:447;;;;;:::o;33749:180::-;33797:77;33794:1;33787:88;33894:4;33891:1;33884:15;33918:4;33915:1;33908:15;33935:815;34190:4;34228:3;34217:9;34213:19;34205:27;;34242:71;34310:1;34299:9;34295:17;34286:6;34242:71;:::i;:::-;34323:72;34391:2;34380:9;34376:18;34367:6;34323:72;:::i;:::-;34442:9;34436:4;34432:20;34427:2;34416:9;34412:18;34405:48;34470:108;34573:4;34564:6;34470:108;:::i;:::-;34462:116;;34588:72;34656:2;34645:9;34641:18;34632:6;34588:72;:::i;:::-;34670:73;34738:3;34727:9;34723:19;34714:6;34670:73;:::i;:::-;33935:815;;;;;;;;:::o;34756:311::-;34833:4;34923:18;34915:6;34912:30;34909:56;;;34945:18;;:::i;:::-;34909:56;34995:4;34987:6;34983:17;34975:25;;35055:4;35049;35045:15;35037:23;;34756:311;;;:::o;35073:117::-;35182:1;35179;35172:12;35213:732;35320:5;35345:81;35361:64;35418:6;35361:64;:::i;:::-;35345:81;:::i;:::-;35336:90;;35446:5;35475:6;35468:5;35461:21;35509:4;35502:5;35498:16;35491:23;;35562:4;35554:6;35550:17;35542:6;35538:30;35591:3;35583:6;35580:15;35577:122;;;35610:79;;:::i;:::-;35577:122;35725:6;35708:231;35742:6;35737:3;35734:15;35708:231;;;35817:3;35846:48;35890:3;35878:10;35846:48;:::i;:::-;35841:3;35834:61;35924:4;35919:3;35915:14;35908:21;;35784:155;35768:4;35763:3;35759:14;35752:21;;35708:231;;;35712:21;35326:619;;35213:732;;;;;:::o;35968:385::-;36050:5;36099:3;36092:4;36084:6;36080:17;36076:27;36066:122;;36107:79;;:::i;:::-;36066:122;36217:6;36211:13;36242:105;36343:3;36335:6;36328:4;36320:6;36316:17;36242:105;:::i;:::-;36233:114;;36056:297;35968:385;;;;:::o;36359:554::-;36454:6;36503:2;36491:9;36482:7;36478:23;36474:32;36471:119;;;36509:79;;:::i;:::-;36471:119;36650:1;36639:9;36635:17;36629:24;36680:18;36672:6;36669:30;36666:117;;;36702:79;;:::i;:::-;36666:117;36807:89;36888:7;36879:6;36868:9;36864:22;36807:89;:::i;:::-;36797:99;;36600:306;36359:554;;;;:::o;36919:77::-;36956:7;36985:5;36974:16;;36919:77;;;:::o;37002:118::-;37089:24;37107:5;37089:24;:::i;:::-;37084:3;37077:37;37002:118;;:::o;37126:332::-;37247:4;37285:2;37274:9;37270:18;37262:26;;37298:71;37366:1;37355:9;37351:17;37342:6;37298:71;:::i;:::-;37379:72;37447:2;37436:9;37432:18;37423:6;37379:72;:::i;:::-;37126:332;;;;;:::o;37464:122::-;37537:24;37555:5;37537:24;:::i;:::-;37530:5;37527:35;37517:63;;37576:1;37573;37566:12;37517:63;37464:122;:::o;37592:143::-;37649:5;37680:6;37674:13;37665:22;;37696:33;37723:5;37696:33;:::i;:::-;37592:143;;;;:::o;37741:351::-;37811:6;37860:2;37848:9;37839:7;37835:23;37831:32;37828:119;;;37866:79;;:::i;:::-;37828:119;37986:1;38011:64;38067:7;38058:6;38047:9;38043:22;38011:64;:::i;:::-;38001:74;;37957:128;37741:351;;;;:::o;38098:377::-;38186:3;38214:39;38247:5;38214:39;:::i;:::-;38269:71;38333:6;38328:3;38269:71;:::i;:::-;38262:78;;38349:65;38407:6;38402:3;38395:4;38388:5;38384:16;38349:65;:::i;:::-;38439:29;38461:6;38439:29;:::i;:::-;38434:3;38430:39;38423:46;;38190:285;38098:377;;;;:::o;38481:423::-;38622:4;38660:2;38649:9;38645:18;38637:26;;38709:9;38703:4;38699:20;38695:1;38684:9;38680:17;38673:47;38737:78;38810:4;38801:6;38737:78;:::i;:::-;38729:86;;38825:72;38893:2;38882:9;38878:18;38869:6;38825:72;:::i;:::-;38481:423;;;;;:::o;38910:313::-;39023:4;39061:2;39050:9;39046:18;39038:26;;39110:9;39104:4;39100:20;39096:1;39085:9;39081:17;39074:47;39138:78;39211:4;39202:6;39138:78;:::i;:::-;39130:86;;38910:313;;;;:::o;39229:98::-;39280:6;39314:5;39308:12;39298:22;;39229:98;;;:::o;39333:147::-;39434:11;39471:3;39456:18;;39333:147;;;;:::o;39486:386::-;39590:3;39618:38;39650:5;39618:38;:::i;:::-;39672:88;39753:6;39748:3;39672:88;:::i;:::-;39665:95;;39769:65;39827:6;39822:3;39815:4;39808:5;39804:16;39769:65;:::i;:::-;39859:6;39854:3;39850:16;39843:23;;39594:278;39486:386;;;;:::o;39878:271::-;40008:3;40030:93;40119:3;40110:6;40030:93;:::i;:::-;40023:100;;40140:3;40133:10;;39878:271;;;;:::o;40155:194::-;40195:4;40215:20;40233:1;40215:20;:::i;:::-;40210:25;;40249:20;40267:1;40249:20;:::i;:::-;40244:25;;40293:1;40290;40286:9;40278:17;;40317:1;40311:4;40308:11;40305:37;;;40322:18;;:::i;:::-;40305:37;40155:194;;;;:::o;40355:191::-;40395:3;40414:20;40432:1;40414:20;:::i;:::-;40409:25;;40448:20;40466:1;40448:20;:::i;:::-;40443:25;;40491:1;40488;40484:9;40477:16;;40512:3;40509:1;40506:10;40503:36;;;40519:18;;:::i;:::-;40503:36;40355:191;;;;:::o;40552:79::-;40591:7;40620:5;40609:16;;40552:79;;;:::o;40637:157::-;40742:45;40762:24;40780:5;40762:24;:::i;:::-;40742:45;:::i;:::-;40737:3;40730:58;40637:157;;:::o;40800:412::-;40958:3;40980:93;41069:3;41060:6;40980:93;:::i;:::-;40973:100;;41083:75;41154:3;41145:6;41083:75;:::i;:::-;41183:2;41178:3;41174:12;41167:19;;41203:3;41196:10;;40800:412;;;;;:::o;41218:102::-;41260:8;41307:5;41304:1;41300:13;41279:34;;41218:102;;;:::o;41326:848::-;41387:5;41394:4;41418:6;41409:15;;41442:5;41433:14;;41456:712;41477:1;41467:8;41464:15;41456:712;;;41572:4;41567:3;41563:14;41557:4;41554:24;41551:50;;;41581:18;;:::i;:::-;41551:50;41631:1;41621:8;41617:16;41614:451;;;42046:4;42039:5;42035:16;42026:25;;41614:451;42096:4;42090;42086:15;42078:23;;42126:32;42149:8;42126:32;:::i;:::-;42114:44;;41456:712;;;41326:848;;;;;;;:::o;42180:1073::-;42234:5;42425:8;42415:40;;42446:1;42437:10;;42448:5;;42415:40;42474:4;42464:36;;42491:1;42482:10;;42493:5;;42464:36;42560:4;42608:1;42603:27;;;;42644:1;42639:191;;;;42553:277;;42603:27;42621:1;42612:10;;42623:5;;;42639:191;42684:3;42674:8;42671:17;42668:43;;;42691:18;;:::i;:::-;42668:43;42740:8;42737:1;42733:16;42724:25;;42775:3;42768:5;42765:14;42762:40;;;42782:18;;:::i;:::-;42762:40;42815:5;;;42553:277;;42939:2;42929:8;42926:16;42920:3;42914:4;42911:13;42907:36;42889:2;42879:8;42876:16;42871:2;42865:4;42862:12;42858:35;42842:111;42839:246;;;42995:8;42989:4;42985:19;42976:28;;43030:3;43023:5;43020:14;43017:40;;;43037:18;;:::i;:::-;43017:40;43070:5;;42839:246;43110:42;43148:3;43138:8;43132:4;43129:1;43110:42;:::i;:::-;43095:57;;;;43184:4;43179:3;43175:14;43168:5;43165:25;43162:51;;;43193:18;;:::i;:::-;43162:51;43242:4;43235:5;43231:16;43222:25;;42180:1073;;;;;;:::o;43259:285::-;43319:5;43343:23;43361:4;43343:23;:::i;:::-;43335:31;;43387:27;43405:8;43387:27;:::i;:::-;43375:39;;43433:104;43470:66;43460:8;43454:4;43433:104;:::i;:::-;43424:113;;43259:285;;;;:::o;43550:148::-;43652:11;43689:3;43674:18;;43550:148;;;;:::o;43704:307::-;43844:34;43840:1;43832:6;43828:14;43821:58;43913:34;43908:2;43900:6;43896:15;43889:59;43982:21;43977:2;43969:6;43965:15;43958:46;43704:307;:::o;44017:402::-;44177:3;44198:85;44280:2;44275:3;44198:85;:::i;:::-;44191:92;;44292:93;44381:3;44292:93;:::i;:::-;44410:2;44405:3;44401:12;44394:19;;44017:402;;;:::o;44425:390::-;44531:3;44559:39;44592:5;44559:39;:::i;:::-;44614:89;44696:6;44691:3;44614:89;:::i;:::-;44607:96;;44712:65;44770:6;44765:3;44758:4;44751:5;44747:16;44712:65;:::i;:::-;44802:6;44797:3;44793:16;44786:23;;44535:280;44425:390;;;;:::o;44821:541::-;45054:3;45076:148;45220:3;45076:148;:::i;:::-;45069:155;;45241:95;45332:3;45323:6;45241:95;:::i;:::-;45234:102;;45353:3;45346:10;;44821:541;;;;:::o;45368:442::-;45517:4;45555:2;45544:9;45540:18;45532:26;;45568:71;45636:1;45625:9;45621:17;45612:6;45568:71;:::i;:::-;45649:72;45717:2;45706:9;45702:18;45693:6;45649:72;:::i;:::-;45731;45799:2;45788:9;45784:18;45775:6;45731:72;:::i;:::-;45368:442;;;;;;:::o;45816:247::-;45956:34;45952:1;45944:6;45940:14;45933:58;46025:30;46020:2;46012:6;46008:15;46001:55;45816:247;:::o;46069:366::-;46211:3;46232:67;46296:2;46291:3;46232:67;:::i;:::-;46225:74;;46308:93;46397:3;46308:93;:::i;:::-;46426:2;46421:3;46417:12;46410:19;;46069:366;;;:::o;46441:419::-;46607:4;46645:2;46634:9;46630:18;46622:26;;46694:9;46688:4;46684:20;46680:1;46669:9;46665:17;46658:47;46722:131;46848:4;46722:131;:::i;:::-;46714:139;;46441:419;;;:::o;46866:78::-;46904:7;46933:5;46922:16;;46866:78;;;:::o;46950:153::-;47053:43;47072:23;47089:5;47072:23;:::i;:::-;47053:43;:::i;:::-;47048:3;47041:56;46950:153;;:::o;47109:407::-;47265:3;47280:73;47349:3;47340:6;47280:73;:::i;:::-;47378:1;47373:3;47369:11;47362:18;;47397:93;47486:3;47477:6;47397:93;:::i;:::-;47390:100;;47507:3;47500:10;;47109:407;;;;;:::o;47522:410::-;47562:7;47585:20;47603:1;47585:20;:::i;:::-;47580:25;;47619:20;47637:1;47619:20;:::i;:::-;47614:25;;47674:1;47671;47667:9;47696:30;47714:11;47696:30;:::i;:::-;47685:41;;47875:1;47866:7;47862:15;47859:1;47856:22;47836:1;47829:9;47809:83;47786:139;;47905:18;;:::i;:::-;47786:139;47570:362;47522:410;;;;:::o;47938:311::-;48015:4;48105:18;48097:6;48094:30;48091:56;;;48127:18;;:::i;:::-;48091:56;48177:4;48169:6;48165:17;48157:25;;48237:4;48231;48227:15;48219:23;;47938:311;;;:::o;48272:732::-;48379:5;48404:81;48420:64;48477:6;48420:64;:::i;:::-;48404:81;:::i;:::-;48395:90;;48505:5;48534:6;48527:5;48520:21;48568:4;48561:5;48557:16;48550:23;;48621:4;48613:6;48609:17;48601:6;48597:30;48650:3;48642:6;48639:15;48636:122;;;48669:79;;:::i;:::-;48636:122;48784:6;48767:231;48801:6;48796:3;48793:15;48767:231;;;48876:3;48905:48;48949:3;48937:10;48905:48;:::i;:::-;48900:3;48893:61;48983:4;48978:3;48974:14;48967:21;;48843:155;48827:4;48822:3;48818:14;48811:21;;48767:231;;;48771:21;48385:619;;48272:732;;;;;:::o;49027:385::-;49109:5;49158:3;49151:4;49143:6;49139:17;49135:27;49125:122;;49166:79;;:::i;:::-;49125:122;49276:6;49270:13;49301:105;49402:3;49394:6;49387:4;49379:6;49375:17;49301:105;:::i;:::-;49292:114;;49115:297;49027:385;;;;:::o;49418:913::-;49547:6;49555;49604:2;49592:9;49583:7;49579:23;49575:32;49572:119;;;49610:79;;:::i;:::-;49572:119;49751:1;49740:9;49736:17;49730:24;49781:18;49773:6;49770:30;49767:117;;;49803:79;;:::i;:::-;49767:117;49908:89;49989:7;49980:6;49969:9;49965:22;49908:89;:::i;:::-;49898:99;;49701:306;50067:2;50056:9;50052:18;50046:25;50098:18;50090:6;50087:30;50084:117;;;50120:79;;:::i;:::-;50084:117;50225:89;50306:7;50297:6;50286:9;50282:22;50225:89;:::i;:::-;50215:99;;50017:307;49418:913;;;;;:::o;50337:251::-;50477:34;50473:1;50465:6;50461:14;50454:58;50546:34;50541:2;50533:6;50529:15;50522:59;50337:251;:::o;50594:366::-;50736:3;50757:67;50821:2;50816:3;50757:67;:::i;:::-;50750:74;;50833:93;50922:3;50833:93;:::i;:::-;50951:2;50946:3;50942:12;50935:19;;50594:366;;;:::o;50966:419::-;51132:4;51170:2;51159:9;51155:18;51147:26;;51219:9;51213:4;51209:20;51205:1;51194:9;51190:17;51183:47;51247:131;51373:4;51247:131;:::i;:::-;51239:139;;50966:419;;;:::o;51391:171::-;51430:3;51453:24;51471:5;51453:24;:::i;:::-;51444:33;;51499:4;51492:5;51489:15;51486:41;;51507:18;;:::i;:::-;51486:41;51554:1;51547:5;51543:13;51536:20;;51391:171;;;:::o;51568:115::-;51653:23;51670:5;51653:23;:::i;:::-;51648:3;51641:36;51568:115;;:::o;51689:549::-;51864:4;51902:3;51891:9;51887:19;51879:27;;51916:71;51984:1;51973:9;51969:17;51960:6;51916:71;:::i;:::-;51997:70;52063:2;52052:9;52048:18;52039:6;51997:70;:::i;:::-;52077:72;52145:2;52134:9;52130:18;52121:6;52077:72;:::i;:::-;52159;52227:2;52216:9;52212:18;52203:6;52159:72;:::i;:::-;51689:549;;;;;;;:::o;52244:234::-;52384:34;52380:1;52372:6;52368:14;52361:58;52453:17;52448:2;52440:6;52436:15;52429:42;52244:234;:::o;52484:366::-;52626:3;52647:67;52711:2;52706:3;52647:67;:::i;:::-;52640:74;;52723:93;52812:3;52723:93;:::i;:::-;52841:2;52836:3;52832:12;52825:19;;52484:366;;;:::o;52856:419::-;53022:4;53060:2;53049:9;53045:18;53037:26;;53109:9;53103:4;53099:20;53095:1;53084:9;53080:17;53073:47;53137:131;53263:4;53137:131;:::i;:::-;53129:139;;52856:419;;;:::o;53281:180::-;53329:77;53326:1;53319:88;53426:4;53423:1;53416:15;53450:4;53447:1;53440:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","swapBUSDtoWETH(uint256,uint256)":"4a8d75e3","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testOracleAttack()":"06c44797"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"}],\"name\":\"swapBUSDtoWETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testOracleAttack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S15_OracleManipulation/test/Oracle.t.sol\":\"OracleTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/S15_OracleManipulation/src/Oracle.sol\":{\"keccak256\":\"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d\",\"dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW\"]},\"src/S15_OracleManipulation/test/Oracle.t.sol\":{\"keccak256\":\"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d\",\"dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swapBUSDtoWETH","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testOracleAttack"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S15_OracleManipulation/test/Oracle.t.sol":"OracleTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/S15_OracleManipulation/src/Oracle.sol":{"keccak256":"0xbc27055e0855659a34a54ca42cf386e63d7b6da1f4b0530c64ff837e60955f79","urls":["bzz-raw://f6a2ba8501a04c0b6957474d44df875cacf4d3a3d9d331c32273943541b7fd6d","dweb:/ipfs/QmYgP1b7X7egNSXWJfFN2A4EErGACRGdwHNNZyGqLzcxTW"],"license":"MIT"},"src/S15_OracleManipulation/test/Oracle.t.sol":{"keccak256":"0x52742c0e9efa5ffd522340897d49ff8356c87b553f414fa6c7c69bd82de762e0","urls":["bzz-raw://9119ee918108efa213455ae5d7c68e6dcb08a745cab1290127c7a36058387e9d","dweb:/ipfs/QmYTpd2UnEpvvbGcWZo3FEM75ThhVoC9LL9HY24VkiCFRL"],"license":"MIT"}},"version":1},"id":137} \ No newline at end of file diff --git a/out/Overflow.sol/Token.json b/out/Overflow.sol/Token.json index 0a9fd357..f614f6cb 100644 --- a/out/Overflow.sol/Token.json +++ b/out/Overflow.sol/Token.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"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"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5060405161045c38038061045c8339818101604052810190602e919060ab565b8060018190555f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505060d1565b5f5ffd5b5f819050919050565b608d81607d565b81146096575f5ffd5b50565b5f8151905060a5816086565b92915050565b5f6020828403121560bd5760bc6079565b5b5f60c8848285016099565b91505092915050565b61037e806100de5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806318160ddd1461004357806370a0823114610061578063a9059cbb14610091575b5f5ffd5b61004b6100c1565b604051610058919061020b565b60405180910390f35b61007b60048036038101906100769190610282565b6100c7565b604051610088919061020b565b60405180910390f35b6100ab60048036038101906100a691906102d7565b61010c565b6040516100b8919061032f565b60405180910390f35b60015481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f825f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054031015610157575f5ffd5b815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055506001905092915050565b5f819050919050565b610205816101f3565b82525050565b5f60208201905061021e5f8301846101fc565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61025182610228565b9050919050565b61026181610247565b811461026b575f5ffd5b50565b5f8135905061027c81610258565b92915050565b5f6020828403121561029757610296610224565b5b5f6102a48482850161026e565b91505092915050565b6102b6816101f3565b81146102c0575f5ffd5b50565b5f813590506102d1816102ad565b92915050565b5f5f604083850312156102ed576102ec610224565b5b5f6102fa8582860161026e565b925050602061030b858286016102c3565b9150509250929050565b5f8115159050919050565b61032981610315565b82525050565b5f6020820190506103425f830184610320565b9291505056fea2646970667358221220f3dc91280f4c03b7bad6ec4bf43380bd0609afaccba4bad1e1c313bcebba9c7c64736f6c63430008220033","sourceMap":"58:529:131:-:0;;;142:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;218:14;204:11;:28;;;181:8;:20;190:10;181:20;;;;;;;;;;;;;;;:51;;;;142:95;58:529;;88:117:145;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;58:529:131:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806318160ddd1461004357806370a0823114610061578063a9059cbb14610091575b5f5ffd5b61004b6100c1565b604051610058919061020b565b60405180910390f35b61007b60048036038101906100769190610282565b6100c7565b604051610088919061020b565b60405180910390f35b6100ab60048036038101906100a691906102d7565b61010c565b6040516100b8919061032f565b60405180910390f35b60015481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f825f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054031015610157575f5ffd5b815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055506001905092915050565b5f819050919050565b610205816101f3565b82525050565b5f60208201905061021e5f8301846101fc565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61025182610228565b9050919050565b61026181610247565b811461026b575f5ffd5b50565b5f8135905061027c81610258565b92915050565b5f6020828403121561029757610296610224565b5b5f6102a48482850161026e565b91505092915050565b6102b6816101f3565b81146102c0575f5ffd5b50565b5f813590506102d1816102ad565b92915050565b5f5f604083850312156102ed576102ec610224565b5b5f6102fa8582860161026e565b925050602061030b858286016102c3565b9150509250929050565b5f8115159050919050565b61032981610315565b82525050565b5f6020820190506103425f830184610320565b9291505056fea2646970667358221220f3dc91280f4c03b7bad6ec4bf43380bd0609afaccba4bad1e1c313bcebba9c7c64736f6c63430008220033","sourceMap":"58:529:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;481:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;243:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;114:23;;;;:::o;481:104::-;537:12;564:8;:16;573:6;564:16;;;;;;;;;;;;;;;;557:23;;481:104;;;:::o;243:235::-;303:4;375:1;365:6;342:8;:20;351:10;342:20;;;;;;;;;;;;;;;;:29;:34;;334:43;;;;;;411:6;387:8;:20;396:10;387:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;444:6;427:8;:13;436:3;427:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;469:4;462:11;;243:235;;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:474::-;1952:6;1960;2009:2;1997:9;1988:7;1984:23;1980:32;1977:119;;;2015:79;;:::i;:::-;1977:119;2135:1;2160:53;2205:7;2196:6;2185:9;2181:22;2160:53;:::i;:::-;2150:63;;2106:117;2262:2;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2233:118;1884:474;;;;;:::o;2364:90::-;2398:7;2441:5;2434:13;2427:21;2416:32;;2364:90;;;:::o;2460:109::-;2541:21;2556:5;2541:21;:::i;:::-;2536:3;2529:34;2460:109;;:::o;2575:210::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:65;2775:1;2764:9;2760:17;2751:6;2713:65;:::i;:::-;2575:210;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S05_Overflow/Overflow.sol\":\"Token\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S05_Overflow/Overflow.sol\":{\"keccak256\":\"0xf89b6041037c030d5bd473b64b1dbeb0a1cfcaff834c539886ad70db77383c42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c46e150da4d0f04b6faa7687e3835966b85542319a48aefedf09d36401aaa03\",\"dweb:/ipfs/QmTqZdk2AUeSXqB8e5YwE9hDrTcVvhjuQAFReZoUXanSYw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"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"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S05_Overflow/Overflow.sol":"Token"},"evmVersion":"prague","libraries":{}},"sources":{"src/S05_Overflow/Overflow.sol":{"keccak256":"0xf89b6041037c030d5bd473b64b1dbeb0a1cfcaff834c539886ad70db77383c42","urls":["bzz-raw://2c46e150da4d0f04b6faa7687e3835966b85542319a48aefedf09d36401aaa03","dweb:/ipfs/QmTqZdk2AUeSXqB8e5YwE9hDrTcVvhjuQAFReZoUXanSYw"],"license":"MIT"}},"version":1},"id":131} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"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"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5060405161045c38038061045c8339818101604052810190602e919060ab565b8060018190555f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505060d1565b5f5ffd5b5f819050919050565b608d81607d565b81146096575f5ffd5b50565b5f8151905060a5816086565b92915050565b5f6020828403121560bd5760bc6079565b5b5f60c8848285016099565b91505092915050565b61037e806100de5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806318160ddd1461004357806370a0823114610061578063a9059cbb14610091575b5f5ffd5b61004b6100c1565b604051610058919061020b565b60405180910390f35b61007b60048036038101906100769190610282565b6100c7565b604051610088919061020b565b60405180910390f35b6100ab60048036038101906100a691906102d7565b61010c565b6040516100b8919061032f565b60405180910390f35b60015481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f825f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054031015610157575f5ffd5b815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055506001905092915050565b5f819050919050565b610205816101f3565b82525050565b5f60208201905061021e5f8301846101fc565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61025182610228565b9050919050565b61026181610247565b811461026b575f5ffd5b50565b5f8135905061027c81610258565b92915050565b5f6020828403121561029757610296610224565b5b5f6102a48482850161026e565b91505092915050565b6102b6816101f3565b81146102c0575f5ffd5b50565b5f813590506102d1816102ad565b92915050565b5f5f604083850312156102ed576102ec610224565b5b5f6102fa8582860161026e565b925050602061030b858286016102c3565b9150509250929050565b5f8115159050919050565b61032981610315565b82525050565b5f6020820190506103425f830184610320565b9291505056fea2646970667358221220f3dc91280f4c03b7bad6ec4bf43380bd0609afaccba4bad1e1c313bcebba9c7c64736f6c63430008220033","sourceMap":"58:529:125:-:0;;;142:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;218:14;204:11;:28;;;181:8;:20;190:10;181:20;;;;;;;;;;;;;;;:51;;;;142:95;58:529;;88:117:139;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;58:529:125:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806318160ddd1461004357806370a0823114610061578063a9059cbb14610091575b5f5ffd5b61004b6100c1565b604051610058919061020b565b60405180910390f35b61007b60048036038101906100769190610282565b6100c7565b604051610088919061020b565b60405180910390f35b6100ab60048036038101906100a691906102d7565b61010c565b6040516100b8919061032f565b60405180910390f35b60015481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f5f825f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054031015610157575f5ffd5b815f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055506001905092915050565b5f819050919050565b610205816101f3565b82525050565b5f60208201905061021e5f8301846101fc565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61025182610228565b9050919050565b61026181610247565b811461026b575f5ffd5b50565b5f8135905061027c81610258565b92915050565b5f6020828403121561029757610296610224565b5b5f6102a48482850161026e565b91505092915050565b6102b6816101f3565b81146102c0575f5ffd5b50565b5f813590506102d1816102ad565b92915050565b5f5f604083850312156102ed576102ec610224565b5b5f6102fa8582860161026e565b925050602061030b858286016102c3565b9150509250929050565b5f8115159050919050565b61032981610315565b82525050565b5f6020820190506103425f830184610320565b9291505056fea2646970667358221220f3dc91280f4c03b7bad6ec4bf43380bd0609afaccba4bad1e1c313bcebba9c7c64736f6c63430008220033","sourceMap":"58:529:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;481:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;243:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;114:23;;;;:::o;481:104::-;537:12;564:8;:16;573:6;564:16;;;;;;;;;;;;;;;;557:23;;481:104;;;:::o;243:235::-;303:4;375:1;365:6;342:8;:20;351:10;342:20;;;;;;;;;;;;;;;;:29;:34;;334:43;;;;;;411:6;387:8;:20;396:10;387:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;444:6;427:8;:13;436:3;427:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;469:4;462:11;;243:235;;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:474::-;1952:6;1960;2009:2;1997:9;1988:7;1984:23;1980:32;1977:119;;;2015:79;;:::i;:::-;1977:119;2135:1;2160:53;2205:7;2196:6;2185:9;2181:22;2160:53;:::i;:::-;2150:63;;2106:117;2262:2;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2233:118;1884:474;;;;;:::o;2364:90::-;2398:7;2441:5;2434:13;2427:21;2416:32;;2364:90;;;:::o;2460:109::-;2541:21;2556:5;2541:21;:::i;:::-;2536:3;2529:34;2460:109;;:::o;2575:210::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:65;2775:1;2764:9;2760:17;2751:6;2713:65;:::i;:::-;2575:210;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S05_Overflow/Overflow.sol\":\"Token\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S05_Overflow/Overflow.sol\":{\"keccak256\":\"0xf89b6041037c030d5bd473b64b1dbeb0a1cfcaff834c539886ad70db77383c42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c46e150da4d0f04b6faa7687e3835966b85542319a48aefedf09d36401aaa03\",\"dweb:/ipfs/QmTqZdk2AUeSXqB8e5YwE9hDrTcVvhjuQAFReZoUXanSYw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"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"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S05_Overflow/Overflow.sol":"Token"},"evmVersion":"prague","libraries":{}},"sources":{"src/S05_Overflow/Overflow.sol":{"keccak256":"0xf89b6041037c030d5bd473b64b1dbeb0a1cfcaff834c539886ad70db77383c42","urls":["bzz-raw://2c46e150da4d0f04b6faa7687e3835966b85542319a48aefedf09d36401aaa03","dweb:/ipfs/QmTqZdk2AUeSXqB8e5YwE9hDrTcVvhjuQAFReZoUXanSYw"],"license":"MIT"}},"version":1},"id":125} \ No newline at end of file diff --git a/out/Overloading.sol/Overload.json b/out/Overloading.sol/Overload.json index 8a639fbe..027ebc7b 100644 --- a/out/Overloading.sol/Overload.json +++ b/out/Overloading.sol/Overload.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"f","inputs":[{"name":"_in","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"out","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"f","inputs":[{"name":"_in","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"out","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"saySomething","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"saySomething","inputs":[{"name":"something","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104ae8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633120d4341461004e578063b3de648b1461007e578063fbd61553146100ae578063fe6b3783146100cc575b5f5ffd5b6100686004803603810190610063919061019c565b6100fc565b60405161007591906101d6565b60405180910390f35b61009860048036038101906100939190610222565b610105565b6040516100a5919061025c565b60405180910390f35b6100b661010e565b6040516100c391906102e5565b60405180910390f35b6100e660048036038101906100e19190610431565b61014b565b6040516100f391906102e5565b60405180910390f35b5f819050919050565b5f819050919050565b60606040518060400160405280600781526020017f4e6f7468696e6700000000000000000000000000000000000000000000000000815250905090565b6060819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f60ff82169050919050565b61017b81610166565b8114610185575f5ffd5b50565b5f8135905061019681610172565b92915050565b5f602082840312156101b1576101b061015e565b5b5f6101be84828501610188565b91505092915050565b6101d081610166565b82525050565b5f6020820190506101e95f8301846101c7565b92915050565b5f819050919050565b610201816101ef565b811461020b575f5ffd5b50565b5f8135905061021c816101f8565b92915050565b5f602082840312156102375761023661015e565b5b5f6102448482850161020e565b91505092915050565b610256816101ef565b82525050565b5f60208201905061026f5f83018461024d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102b782610275565b6102c1818561027f565b93506102d181856020860161028f565b6102da8161029d565b840191505092915050565b5f6020820190508181035f8301526102fd81846102ad565b905092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103438261029d565b810181811067ffffffffffffffff821117156103625761036161030d565b5b80604052505050565b5f610374610155565b9050610380828261033a565b919050565b5f67ffffffffffffffff82111561039f5761039e61030d565b5b6103a88261029d565b9050602081019050919050565b828183375f83830152505050565b5f6103d56103d084610385565b61036b565b9050828152602081018484840111156103f1576103f0610309565b5b6103fc8482856103b5565b509392505050565b5f82601f83011261041857610417610305565b5b81356104288482602086016103c3565b91505092915050565b5f602082840312156104465761044561015e565b5b5f82013567ffffffffffffffff81111561046357610462610162565b5b61046f84828501610404565b9150509291505056fea26469706673582212206b314f3d3976879d81d97068142ed6eaf770a0fa6fa45733ff3dcd52b6dfe82864736f6c63430008220033","sourceMap":"61:415:63:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633120d4341461004e578063b3de648b1461007e578063fbd61553146100ae578063fe6b3783146100cc575b5f5ffd5b6100686004803603810190610063919061019c565b6100fc565b60405161007591906101d6565b60405180910390f35b61009860048036038101906100939190610222565b610105565b6040516100a5919061025c565b60405180910390f35b6100b661010e565b6040516100c391906102e5565b60405180910390f35b6100e660048036038101906100e19190610431565b61014b565b6040516100f391906102e5565b60405180910390f35b5f819050919050565b5f819050919050565b60606040518060400160405280600781526020017f4e6f7468696e6700000000000000000000000000000000000000000000000000815250905090565b6060819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f60ff82169050919050565b61017b81610166565b8114610185575f5ffd5b50565b5f8135905061019681610172565b92915050565b5f602082840312156101b1576101b061015e565b5b5f6101be84828501610188565b91505092915050565b6101d081610166565b82525050565b5f6020820190506101e95f8301846101c7565b92915050565b5f819050919050565b610201816101ef565b811461020b575f5ffd5b50565b5f8135905061021c816101f8565b92915050565b5f602082840312156102375761023661015e565b5b5f6102448482850161020e565b91505092915050565b610256816101ef565b82525050565b5f60208201905061026f5f83018461024d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102b782610275565b6102c1818561027f565b93506102d181856020860161028f565b6102da8161029d565b840191505092915050565b5f6020820190508181035f8301526102fd81846102ad565b905092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103438261029d565b810181811067ffffffffffffffff821117156103625761036161030d565b5b80604052505050565b5f610374610155565b9050610380828261033a565b919050565b5f67ffffffffffffffff82111561039f5761039e61030d565b5b6103a88261029d565b9050602081019050919050565b828183375f83830152505050565b5f6103d56103d084610385565b61036b565b9050828152602081018484840111156103f1576103f0610309565b5b6103fc8482856103b5565b509392505050565b5f82601f83011261041857610417610305565b5b81356104288482602086016103c3565b91505092915050565b5f602082840312156104465761044561015e565b5b5f82013567ffffffffffffffff81111561046357610462610162565b5b61046f84828501610404565b9150509291505056fea26469706673582212206b314f3d3976879d81d97068142ed6eaf770a0fa6fa45733ff3dcd52b6dfe82864736f6c63430008220033","sourceMap":"61:415:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;390:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;183:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;304:80;347:9;374:3;368:9;;304:80;;;:::o;390:84::-;435:11;464:3;458:9;;390:84;;;:::o;85:92::-;129:13;153:17;;;;;;;;;;;;;;;;;;;85:92;:::o;183:115::-;250:13;281:9;274:17;;183:115;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:86;369:7;409:4;402:5;398:16;387:27;;334:86;;;:::o;426:118::-;497:22;513:5;497:22;:::i;:::-;490:5;487:33;477:61;;534:1;531;524:12;477:61;426:118;:::o;550:135::-;594:5;632:6;619:20;610:29;;648:31;673:5;648:31;:::i;:::-;550:135;;;;:::o;691:325::-;748:6;797:2;785:9;776:7;772:23;768:32;765:119;;;803:79;;:::i;:::-;765:119;923:1;948:51;991:7;982:6;971:9;967:22;948:51;:::i;:::-;938:61;;894:115;691:325;;;;:::o;1022:112::-;1105:22;1121:5;1105:22;:::i;:::-;1100:3;1093:35;1022:112;;:::o;1140:214::-;1229:4;1267:2;1256:9;1252:18;1244:26;;1280:67;1344:1;1333:9;1329:17;1320:6;1280:67;:::i;:::-;1140:214;;;;:::o;1360:77::-;1397:7;1426:5;1415:16;;1360:77;;;:::o;1443:122::-;1516:24;1534:5;1516:24;:::i;:::-;1509:5;1506:35;1496:63;;1555:1;1552;1545:12;1496:63;1443:122;:::o;1571:139::-;1617:5;1655:6;1642:20;1633:29;;1671:33;1698:5;1671:33;:::i;:::-;1571:139;;;;:::o;1716:329::-;1775:6;1824:2;1812:9;1803:7;1799:23;1795:32;1792:119;;;1830:79;;:::i;:::-;1792:119;1950:1;1975:53;2020:7;2011:6;2000:9;1996:22;1975:53;:::i;:::-;1965:63;;1921:117;1716:329;;;;:::o;2051:118::-;2138:24;2156:5;2138:24;:::i;:::-;2133:3;2126:37;2051:118;;:::o;2175:222::-;2268:4;2306:2;2295:9;2291:18;2283:26;;2319:71;2387:1;2376:9;2372:17;2363:6;2319:71;:::i;:::-;2175:222;;;;:::o;2403:99::-;2455:6;2489:5;2483:12;2473:22;;2403:99;;;:::o;2508:169::-;2592:11;2626:6;2621:3;2614:19;2666:4;2661:3;2657:14;2642:29;;2508:169;;;;:::o;2683:139::-;2772:6;2767:3;2762;2756:23;2813:1;2804:6;2799:3;2795:16;2788:27;2683:139;;;:::o;2828:102::-;2869:6;2920:2;2916:7;2911:2;2904:5;2900:14;2896:28;2886:38;;2828:102;;;:::o;2936:377::-;3024:3;3052:39;3085:5;3052:39;:::i;:::-;3107:71;3171:6;3166:3;3107:71;:::i;:::-;3100:78;;3187:65;3245:6;3240:3;3233:4;3226:5;3222:16;3187:65;:::i;:::-;3277:29;3299:6;3277:29;:::i;:::-;3272:3;3268:39;3261:46;;3028:285;2936:377;;;;:::o;3319:313::-;3432:4;3470:2;3459:9;3455:18;3447:26;;3519:9;3513:4;3509:20;3505:1;3494:9;3490:17;3483:47;3547:78;3620:4;3611:6;3547:78;:::i;:::-;3539:86;;3319:313;;;;:::o;3638:117::-;3747:1;3744;3737:12;3761:117;3870:1;3867;3860:12;3884:180;3932:77;3929:1;3922:88;4029:4;4026:1;4019:15;4053:4;4050:1;4043:15;4070:281;4153:27;4175:4;4153:27;:::i;:::-;4145:6;4141:40;4283:6;4271:10;4268:22;4247:18;4235:10;4232:34;4229:62;4226:88;;;4294:18;;:::i;:::-;4226:88;4334:10;4330:2;4323:22;4113:238;4070:281;;:::o;4357:129::-;4391:6;4418:20;;:::i;:::-;4408:30;;4447:33;4475:4;4467:6;4447:33;:::i;:::-;4357:129;;;:::o;4492:308::-;4554:4;4644:18;4636:6;4633:30;4630:56;;;4666:18;;:::i;:::-;4630:56;4704:29;4726:6;4704:29;:::i;:::-;4696:37;;4788:4;4782;4778:15;4770:23;;4492:308;;;:::o;4806:148::-;4904:6;4899:3;4894;4881:30;4945:1;4936:6;4931:3;4927:16;4920:27;4806:148;;;:::o;4960:425::-;5038:5;5063:66;5079:49;5121:6;5079:49;:::i;:::-;5063:66;:::i;:::-;5054:75;;5152:6;5145:5;5138:21;5190:4;5183:5;5179:16;5228:3;5219:6;5214:3;5210:16;5207:25;5204:112;;;5235:79;;:::i;:::-;5204:112;5325:54;5372:6;5367:3;5362;5325:54;:::i;:::-;5044:341;4960:425;;;;;:::o;5405:340::-;5461:5;5510:3;5503:4;5495:6;5491:17;5487:27;5477:122;;5518:79;;:::i;:::-;5477:122;5635:6;5622:20;5660:79;5735:3;5727:6;5720:4;5712:6;5708:17;5660:79;:::i;:::-;5651:88;;5467:278;5405:340;;;;:::o;5751:509::-;5820:6;5869:2;5857:9;5848:7;5844:23;5840:32;5837:119;;;5875:79;;:::i;:::-;5837:119;6023:1;6012:9;6008:17;5995:31;6053:18;6045:6;6042:30;6039:117;;;6075:79;;:::i;:::-;6039:117;6180:63;6235:7;6226:6;6215:9;6211:22;6180:63;:::i;:::-;6170:73;;5966:287;5751:509;;;;:::o","linkReferences":{}},"methodIdentifiers":{"f(uint256)":"b3de648b","f(uint8)":"3120d434","saySomething()":"fbd61553","saySomething(string)":"fe6b3783"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_in\",\"type\":\"uint8\"}],\"name\":\"f\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"out\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_in\",\"type\":\"uint256\"}],\"name\":\"f\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"out\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saySomething\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"something\",\"type\":\"string\"}],\"name\":\"saySomething\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/16_Overloading/Overloading.sol\":\"Overload\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/16_Overloading/Overloading.sol\":{\"keccak256\":\"0x6f55abda0308cba9fabdd6fae130870270f0ffb7524eba121c9025d258445f5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8081da304aba49015afd6b0e88930f4cc06bb38b96dcd1ab4264e2e7579681cb\",\"dweb:/ipfs/QmNgwqYCFkBB4wiqttAmbzdAa6AkKdwqbDp4uu1XymeY4i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"_in","type":"uint8"}],"stateMutability":"pure","type":"function","name":"f","outputs":[{"internalType":"uint8","name":"out","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_in","type":"uint256"}],"stateMutability":"pure","type":"function","name":"f","outputs":[{"internalType":"uint256","name":"out","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"saySomething","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"something","type":"string"}],"stateMutability":"pure","type":"function","name":"saySomething","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/16_Overloading/Overloading.sol":"Overload"},"evmVersion":"prague","libraries":{}},"sources":{"src/16_Overloading/Overloading.sol":{"keccak256":"0x6f55abda0308cba9fabdd6fae130870270f0ffb7524eba121c9025d258445f5c","urls":["bzz-raw://8081da304aba49015afd6b0e88930f4cc06bb38b96dcd1ab4264e2e7579681cb","dweb:/ipfs/QmNgwqYCFkBB4wiqttAmbzdAa6AkKdwqbDp4uu1XymeY4i"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"function","name":"f","inputs":[{"name":"_in","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"out","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"f","inputs":[{"name":"_in","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"out","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"saySomething","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"saySomething","inputs":[{"name":"something","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506104ae8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633120d4341461004e578063b3de648b1461007e578063fbd61553146100ae578063fe6b3783146100cc575b5f5ffd5b6100686004803603810190610063919061019c565b6100fc565b60405161007591906101d6565b60405180910390f35b61009860048036038101906100939190610222565b610105565b6040516100a5919061025c565b60405180910390f35b6100b661010e565b6040516100c391906102e5565b60405180910390f35b6100e660048036038101906100e19190610431565b61014b565b6040516100f391906102e5565b60405180910390f35b5f819050919050565b5f819050919050565b60606040518060400160405280600781526020017f4e6f7468696e6700000000000000000000000000000000000000000000000000815250905090565b6060819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f60ff82169050919050565b61017b81610166565b8114610185575f5ffd5b50565b5f8135905061019681610172565b92915050565b5f602082840312156101b1576101b061015e565b5b5f6101be84828501610188565b91505092915050565b6101d081610166565b82525050565b5f6020820190506101e95f8301846101c7565b92915050565b5f819050919050565b610201816101ef565b811461020b575f5ffd5b50565b5f8135905061021c816101f8565b92915050565b5f602082840312156102375761023661015e565b5b5f6102448482850161020e565b91505092915050565b610256816101ef565b82525050565b5f60208201905061026f5f83018461024d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102b782610275565b6102c1818561027f565b93506102d181856020860161028f565b6102da8161029d565b840191505092915050565b5f6020820190508181035f8301526102fd81846102ad565b905092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103438261029d565b810181811067ffffffffffffffff821117156103625761036161030d565b5b80604052505050565b5f610374610155565b9050610380828261033a565b919050565b5f67ffffffffffffffff82111561039f5761039e61030d565b5b6103a88261029d565b9050602081019050919050565b828183375f83830152505050565b5f6103d56103d084610385565b61036b565b9050828152602081018484840111156103f1576103f0610309565b5b6103fc8482856103b5565b509392505050565b5f82601f83011261041857610417610305565b5b81356104288482602086016103c3565b91505092915050565b5f602082840312156104465761044561015e565b5b5f82013567ffffffffffffffff81111561046357610462610162565b5b61046f84828501610404565b9150509291505056fea26469706673582212206b314f3d3976879d81d97068142ed6eaf770a0fa6fa45733ff3dcd52b6dfe82864736f6c63430008220033","sourceMap":"61:415:59:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633120d4341461004e578063b3de648b1461007e578063fbd61553146100ae578063fe6b3783146100cc575b5f5ffd5b6100686004803603810190610063919061019c565b6100fc565b60405161007591906101d6565b60405180910390f35b61009860048036038101906100939190610222565b610105565b6040516100a5919061025c565b60405180910390f35b6100b661010e565b6040516100c391906102e5565b60405180910390f35b6100e660048036038101906100e19190610431565b61014b565b6040516100f391906102e5565b60405180910390f35b5f819050919050565b5f819050919050565b60606040518060400160405280600781526020017f4e6f7468696e6700000000000000000000000000000000000000000000000000815250905090565b6060819050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f60ff82169050919050565b61017b81610166565b8114610185575f5ffd5b50565b5f8135905061019681610172565b92915050565b5f602082840312156101b1576101b061015e565b5b5f6101be84828501610188565b91505092915050565b6101d081610166565b82525050565b5f6020820190506101e95f8301846101c7565b92915050565b5f819050919050565b610201816101ef565b811461020b575f5ffd5b50565b5f8135905061021c816101f8565b92915050565b5f602082840312156102375761023661015e565b5b5f6102448482850161020e565b91505092915050565b610256816101ef565b82525050565b5f60208201905061026f5f83018461024d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102b782610275565b6102c1818561027f565b93506102d181856020860161028f565b6102da8161029d565b840191505092915050565b5f6020820190508181035f8301526102fd81846102ad565b905092915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103438261029d565b810181811067ffffffffffffffff821117156103625761036161030d565b5b80604052505050565b5f610374610155565b9050610380828261033a565b919050565b5f67ffffffffffffffff82111561039f5761039e61030d565b5b6103a88261029d565b9050602081019050919050565b828183375f83830152505050565b5f6103d56103d084610385565b61036b565b9050828152602081018484840111156103f1576103f0610309565b5b6103fc8482856103b5565b509392505050565b5f82601f83011261041857610417610305565b5b81356104288482602086016103c3565b91505092915050565b5f602082840312156104465761044561015e565b5b5f82013567ffffffffffffffff81111561046357610462610162565b5b61046f84828501610404565b9150509291505056fea26469706673582212206b314f3d3976879d81d97068142ed6eaf770a0fa6fa45733ff3dcd52b6dfe82864736f6c63430008220033","sourceMap":"61:415:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;390:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;85:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;183:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;304:80;347:9;374:3;368:9;;304:80;;;:::o;390:84::-;435:11;464:3;458:9;;390:84;;;:::o;85:92::-;129:13;153:17;;;;;;;;;;;;;;;;;;;85:92;:::o;183:115::-;250:13;281:9;274:17;;183:115;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:86;369:7;409:4;402:5;398:16;387:27;;334:86;;;:::o;426:118::-;497:22;513:5;497:22;:::i;:::-;490:5;487:33;477:61;;534:1;531;524:12;477:61;426:118;:::o;550:135::-;594:5;632:6;619:20;610:29;;648:31;673:5;648:31;:::i;:::-;550:135;;;;:::o;691:325::-;748:6;797:2;785:9;776:7;772:23;768:32;765:119;;;803:79;;:::i;:::-;765:119;923:1;948:51;991:7;982:6;971:9;967:22;948:51;:::i;:::-;938:61;;894:115;691:325;;;;:::o;1022:112::-;1105:22;1121:5;1105:22;:::i;:::-;1100:3;1093:35;1022:112;;:::o;1140:214::-;1229:4;1267:2;1256:9;1252:18;1244:26;;1280:67;1344:1;1333:9;1329:17;1320:6;1280:67;:::i;:::-;1140:214;;;;:::o;1360:77::-;1397:7;1426:5;1415:16;;1360:77;;;:::o;1443:122::-;1516:24;1534:5;1516:24;:::i;:::-;1509:5;1506:35;1496:63;;1555:1;1552;1545:12;1496:63;1443:122;:::o;1571:139::-;1617:5;1655:6;1642:20;1633:29;;1671:33;1698:5;1671:33;:::i;:::-;1571:139;;;;:::o;1716:329::-;1775:6;1824:2;1812:9;1803:7;1799:23;1795:32;1792:119;;;1830:79;;:::i;:::-;1792:119;1950:1;1975:53;2020:7;2011:6;2000:9;1996:22;1975:53;:::i;:::-;1965:63;;1921:117;1716:329;;;;:::o;2051:118::-;2138:24;2156:5;2138:24;:::i;:::-;2133:3;2126:37;2051:118;;:::o;2175:222::-;2268:4;2306:2;2295:9;2291:18;2283:26;;2319:71;2387:1;2376:9;2372:17;2363:6;2319:71;:::i;:::-;2175:222;;;;:::o;2403:99::-;2455:6;2489:5;2483:12;2473:22;;2403:99;;;:::o;2508:169::-;2592:11;2626:6;2621:3;2614:19;2666:4;2661:3;2657:14;2642:29;;2508:169;;;;:::o;2683:139::-;2772:6;2767:3;2762;2756:23;2813:1;2804:6;2799:3;2795:16;2788:27;2683:139;;;:::o;2828:102::-;2869:6;2920:2;2916:7;2911:2;2904:5;2900:14;2896:28;2886:38;;2828:102;;;:::o;2936:377::-;3024:3;3052:39;3085:5;3052:39;:::i;:::-;3107:71;3171:6;3166:3;3107:71;:::i;:::-;3100:78;;3187:65;3245:6;3240:3;3233:4;3226:5;3222:16;3187:65;:::i;:::-;3277:29;3299:6;3277:29;:::i;:::-;3272:3;3268:39;3261:46;;3028:285;2936:377;;;;:::o;3319:313::-;3432:4;3470:2;3459:9;3455:18;3447:26;;3519:9;3513:4;3509:20;3505:1;3494:9;3490:17;3483:47;3547:78;3620:4;3611:6;3547:78;:::i;:::-;3539:86;;3319:313;;;;:::o;3638:117::-;3747:1;3744;3737:12;3761:117;3870:1;3867;3860:12;3884:180;3932:77;3929:1;3922:88;4029:4;4026:1;4019:15;4053:4;4050:1;4043:15;4070:281;4153:27;4175:4;4153:27;:::i;:::-;4145:6;4141:40;4283:6;4271:10;4268:22;4247:18;4235:10;4232:34;4229:62;4226:88;;;4294:18;;:::i;:::-;4226:88;4334:10;4330:2;4323:22;4113:238;4070:281;;:::o;4357:129::-;4391:6;4418:20;;:::i;:::-;4408:30;;4447:33;4475:4;4467:6;4447:33;:::i;:::-;4357:129;;;:::o;4492:308::-;4554:4;4644:18;4636:6;4633:30;4630:56;;;4666:18;;:::i;:::-;4630:56;4704:29;4726:6;4704:29;:::i;:::-;4696:37;;4788:4;4782;4778:15;4770:23;;4492:308;;;:::o;4806:148::-;4904:6;4899:3;4894;4881:30;4945:1;4936:6;4931:3;4927:16;4920:27;4806:148;;;:::o;4960:425::-;5038:5;5063:66;5079:49;5121:6;5079:49;:::i;:::-;5063:66;:::i;:::-;5054:75;;5152:6;5145:5;5138:21;5190:4;5183:5;5179:16;5228:3;5219:6;5214:3;5210:16;5207:25;5204:112;;;5235:79;;:::i;:::-;5204:112;5325:54;5372:6;5367:3;5362;5325:54;:::i;:::-;5044:341;4960:425;;;;;:::o;5405:340::-;5461:5;5510:3;5503:4;5495:6;5491:17;5487:27;5477:122;;5518:79;;:::i;:::-;5477:122;5635:6;5622:20;5660:79;5735:3;5727:6;5720:4;5712:6;5708:17;5660:79;:::i;:::-;5651:88;;5467:278;5405:340;;;;:::o;5751:509::-;5820:6;5869:2;5857:9;5848:7;5844:23;5840:32;5837:119;;;5875:79;;:::i;:::-;5837:119;6023:1;6012:9;6008:17;5995:31;6053:18;6045:6;6042:30;6039:117;;;6075:79;;:::i;:::-;6039:117;6180:63;6235:7;6226:6;6215:9;6211:22;6180:63;:::i;:::-;6170:73;;5966:287;5751:509;;;;:::o","linkReferences":{}},"methodIdentifiers":{"f(uint256)":"b3de648b","f(uint8)":"3120d434","saySomething()":"fbd61553","saySomething(string)":"fe6b3783"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_in\",\"type\":\"uint8\"}],\"name\":\"f\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"out\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_in\",\"type\":\"uint256\"}],\"name\":\"f\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"out\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saySomething\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"something\",\"type\":\"string\"}],\"name\":\"saySomething\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/16_Overloading/Overloading.sol\":\"Overload\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/16_Overloading/Overloading.sol\":{\"keccak256\":\"0x6f55abda0308cba9fabdd6fae130870270f0ffb7524eba121c9025d258445f5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8081da304aba49015afd6b0e88930f4cc06bb38b96dcd1ab4264e2e7579681cb\",\"dweb:/ipfs/QmNgwqYCFkBB4wiqttAmbzdAa6AkKdwqbDp4uu1XymeY4i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"_in","type":"uint8"}],"stateMutability":"pure","type":"function","name":"f","outputs":[{"internalType":"uint8","name":"out","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"_in","type":"uint256"}],"stateMutability":"pure","type":"function","name":"f","outputs":[{"internalType":"uint256","name":"out","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"saySomething","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"something","type":"string"}],"stateMutability":"pure","type":"function","name":"saySomething","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/16_Overloading/Overloading.sol":"Overload"},"evmVersion":"prague","libraries":{}},"sources":{"src/16_Overloading/Overloading.sol":{"keccak256":"0x6f55abda0308cba9fabdd6fae130870270f0ffb7524eba121c9025d258445f5c","urls":["bzz-raw://8081da304aba49015afd6b0e88930f4cc06bb38b96dcd1ab4264e2e7579681cb","dweb:/ipfs/QmNgwqYCFkBB4wiqttAmbzdAa6AkKdwqbDp4uu1XymeY4i"],"license":"MIT"}},"version":1},"id":59} \ No newline at end of file diff --git a/out/Owner.sol/Owner.json b/out/Owner.sol/Owner.json index 2a80f853..d45480b3 100644 --- a/out/Owner.sol/Owner.json +++ b/out/Owner.sol/Owner.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"changeOwner","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610322380380610322833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b6102168061010c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610056575b5f5ffd5b610040610072565b60405161004d919061016e565b60405180910390f35b610070600480360381019061006b91906101b5565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ed575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101588261012f565b9050919050565b6101688161014e565b82525050565b5f6020820190506101815f83018461015f565b92915050565b5f5ffd5b6101948161014e565b811461019e575f5ffd5b50565b5f813590506101af8161018b565b92915050565b5f602082840312156101ca576101c9610187565b5b5f6101d7848285016101a1565b9150509291505056fea264697066735822122053d91cac74b2786801f3481ebd93eaafda2d13db25a323f64569caa2fea8486064736f6c63430008220033","sourceMap":"58:641:54:-:0;;;144:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;194:12;186:5;;:20;;;;;;;;;;;;;;;;;;144:143;58:641;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;58:641:54:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610056575b5f5ffd5b610040610072565b60405161004d919061016e565b60405180910390f35b610070600480360381019061006b91906101b5565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ed575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101588261012f565b9050919050565b6101688161014e565b82525050565b5f6020820190506101815f83018461015f565b92915050565b5f5ffd5b6101948161014e565b811461019e575f5ffd5b50565b5f813590506101af8161018b565b92915050565b5f602082840312156101ca576101c9610187565b5b5f6101d7848285016101a1565b9150509291505056fea264697066735822122053d91cac74b2786801f3481ebd93eaafda2d13db25a323f64569caa2fea8486064736f6c63430008220033","sourceMap":"58:641:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;552:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;78:20;;;;;;;;;;;;;:::o;552:145::-;362:5;;;;;;;;;;;348:19;;:10;:19;;;340:28;;;;;;626:9:::1;618:5;;:17;;;;;;;;;;;;;;;;;;552:145:::0;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"changeOwner(address)":"a6f9dae1","owner()":"8da5cb5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/11_Modifier/Owner.sol\":\"Owner\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/11_Modifier/Owner.sol\":{\"keccak256\":\"0xee04d34805fcd3ebbfa7b8483dd6752eb2bce951f8af15c4495b15c8f9c02809\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecfb7c9e702295c7c61b764a6285136da0c6e60fd4f5beda73013164fbe4ecda\",\"dweb:/ipfs/QmWmb28zsDejZfDDkWPS49GMXnFRMk7hGGUMEUoZf2a9rT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/11_Modifier/Owner.sol":"Owner"},"evmVersion":"prague","libraries":{}},"sources":{"src/11_Modifier/Owner.sol":{"keccak256":"0xee04d34805fcd3ebbfa7b8483dd6752eb2bce951f8af15c4495b15c8f9c02809","urls":["bzz-raw://ecfb7c9e702295c7c61b764a6285136da0c6e60fd4f5beda73013164fbe4ecda","dweb:/ipfs/QmWmb28zsDejZfDDkWPS49GMXnFRMk7hGGUMEUoZf2a9rT"],"license":"MIT"}},"version":1},"id":54} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"changeOwner","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610322380380610322833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b6102168061010c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610056575b5f5ffd5b610040610072565b60405161004d919061016e565b60405180910390f35b610070600480360381019061006b91906101b5565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ed575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101588261012f565b9050919050565b6101688161014e565b82525050565b5f6020820190506101815f83018461015f565b92915050565b5f5ffd5b6101948161014e565b811461019e575f5ffd5b50565b5f813590506101af8161018b565b92915050565b5f602082840312156101ca576101c9610187565b5b5f6101d7848285016101a1565b9150509291505056fea264697066735822122053d91cac74b2786801f3481ebd93eaafda2d13db25a323f64569caa2fea8486064736f6c63430008220033","sourceMap":"58:641:53:-:0;;;144:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;194:12;186:5;;:20;;;;;;;;;;;;;;;;;;144:143;58:641;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;58:641:53:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610056575b5f5ffd5b610040610072565b60405161004d919061016e565b60405180910390f35b610070600480360381019061006b91906101b5565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ed575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101588261012f565b9050919050565b6101688161014e565b82525050565b5f6020820190506101815f83018461015f565b92915050565b5f5ffd5b6101948161014e565b811461019e575f5ffd5b50565b5f813590506101af8161018b565b92915050565b5f602082840312156101ca576101c9610187565b5b5f6101d7848285016101a1565b9150509291505056fea264697066735822122053d91cac74b2786801f3481ebd93eaafda2d13db25a323f64569caa2fea8486064736f6c63430008220033","sourceMap":"58:641:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;552:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;78:20;;;;;;;;;;;;;:::o;552:145::-;362:5;;;;;;;;;;;348:19;;:10;:19;;;340:28;;;;;;626:9:::1;618:5;;:17;;;;;;;;;;;;;;;;;;552:145:::0;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o","linkReferences":{}},"methodIdentifiers":{"changeOwner(address)":"a6f9dae1","owner()":"8da5cb5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/11_Modifier/Owner.sol\":\"Owner\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/11_Modifier/Owner.sol\":{\"keccak256\":\"0xee04d34805fcd3ebbfa7b8483dd6752eb2bce951f8af15c4495b15c8f9c02809\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecfb7c9e702295c7c61b764a6285136da0c6e60fd4f5beda73013164fbe4ecda\",\"dweb:/ipfs/QmWmb28zsDejZfDDkWPS49GMXnFRMk7hGGUMEUoZf2a9rT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/11_Modifier/Owner.sol":"Owner"},"evmVersion":"prague","libraries":{}},"sources":{"src/11_Modifier/Owner.sol":{"keccak256":"0xee04d34805fcd3ebbfa7b8483dd6752eb2bce951f8af15c4495b15c8f9c02809","urls":["bzz-raw://ecfb7c9e702295c7c61b764a6285136da0c6e60fd4f5beda73013164fbe4ecda","dweb:/ipfs/QmWmb28zsDejZfDDkWPS49GMXnFRMk7hGGUMEUoZf2a9rT"],"license":"MIT"}},"version":1},"id":53} \ No newline at end of file diff --git a/out/PaymentSplit.sol/PaymentSplit.json b/out/PaymentSplit.sol/PaymentSplit.json index cb5b716e..35cdb4ef 100644 --- a/out/PaymentSplit.sol/PaymentSplit.json +++ b/out/PaymentSplit.sol/PaymentSplit.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_payees","type":"address[]","internalType":"address[]"},{"name":"_shares","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"payees","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingPayment","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_totalReceived","type":"uint256","internalType":"uint256"},{"name":"_alreadyReleased","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"releasable","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"_account","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"released","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"shares","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalReleased","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"PayeeAdded","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PaymentReceived","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PaymentReleased","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405260405161144d38038061144d833981810160405281019061002591906105e6565b8051825114610069576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610060906106dc565b60405180910390fd5b5f8251116100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610744565b60405180910390fd5b5f5f90505b825181101561010b576100fe8382815181106100d0576100cf610762565b5b60200260200101518383815181106100eb576100ea610762565b5b602002602001015161011360201b60201c565b80806001019150506100b1565b5050506109b8565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610178906107ff565b60405180910390fd5b5f81116101c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ba90610867565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610239906108f5565b60405180910390fd5b600482908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8282546102f49190610940565b925050819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac828260405161032c929190610991565b60405180910390a15050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103938261034d565b810181811067ffffffffffffffff821117156103b2576103b161035d565b5b80604052505050565b5f6103c4610338565b90506103d0828261038a565b919050565b5f67ffffffffffffffff8211156103ef576103ee61035d565b5b602082029050602081019050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61042d82610404565b9050919050565b61043d81610423565b8114610447575f5ffd5b50565b5f8151905061045881610434565b92915050565b5f61047061046b846103d5565b6103bb565b9050808382526020820190506020840283018581111561049357610492610400565b5b835b818110156104bc57806104a8888261044a565b845260208401935050602081019050610495565b5050509392505050565b5f82601f8301126104da576104d9610349565b5b81516104ea84826020860161045e565b91505092915050565b5f67ffffffffffffffff82111561050d5761050c61035d565b5b602082029050602081019050919050565b5f819050919050565b6105308161051e565b811461053a575f5ffd5b50565b5f8151905061054b81610527565b92915050565b5f61056361055e846104f3565b6103bb565b9050808382526020820190506020840283018581111561058657610585610400565b5b835b818110156105af578061059b888261053d565b845260208401935050602081019050610588565b5050509392505050565b5f82601f8301126105cd576105cc610349565b5b81516105dd848260208601610551565b91505092915050565b5f5f604083850312156105fc576105fb610341565b5b5f83015167ffffffffffffffff81111561061957610618610345565b5b610625858286016104c6565b925050602083015167ffffffffffffffff81111561064657610645610345565b5b610652858286016105b9565b9150509250929050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a2070617965657320616e6420736861725f8201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b5f6106c660328361065c565b91506106d18261066c565b604082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b7f5061796d656e7453706c69747465723a206e6f207061796565730000000000005f82015250565b5f61072e601a8361065c565b9150610739826106fa565b602082019050919050565b5f6020820190508181035f83015261075b81610722565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5061796d656e7453706c69747465723a206163636f756e7420697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f6107e9602c8361065c565b91506107f48261078f565b604082019050919050565b5f6020820190508181035f830152610816816107dd565b9050919050565b7f5061796d656e7453706c69747465723a207368617265732061726520300000005f82015250565b5f610851601d8361065c565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420616c72656164795f8201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b5f6108df602b8361065c565b91506108ea82610885565b604082019050919050565b5f6020820190508181035f83015261090c816108d3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61094a8261051e565b91506109558361051e565b925082820190508082111561096d5761096c610913565b5b92915050565b61097c81610423565b82525050565b61098b8161051e565b82525050565b5f6040820190506109a45f830185610973565b6109b16020830184610982565b9392505050565b610a88806109c55f395ff3fe60806040526004361061007e575f3560e01c80639852595c1161004d5780639852595c1461018c578063a3f8eace146101c8578063ce7c2ac214610204578063e33b7de314610240576100be565b806319165587146100c25780631b51003d146100ea5780633a98ef391461012657806363037b0c14610150576100be565b366100be577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516100b49291906105b6565b60405180910390a1005b5f5ffd5b3480156100cd575f5ffd5b506100e860048036038101906100e3919061061c565b61026a565b005b3480156100f5575f5ffd5b50610110600480360381019061010b919061069b565b610423565b60405161011d91906106eb565b60405180910390f35b348015610131575f5ffd5b5061013a61048d565b60405161014791906106eb565b60405180910390f35b34801561015b575f5ffd5b5061017660048036038101906101719190610704565b610492565b604051610183919061072f565b60405180910390f35b348015610197575f5ffd5b506101b260048036038101906101ad9190610748565b6104cd565b6040516101bf91906106eb565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e99190610748565b6104e2565b6040516101fb91906106eb565b60405180910390f35b34801561020f575f5ffd5b5061022a60048036038101906102259190610748565b610544565b60405161023791906106eb565b60405180910390f35b34801561024b575f5ffd5b50610254610559565b60405161026191906106eb565b60405180910390f35b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116102e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e0906107f3565b60405180910390fd5b5f6102f3826104e2565b90505f8103610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90610881565b60405180910390fd5b8060015f82825461034891906108cc565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461039b91906108cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156103e5573d5f5f3e3d5ffd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056828260405161041792919061095a565b60405180910390a15050565b5f815f5460025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054856104709190610981565b61047a91906109ef565b6104849190610a1f565b90509392505050565b5f5481565b600481815481106104a1575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915090505481565b5f5f600154476104f291906108cc565b905061053c838260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610423565b915050919050565b6002602052805f5260405f205f915090505481565b60015481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105888261055f565b9050919050565b6105988161057e565b82525050565b5f819050919050565b6105b08161059e565b82525050565b5f6040820190506105c95f83018561058f565b6105d660208301846105a7565b9392505050565b5f5ffd5b5f6105eb8261055f565b9050919050565b6105fb816105e1565b8114610605575f5ffd5b50565b5f81359050610616816105f2565b92915050565b5f60208284031215610631576106306105dd565b5b5f61063e84828501610608565b91505092915050565b6106508161057e565b811461065a575f5ffd5b50565b5f8135905061066b81610647565b92915050565b61067a8161059e565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b5f5f5f606084860312156106b2576106b16105dd565b5b5f6106bf8682870161065d565b93505060206106d086828701610687565b92505060406106e186828701610687565b9150509250925092565b5f6020820190506106fe5f8301846105a7565b92915050565b5f60208284031215610719576107186105dd565b5b5f61072684828501610687565b91505092915050565b5f6020820190506107425f83018461058f565b92915050565b5f6020828403121561075d5761075c6105dd565b5b5f61076a8482850161065d565b91505092915050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f205f8201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b5f6107dd602683610773565b91506107e882610783565b604082019050919050565b5f6020820190508181035f83015261080a816107d1565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f74205f8201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b5f61086b602b83610773565b915061087682610811565b604082019050919050565b5f6020820190508181035f8301526108988161085f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108d68261059e565b91506108e18361059e565b92508282019050808211156108f9576108f861089f565b5b92915050565b5f819050919050565b5f61092261091d6109188461055f565b6108ff565b61055f565b9050919050565b5f61093382610908565b9050919050565b5f61094482610929565b9050919050565b6109548161093a565b82525050565b5f60408201905061096d5f83018561094b565b61097a60208301846105a7565b9392505050565b5f61098b8261059e565b91506109968361059e565b92508282026109a48161059e565b915082820484148315176109bb576109ba61089f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109f98261059e565b9150610a048361059e565b925082610a1457610a136109c2565b5b828204905092915050565b5f610a298261059e565b9150610a348361059e565b9250828203905081811115610a4c57610a4b61089f565b5b9291505056fea264697066735822122000c8d0e7bbf8551b3eb38dab68b33e00a91f5e1d01b42d6206235c0bb188348564736f6c63430008220033","sourceMap":"257:4190:101:-:0;;;1077:533;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:7;:14;1233:7;:14;:32;1225:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;1355:1;1338:7;:14;:18;1330:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1506:9;1518:1;1506:13;;1501:103;1525:7;:14;1521:1;:18;1501:103;;;1560:33;1570:7;1578:1;1570:10;;;;;;;;:::i;:::-;;;;;;;;1582:7;1590:1;1582:10;;;;;;;;:::i;:::-;;;;;;;;1560:9;;;:33;;:::i;:::-;1541:3;;;;;;;1501:103;;;;1077:533;;257:4190;;3760:685;3906:1;3886:22;;:8;:22;;;3878:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4031:1;4014:14;:18;4006:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4139:1;4119:6;:16;4126:8;4119:16;;;;;;;;;;;;;;;;:21;4111:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4245:6;4257:8;4245:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4295:14;4276:6;:16;4283:8;4276:16;;;;;;;;;;;;;;;:33;;;;4334:14;4319:11;;:29;;;;;;;:::i;:::-;;;;;;;;4402:36;4413:8;4423:14;4402:36;;;;;;;:::i;:::-;;;;;;;;3760:685;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:311::-;3364:4;3454:18;3446:6;3443:30;3440:56;;;3476:18;;:::i;:::-;3440:56;3526:4;3518:6;3514:17;3506:25;;3586:4;3580;3576:15;3568:23;;3287:311;;;:::o;3604:77::-;3641:7;3670:5;3659:16;;3604:77;;;:::o;3687:122::-;3760:24;3778:5;3760:24;:::i;:::-;3753:5;3750:35;3740:63;;3799:1;3796;3789:12;3740:63;3687:122;:::o;3815:143::-;3872:5;3903:6;3897:13;3888:22;;3919:33;3946:5;3919:33;:::i;:::-;3815:143;;;;:::o;3981:732::-;4088:5;4113:81;4129:64;4186:6;4129:64;:::i;:::-;4113:81;:::i;:::-;4104:90;;4214:5;4243:6;4236:5;4229:21;4277:4;4270:5;4266:16;4259:23;;4330:4;4322:6;4318:17;4310:6;4306:30;4359:3;4351:6;4348:15;4345:122;;;4378:79;;:::i;:::-;4345:122;4493:6;4476:231;4510:6;4505:3;4502:15;4476:231;;;4585:3;4614:48;4658:3;4646:10;4614:48;:::i;:::-;4609:3;4602:61;4692:4;4687:3;4683:14;4676:21;;4552:155;4536:4;4531:3;4527:14;4520:21;;4476:231;;;4480:21;4094:619;;3981:732;;;;;:::o;4736:385::-;4818:5;4867:3;4860:4;4852:6;4848:17;4844:27;4834:122;;4875:79;;:::i;:::-;4834:122;4985:6;4979:13;5010:105;5111:3;5103:6;5096:4;5088:6;5084:17;5010:105;:::i;:::-;5001:114;;4824:297;4736:385;;;;:::o;5127:913::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5460:1;5449:9;5445:17;5439:24;5490:18;5482:6;5479:30;5476:117;;;5512:79;;:::i;:::-;5476:117;5617:89;5698:7;5689:6;5678:9;5674:22;5617:89;:::i;:::-;5607:99;;5410:306;5776:2;5765:9;5761:18;5755:25;5807:18;5799:6;5796:30;5793:117;;;5829:79;;:::i;:::-;5793:117;5934:89;6015:7;6006:6;5995:9;5991:22;5934:89;:::i;:::-;5924:99;;5726:307;5127:913;;;;;:::o;6046:169::-;6130:11;6164:6;6159:3;6152:19;6204:4;6199:3;6195:14;6180:29;;6046:169;;;;:::o;6221:237::-;6361:34;6357:1;6349:6;6345:14;6338:58;6430:20;6425:2;6417:6;6413:15;6406:45;6221:237;:::o;6464:366::-;6606:3;6627:67;6691:2;6686:3;6627:67;:::i;:::-;6620:74;;6703:93;6792:3;6703:93;:::i;:::-;6821:2;6816:3;6812:12;6805:19;;6464:366;;;:::o;6836:419::-;7002:4;7040:2;7029:9;7025:18;7017:26;;7089:9;7083:4;7079:20;7075:1;7064:9;7060:17;7053:47;7117:131;7243:4;7117:131;:::i;:::-;7109:139;;6836:419;;;:::o;7261:176::-;7401:28;7397:1;7389:6;7385:14;7378:52;7261:176;:::o;7443:366::-;7585:3;7606:67;7670:2;7665:3;7606:67;:::i;:::-;7599:74;;7682:93;7771:3;7682:93;:::i;:::-;7800:2;7795:3;7791:12;7784:19;;7443:366;;;:::o;7815:419::-;7981:4;8019:2;8008:9;8004:18;7996:26;;8068:9;8062:4;8058:20;8054:1;8043:9;8039:17;8032:47;8096:131;8222:4;8096:131;:::i;:::-;8088:139;;7815:419;;;:::o;8240:180::-;8288:77;8285:1;8278:88;8385:4;8382:1;8375:15;8409:4;8406:1;8399:15;8426:231;8566:34;8562:1;8554:6;8550:14;8543:58;8635:14;8630:2;8622:6;8618:15;8611:39;8426:231;:::o;8663:366::-;8805:3;8826:67;8890:2;8885:3;8826:67;:::i;:::-;8819:74;;8902:93;8991:3;8902:93;:::i;:::-;9020:2;9015:3;9011:12;9004:19;;8663:366;;;:::o;9035:419::-;9201:4;9239:2;9228:9;9224:18;9216:26;;9288:9;9282:4;9278:20;9274:1;9263:9;9259:17;9252:47;9316:131;9442:4;9316:131;:::i;:::-;9308:139;;9035:419;;;:::o;9460:179::-;9600:31;9596:1;9588:6;9584:14;9577:55;9460:179;:::o;9645:366::-;9787:3;9808:67;9872:2;9867:3;9808:67;:::i;:::-;9801:74;;9884:93;9973:3;9884:93;:::i;:::-;10002:2;9997:3;9993:12;9986:19;;9645:366;;;:::o;10017:419::-;10183:4;10221:2;10210:9;10206:18;10198:26;;10270:9;10264:4;10260:20;10256:1;10245:9;10241:17;10234:47;10298:131;10424:4;10298:131;:::i;:::-;10290:139;;10017:419;;;:::o;10442:230::-;10582:34;10578:1;10570:6;10566:14;10559:58;10651:13;10646:2;10638:6;10634:15;10627:38;10442:230;:::o;10678:366::-;10820:3;10841:67;10905:2;10900:3;10841:67;:::i;:::-;10834:74;;10917:93;11006:3;10917:93;:::i;:::-;11035:2;11030:3;11026:12;11019:19;;10678:366;;;:::o;11050:419::-;11216:4;11254:2;11243:9;11239:18;11231:26;;11303:9;11297:4;11293:20;11289:1;11278:9;11274:17;11267:47;11331:131;11457:4;11331:131;:::i;:::-;11323:139;;11050:419;;;:::o;11475:180::-;11523:77;11520:1;11513:88;11620:4;11617:1;11610:15;11644:4;11641:1;11634:15;11661:191;11701:3;11720:20;11738:1;11720:20;:::i;:::-;11715:25;;11754:20;11772:1;11754:20;:::i;:::-;11749:25;;11797:1;11794;11790:9;11783:16;;11818:3;11815:1;11812:10;11809:36;;;11825:18;;:::i;:::-;11809:36;11661:191;;;;:::o;11858:118::-;11945:24;11963:5;11945:24;:::i;:::-;11940:3;11933:37;11858:118;;:::o;11982:::-;12069:24;12087:5;12069:24;:::i;:::-;12064:3;12057:37;11982:118;;:::o;12106:332::-;12227:4;12265:2;12254:9;12250:18;12242:26;;12278:71;12346:1;12335:9;12331:17;12322:6;12278:71;:::i;:::-;12359:72;12427:2;12416:9;12412:18;12403:6;12359:72;:::i;:::-;12106:332;;;;;:::o;257:4190:101:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007e575f3560e01c80639852595c1161004d5780639852595c1461018c578063a3f8eace146101c8578063ce7c2ac214610204578063e33b7de314610240576100be565b806319165587146100c25780631b51003d146100ea5780633a98ef391461012657806363037b0c14610150576100be565b366100be577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516100b49291906105b6565b60405180910390a1005b5f5ffd5b3480156100cd575f5ffd5b506100e860048036038101906100e3919061061c565b61026a565b005b3480156100f5575f5ffd5b50610110600480360381019061010b919061069b565b610423565b60405161011d91906106eb565b60405180910390f35b348015610131575f5ffd5b5061013a61048d565b60405161014791906106eb565b60405180910390f35b34801561015b575f5ffd5b5061017660048036038101906101719190610704565b610492565b604051610183919061072f565b60405180910390f35b348015610197575f5ffd5b506101b260048036038101906101ad9190610748565b6104cd565b6040516101bf91906106eb565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e99190610748565b6104e2565b6040516101fb91906106eb565b60405180910390f35b34801561020f575f5ffd5b5061022a60048036038101906102259190610748565b610544565b60405161023791906106eb565b60405180910390f35b34801561024b575f5ffd5b50610254610559565b60405161026191906106eb565b60405180910390f35b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116102e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e0906107f3565b60405180910390fd5b5f6102f3826104e2565b90505f8103610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90610881565b60405180910390fd5b8060015f82825461034891906108cc565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461039b91906108cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156103e5573d5f5f3e3d5ffd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056828260405161041792919061095a565b60405180910390a15050565b5f815f5460025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054856104709190610981565b61047a91906109ef565b6104849190610a1f565b90509392505050565b5f5481565b600481815481106104a1575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915090505481565b5f5f600154476104f291906108cc565b905061053c838260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610423565b915050919050565b6002602052805f5260405f205f915090505481565b60015481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105888261055f565b9050919050565b6105988161057e565b82525050565b5f819050919050565b6105b08161059e565b82525050565b5f6040820190506105c95f83018561058f565b6105d660208301846105a7565b9392505050565b5f5ffd5b5f6105eb8261055f565b9050919050565b6105fb816105e1565b8114610605575f5ffd5b50565b5f81359050610616816105f2565b92915050565b5f60208284031215610631576106306105dd565b5b5f61063e84828501610608565b91505092915050565b6106508161057e565b811461065a575f5ffd5b50565b5f8135905061066b81610647565b92915050565b61067a8161059e565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b5f5f5f606084860312156106b2576106b16105dd565b5b5f6106bf8682870161065d565b93505060206106d086828701610687565b92505060406106e186828701610687565b9150509250925092565b5f6020820190506106fe5f8301846105a7565b92915050565b5f60208284031215610719576107186105dd565b5b5f61072684828501610687565b91505092915050565b5f6020820190506107425f83018461058f565b92915050565b5f6020828403121561075d5761075c6105dd565b5b5f61076a8482850161065d565b91505092915050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f205f8201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b5f6107dd602683610773565b91506107e882610783565b604082019050919050565b5f6020820190508181035f83015261080a816107d1565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f74205f8201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b5f61086b602b83610773565b915061087682610811565b604082019050919050565b5f6020820190508181035f8301526108988161085f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108d68261059e565b91506108e18361059e565b92508282019050808211156108f9576108f861089f565b5b92915050565b5f819050919050565b5f61092261091d6109188461055f565b6108ff565b61055f565b9050919050565b5f61093382610908565b9050919050565b5f61094482610929565b9050919050565b6109548161093a565b82525050565b5f60408201905061096d5f83018561094b565b61097a60208301846105a7565b9392505050565b5f61098b8261059e565b91506109968361059e565b92508282026109a48161059e565b915082820484148315176109bb576109ba61089f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109f98261059e565b9150610a048361059e565b925082610a1457610a136109c2565b5b828204905092915050565b5f610a298261059e565b9150610a348361059e565b9250828203905081811115610a4c57610a4b61089f565b5b9291505056fea264697066735822122000c8d0e7bbf8551b3eb38dab68b33e00a91f5e1d01b42d6206235c0bb188348564736f6c63430008220033","sourceMap":"257:4190:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1746:38;1762:10;1774:9;1746:38;;;;;;;:::i;:::-;;;;;;;;257:4190;;;;;2020:646;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3308:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;538:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;792:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;706:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2782:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;631:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;583:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2020:646;2158:1;2139:6;:16;2146:8;2139:16;;;;;;;;;;;;;;;;:20;2131:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2249:15;2267:20;2278:8;2267:10;:20::i;:::-;2249:38;;2350:1;2339:7;:12;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2510:7;2493:13;;:24;;;;;;;:::i;:::-;;;;;;;;2549:7;2527:8;:18;2536:8;2527:18;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;2584:8;:17;;:26;2602:7;2584:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2625:34;2641:8;2651:7;2625:34;;;;;;;:::i;:::-;;;;;;;;2078:588;2020:646;:::o;3308:308::-;3451:7;3593:16;3579:11;;3559:6;:16;3566:8;3559:16;;;;;;;;;;;;;;;;3542:14;:33;;;;:::i;:::-;3541:49;;;;:::i;:::-;:68;;;;:::i;:::-;3534:75;;3308:308;;;;;:::o;538:26::-;;;;:::o;792:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;706:43::-;;;;;;;;;;;;;;;;;:::o;2782:332::-;2841:7;2912:21;2960:13;;2936:21;:37;;;;:::i;:::-;2912:61;;3048:59;3063:8;3073:13;3088:8;:18;3097:8;3088:18;;;;;;;;;;;;;;;;3048:14;:59::i;:::-;3041:66;;;2782:332;;;:::o;631:41::-;;;;;;;;;;;;;;;;;:::o;583:28::-;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;991:117::-;1100:1;1097;1090:12;1237:104;1282:7;1311:24;1329:5;1311:24;:::i;:::-;1300:35;;1237:104;;;:::o;1347:138::-;1428:32;1454:5;1428:32;:::i;:::-;1421:5;1418:43;1408:71;;1475:1;1472;1465:12;1408:71;1347:138;:::o;1491:155::-;1545:5;1583:6;1570:20;1561:29;;1599:41;1634:5;1599:41;:::i;:::-;1491:155;;;;:::o;1652:345::-;1719:6;1768:2;1756:9;1747:7;1743:23;1739:32;1736:119;;;1774:79;;:::i;:::-;1736:119;1894:1;1919:61;1972:7;1963:6;1952:9;1948:22;1919:61;:::i;:::-;1909:71;;1865:125;1652:345;;;;:::o;2003:122::-;2076:24;2094:5;2076:24;:::i;:::-;2069:5;2066:35;2056:63;;2115:1;2112;2105:12;2056:63;2003:122;:::o;2131:139::-;2177:5;2215:6;2202:20;2193:29;;2231:33;2258:5;2231:33;:::i;:::-;2131:139;;;;:::o;2276:122::-;2349:24;2367:5;2349:24;:::i;:::-;2342:5;2339:35;2329:63;;2388:1;2385;2378:12;2329:63;2276:122;:::o;2404:139::-;2450:5;2488:6;2475:20;2466:29;;2504:33;2531:5;2504:33;:::i;:::-;2404:139;;;;:::o;2549:619::-;2626:6;2634;2642;2691:2;2679:9;2670:7;2666:23;2662:32;2659:119;;;2697:79;;:::i;:::-;2659:119;2817:1;2842:53;2887:7;2878:6;2867:9;2863:22;2842:53;:::i;:::-;2832:63;;2788:117;2944:2;2970:53;3015:7;3006:6;2995:9;2991:22;2970:53;:::i;:::-;2960:63;;2915:118;3072:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;:::i;:::-;3088:63;;3043:118;2549:619;;;;;:::o;3174:222::-;3267:4;3305:2;3294:9;3290:18;3282:26;;3318:71;3386:1;3375:9;3371:17;3362:6;3318:71;:::i;:::-;3174:222;;;;:::o;3402:329::-;3461:6;3510:2;3498:9;3489:7;3485:23;3481:32;3478:119;;;3516:79;;:::i;:::-;3478:119;3636:1;3661:53;3706:7;3697:6;3686:9;3682:22;3661:53;:::i;:::-;3651:63;;3607:117;3402:329;;;;:::o;3737:222::-;3830:4;3868:2;3857:9;3853:18;3845:26;;3881:71;3949:1;3938:9;3934:17;3925:6;3881:71;:::i;:::-;3737:222;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;3965:329;;;;:::o;4300:169::-;4384:11;4418:6;4413:3;4406:19;4458:4;4453:3;4449:14;4434:29;;4300:169;;;;:::o;4475:225::-;4615:34;4611:1;4603:6;4599:14;4592:58;4684:8;4679:2;4671:6;4667:15;4660:33;4475:225;:::o;4706:366::-;4848:3;4869:67;4933:2;4928:3;4869:67;:::i;:::-;4862:74;;4945:93;5034:3;4945:93;:::i;:::-;5063:2;5058:3;5054:12;5047:19;;4706:366;;;:::o;5078:419::-;5244:4;5282:2;5271:9;5267:18;5259:26;;5331:9;5325:4;5321:20;5317:1;5306:9;5302:17;5295:47;5359:131;5485:4;5359:131;:::i;:::-;5351:139;;5078:419;;;:::o;5503:230::-;5643:34;5639:1;5631:6;5627:14;5620:58;5712:13;5707:2;5699:6;5695:15;5688:38;5503:230;:::o;5739:366::-;5881:3;5902:67;5966:2;5961:3;5902:67;:::i;:::-;5895:74;;5978:93;6067:3;5978:93;:::i;:::-;6096:2;6091:3;6087:12;6080:19;;5739:366;;;:::o;6111:419::-;6277:4;6315:2;6304:9;6300:18;6292:26;;6364:9;6358:4;6354:20;6350:1;6339:9;6335:17;6328:47;6392:131;6518:4;6392:131;:::i;:::-;6384:139;;6111:419;;;:::o;6536:180::-;6584:77;6581:1;6574:88;6681:4;6678:1;6671:15;6705:4;6702:1;6695:15;6722:191;6762:3;6781:20;6799:1;6781:20;:::i;:::-;6776:25;;6815:20;6833:1;6815:20;:::i;:::-;6810:25;;6858:1;6855;6851:9;6844:16;;6879:3;6876:1;6873:10;6870:36;;;6886:18;;:::i;:::-;6870:36;6722:191;;;;:::o;6919:60::-;6947:3;6968:5;6961:12;;6919:60;;;:::o;6985:142::-;7035:9;7068:53;7086:34;7095:24;7113:5;7095:24;:::i;:::-;7086:34;:::i;:::-;7068:53;:::i;:::-;7055:66;;6985:142;;;:::o;7133:126::-;7183:9;7216:37;7247:5;7216:37;:::i;:::-;7203:50;;7133:126;;;:::o;7265:134::-;7323:9;7356:37;7387:5;7356:37;:::i;:::-;7343:50;;7265:134;;;:::o;7405:147::-;7500:45;7539:5;7500:45;:::i;:::-;7495:3;7488:58;7405:147;;:::o;7558:348::-;7687:4;7725:2;7714:9;7710:18;7702:26;;7738:79;7814:1;7803:9;7799:17;7790:6;7738:79;:::i;:::-;7827:72;7895:2;7884:9;7880:18;7871:6;7827:72;:::i;:::-;7558:348;;;;;:::o;7912:410::-;7952:7;7975:20;7993:1;7975:20;:::i;:::-;7970:25;;8009:20;8027:1;8009:20;:::i;:::-;8004:25;;8064:1;8061;8057:9;8086:30;8104:11;8086:30;:::i;:::-;8075:41;;8265:1;8256:7;8252:15;8249:1;8246:22;8226:1;8219:9;8199:83;8176:139;;8295:18;;:::i;:::-;8176:139;7960:362;7912:410;;;;:::o;8328:180::-;8376:77;8373:1;8366:88;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8514:185;8554:1;8571:20;8589:1;8571:20;:::i;:::-;8566:25;;8605:20;8623:1;8605:20;:::i;:::-;8600:25;;8644:1;8634:35;;8649:18;;:::i;:::-;8634:35;8691:1;8688;8684:9;8679:14;;8514:185;;;;:::o;8705:194::-;8745:4;8765:20;8783:1;8765:20;:::i;:::-;8760:25;;8799:20;8817:1;8799:20;:::i;:::-;8794:25;;8843:1;8840;8836:9;8828:17;;8867:1;8861:4;8858:11;8855:37;;;8872:18;;:::i;:::-;8855:37;8705:194;;;;:::o","linkReferences":{}},"methodIdentifiers":{"payees(uint256)":"63037b0c","pendingPayment(address,uint256,uint256)":"1b51003d","releasable(address)":"a3f8eace","release(address)":"19165587","released(address)":"9852595c","shares(address)":"ce7c2ac2","totalReleased()":"e33b7de3","totalShares()":"3a98ef39"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_payees\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_shares\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"payees\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_totalReceived\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_alreadyReleased\",\"type\":\"uint256\"}],\"name\":\"pendingPayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4f1a\\u628a\\u6536\\u5230\\u7684ETH\\u6309\\u4e8b\\u5148\\u5b9a\\u597d\\u7684\\u4efd\\u989d\\u5206\\u7ed9\\u51e0\\u4e2a\\u8d26\\u6237\\u3002\\u6536\\u5230ETH\\u4f1a\\u5b58\\u5728\\u5206\\u8d26\\u5408\\u7ea6\\u4e2d\\uff0c\\u9700\\u8981\\u6bcf\\u4e2a\\u53d7\\u76ca\\u4eba\\u8c03\\u7528release()\\u51fd\\u6570\\u6765\\u9886\\u53d6\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u53d7\\u76ca\\u4eba\\u6570\\u7ec4_payees\\u548c\\u5206\\u8d26\\u4efd\\u989d\\u6570\\u7ec4_shares \\u6570\\u7ec4\\u957f\\u5ea6\\u4e0d\\u80fd\\u4e3a0\\uff0c\\u4e24\\u4e2a\\u6570\\u7ec4\\u957f\\u5ea6\\u8981\\u76f8\\u7b49\\u3002_shares\\u4e2d\\u5143\\u7d20\\u8981\\u5927\\u4e8e0\\uff0c_payees\\u4e2d\\u5730\\u5740\\u4e0d\\u80fd\\u4e3a0\\u5730\\u5740\\u4e14\\u4e0d\\u80fd\\u6709\\u91cd\\u590d\\u5730\\u5740\"},\"pendingPayment(address,uint256,uint256)\":{\"details\":\"\\u6839\\u636e\\u53d7\\u76ca\\u4eba\\u5730\\u5740`_account`, \\u5206\\u8d26\\u5408\\u7ea6\\u603b\\u6536\\u5165`_totalReceived`\\u548c\\u8be5\\u5730\\u5740\\u5df2\\u9886\\u53d6\\u7684\\u94b1`_alreadyReleased`\\uff0c\\u8ba1\\u7b97\\u8be5\\u53d7\\u76ca\\u4eba\\u73b0\\u5728\\u5e94\\u5206\\u7684`ETH`\\u3002\"},\"releasable(address)\":{\"details\":\"\\u8ba1\\u7b97\\u4e00\\u4e2a\\u8d26\\u6237\\u80fd\\u591f\\u9886\\u53d6\\u7684eth\\u3002 \\u8c03\\u7528\\u4e86pendingPayment()\\u51fd\\u6570\\u3002\"},\"release(address)\":{\"details\":\"\\u4e3a\\u6709\\u6548\\u53d7\\u76ca\\u4eba\\u5730\\u5740_account\\u5206\\u5e10\\uff0c\\u76f8\\u5e94\\u7684ETH\\u76f4\\u63a5\\u53d1\\u9001\\u5230\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\u3002\\u4efb\\u4f55\\u4eba\\u90fd\\u53ef\\u4ee5\\u89e6\\u53d1\\u8fd9\\u4e2a\\u51fd\\u6570\\uff0c\\u4f46\\u94b1\\u4f1a\\u6253\\u7ed9account\\u5730\\u5740\\u3002 \\u8c03\\u7528\\u4e86releasable()\\u51fd\\u6570\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"\\u5206\\u8d26\\u5408\\u7ea6 \",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/42_PaymentSplit/PaymentSplit.sol\":\"PaymentSplit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/42_PaymentSplit/PaymentSplit.sol\":{\"keccak256\":\"0x71ad193e6c92b64e49fd0941c8805ce5bfb37f3f8893299ab850058a36cff5b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dca6e8b4be9b382fffc0e57293dc9e5cf5e15b84e3d2fffed9ba322b8eb242a\",\"dweb:/ipfs/QmVAorc8D5FWD4w3THQ38GPDyhYd64tdDjrawkiR1XpgnB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_payees","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"PayeeAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PaymentReceived","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PaymentReleased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"payees","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_totalReceived","type":"uint256"},{"internalType":"uint256","name":"_alreadyReleased","type":"uint256"}],"stateMutability":"view","type":"function","name":"pendingPayment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address payable","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化受益人数组_payees和分账份额数组_shares 数组长度不能为0,两个数组长度要相等。_shares中元素要大于0,_payees中地址不能为0地址且不能有重复地址"},"pendingPayment(address,uint256,uint256)":{"details":"根据受益人地址`_account`, 分账合约总收入`_totalReceived`和该地址已领取的钱`_alreadyReleased`,计算该受益人现在应分的`ETH`。"},"releasable(address)":{"details":"计算一个账户能够领取的eth。 调用了pendingPayment()函数。"},"release(address)":{"details":"为有效受益人地址_account分帐,相应的ETH直接发送到受益人地址。任何人都可以触发这个函数,但钱会打给account地址。 调用了releasable()函数。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/42_PaymentSplit/PaymentSplit.sol":"PaymentSplit"},"evmVersion":"prague","libraries":{}},"sources":{"src/42_PaymentSplit/PaymentSplit.sol":{"keccak256":"0x71ad193e6c92b64e49fd0941c8805ce5bfb37f3f8893299ab850058a36cff5b3","urls":["bzz-raw://0dca6e8b4be9b382fffc0e57293dc9e5cf5e15b84e3d2fffed9ba322b8eb242a","dweb:/ipfs/QmVAorc8D5FWD4w3THQ38GPDyhYd64tdDjrawkiR1XpgnB"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_payees","type":"address[]","internalType":"address[]"},{"name":"_shares","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"payees","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingPayment","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_totalReceived","type":"uint256","internalType":"uint256"},{"name":"_alreadyReleased","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"releasable","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"_account","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"released","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"shares","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalReleased","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"PayeeAdded","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PaymentReceived","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PaymentReleased","inputs":[{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405260405161144d38038061144d833981810160405281019061002591906105e6565b8051825114610069576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610060906106dc565b60405180910390fd5b5f8251116100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610744565b60405180910390fd5b5f5f90505b825181101561010b576100fe8382815181106100d0576100cf610762565b5b60200260200101518383815181106100eb576100ea610762565b5b602002602001015161011360201b60201c565b80806001019150506100b1565b5050506109b8565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610178906107ff565b60405180910390fd5b5f81116101c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ba90610867565b60405180910390fd5b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610239906108f5565b60405180910390fd5b600482908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550805f5f8282546102f49190610940565b925050819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac828260405161032c929190610991565b60405180910390a15050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103938261034d565b810181811067ffffffffffffffff821117156103b2576103b161035d565b5b80604052505050565b5f6103c4610338565b90506103d0828261038a565b919050565b5f67ffffffffffffffff8211156103ef576103ee61035d565b5b602082029050602081019050919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61042d82610404565b9050919050565b61043d81610423565b8114610447575f5ffd5b50565b5f8151905061045881610434565b92915050565b5f61047061046b846103d5565b6103bb565b9050808382526020820190506020840283018581111561049357610492610400565b5b835b818110156104bc57806104a8888261044a565b845260208401935050602081019050610495565b5050509392505050565b5f82601f8301126104da576104d9610349565b5b81516104ea84826020860161045e565b91505092915050565b5f67ffffffffffffffff82111561050d5761050c61035d565b5b602082029050602081019050919050565b5f819050919050565b6105308161051e565b811461053a575f5ffd5b50565b5f8151905061054b81610527565b92915050565b5f61056361055e846104f3565b6103bb565b9050808382526020820190506020840283018581111561058657610585610400565b5b835b818110156105af578061059b888261053d565b845260208401935050602081019050610588565b5050509392505050565b5f82601f8301126105cd576105cc610349565b5b81516105dd848260208601610551565b91505092915050565b5f5f604083850312156105fc576105fb610341565b5b5f83015167ffffffffffffffff81111561061957610618610345565b5b610625858286016104c6565b925050602083015167ffffffffffffffff81111561064657610645610345565b5b610652858286016105b9565b9150509250929050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a2070617965657320616e6420736861725f8201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b5f6106c660328361065c565b91506106d18261066c565b604082019050919050565b5f6020820190508181035f8301526106f3816106ba565b9050919050565b7f5061796d656e7453706c69747465723a206e6f207061796565730000000000005f82015250565b5f61072e601a8361065c565b9150610739826106fa565b602082019050919050565b5f6020820190508181035f83015261075b81610722565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5061796d656e7453706c69747465723a206163636f756e7420697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f6107e9602c8361065c565b91506107f48261078f565b604082019050919050565b5f6020820190508181035f830152610816816107dd565b9050919050565b7f5061796d656e7453706c69747465723a207368617265732061726520300000005f82015250565b5f610851601d8361065c565b915061085c8261081d565b602082019050919050565b5f6020820190508181035f83015261087e81610845565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420616c72656164795f8201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b5f6108df602b8361065c565b91506108ea82610885565b604082019050919050565b5f6020820190508181035f83015261090c816108d3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61094a8261051e565b91506109558361051e565b925082820190508082111561096d5761096c610913565b5b92915050565b61097c81610423565b82525050565b61098b8161051e565b82525050565b5f6040820190506109a45f830185610973565b6109b16020830184610982565b9392505050565b610a88806109c55f395ff3fe60806040526004361061007e575f3560e01c80639852595c1161004d5780639852595c1461018c578063a3f8eace146101c8578063ce7c2ac214610204578063e33b7de314610240576100be565b806319165587146100c25780631b51003d146100ea5780633a98ef391461012657806363037b0c14610150576100be565b366100be577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516100b49291906105b6565b60405180910390a1005b5f5ffd5b3480156100cd575f5ffd5b506100e860048036038101906100e3919061061c565b61026a565b005b3480156100f5575f5ffd5b50610110600480360381019061010b919061069b565b610423565b60405161011d91906106eb565b60405180910390f35b348015610131575f5ffd5b5061013a61048d565b60405161014791906106eb565b60405180910390f35b34801561015b575f5ffd5b5061017660048036038101906101719190610704565b610492565b604051610183919061072f565b60405180910390f35b348015610197575f5ffd5b506101b260048036038101906101ad9190610748565b6104cd565b6040516101bf91906106eb565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e99190610748565b6104e2565b6040516101fb91906106eb565b60405180910390f35b34801561020f575f5ffd5b5061022a60048036038101906102259190610748565b610544565b60405161023791906106eb565b60405180910390f35b34801561024b575f5ffd5b50610254610559565b60405161026191906106eb565b60405180910390f35b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116102e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e0906107f3565b60405180910390fd5b5f6102f3826104e2565b90505f8103610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90610881565b60405180910390fd5b8060015f82825461034891906108cc565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461039b91906108cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156103e5573d5f5f3e3d5ffd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056828260405161041792919061095a565b60405180910390a15050565b5f815f5460025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054856104709190610981565b61047a91906109ef565b6104849190610a1f565b90509392505050565b5f5481565b600481815481106104a1575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915090505481565b5f5f600154476104f291906108cc565b905061053c838260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610423565b915050919050565b6002602052805f5260405f205f915090505481565b60015481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105888261055f565b9050919050565b6105988161057e565b82525050565b5f819050919050565b6105b08161059e565b82525050565b5f6040820190506105c95f83018561058f565b6105d660208301846105a7565b9392505050565b5f5ffd5b5f6105eb8261055f565b9050919050565b6105fb816105e1565b8114610605575f5ffd5b50565b5f81359050610616816105f2565b92915050565b5f60208284031215610631576106306105dd565b5b5f61063e84828501610608565b91505092915050565b6106508161057e565b811461065a575f5ffd5b50565b5f8135905061066b81610647565b92915050565b61067a8161059e565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b5f5f5f606084860312156106b2576106b16105dd565b5b5f6106bf8682870161065d565b93505060206106d086828701610687565b92505060406106e186828701610687565b9150509250925092565b5f6020820190506106fe5f8301846105a7565b92915050565b5f60208284031215610719576107186105dd565b5b5f61072684828501610687565b91505092915050565b5f6020820190506107425f83018461058f565b92915050565b5f6020828403121561075d5761075c6105dd565b5b5f61076a8482850161065d565b91505092915050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f205f8201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b5f6107dd602683610773565b91506107e882610783565b604082019050919050565b5f6020820190508181035f83015261080a816107d1565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f74205f8201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b5f61086b602b83610773565b915061087682610811565b604082019050919050565b5f6020820190508181035f8301526108988161085f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108d68261059e565b91506108e18361059e565b92508282019050808211156108f9576108f861089f565b5b92915050565b5f819050919050565b5f61092261091d6109188461055f565b6108ff565b61055f565b9050919050565b5f61093382610908565b9050919050565b5f61094482610929565b9050919050565b6109548161093a565b82525050565b5f60408201905061096d5f83018561094b565b61097a60208301846105a7565b9392505050565b5f61098b8261059e565b91506109968361059e565b92508282026109a48161059e565b915082820484148315176109bb576109ba61089f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109f98261059e565b9150610a048361059e565b925082610a1457610a136109c2565b5b828204905092915050565b5f610a298261059e565b9150610a348361059e565b9250828203905081811115610a4c57610a4b61089f565b5b9291505056fea264697066735822122000c8d0e7bbf8551b3eb38dab68b33e00a91f5e1d01b42d6206235c0bb188348564736f6c63430008220033","sourceMap":"257:4190:95:-:0;;;1077:533;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:7;:14;1233:7;:14;:32;1225:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;1355:1;1338:7;:14;:18;1330:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1506:9;1518:1;1506:13;;1501:103;1525:7;:14;1521:1;:18;1501:103;;;1560:33;1570:7;1578:1;1570:10;;;;;;;;:::i;:::-;;;;;;;;1582:7;1590:1;1582:10;;;;;;;;:::i;:::-;;;;;;;;1560:9;;;:33;;:::i;:::-;1541:3;;;;;;;1501:103;;;;1077:533;;257:4190;;3760:685;3906:1;3886:22;;:8;:22;;;3878:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4031:1;4014:14;:18;4006:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4139:1;4119:6;:16;4126:8;4119:16;;;;;;;;;;;;;;;;:21;4111:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4245:6;4257:8;4245:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4295:14;4276:6;:16;4283:8;4276:16;;;;;;;;;;;;;;;:33;;;;4334:14;4319:11;;:29;;;;;;;:::i;:::-;;;;;;;;4402:36;4413:8;4423:14;4402:36;;;;;;;:::i;:::-;;;;;;;;3760:685;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:311::-;3364:4;3454:18;3446:6;3443:30;3440:56;;;3476:18;;:::i;:::-;3440:56;3526:4;3518:6;3514:17;3506:25;;3586:4;3580;3576:15;3568:23;;3287:311;;;:::o;3604:77::-;3641:7;3670:5;3659:16;;3604:77;;;:::o;3687:122::-;3760:24;3778:5;3760:24;:::i;:::-;3753:5;3750:35;3740:63;;3799:1;3796;3789:12;3740:63;3687:122;:::o;3815:143::-;3872:5;3903:6;3897:13;3888:22;;3919:33;3946:5;3919:33;:::i;:::-;3815:143;;;;:::o;3981:732::-;4088:5;4113:81;4129:64;4186:6;4129:64;:::i;:::-;4113:81;:::i;:::-;4104:90;;4214:5;4243:6;4236:5;4229:21;4277:4;4270:5;4266:16;4259:23;;4330:4;4322:6;4318:17;4310:6;4306:30;4359:3;4351:6;4348:15;4345:122;;;4378:79;;:::i;:::-;4345:122;4493:6;4476:231;4510:6;4505:3;4502:15;4476:231;;;4585:3;4614:48;4658:3;4646:10;4614:48;:::i;:::-;4609:3;4602:61;4692:4;4687:3;4683:14;4676:21;;4552:155;4536:4;4531:3;4527:14;4520:21;;4476:231;;;4480:21;4094:619;;3981:732;;;;;:::o;4736:385::-;4818:5;4867:3;4860:4;4852:6;4848:17;4844:27;4834:122;;4875:79;;:::i;:::-;4834:122;4985:6;4979:13;5010:105;5111:3;5103:6;5096:4;5088:6;5084:17;5010:105;:::i;:::-;5001:114;;4824:297;4736:385;;;;:::o;5127:913::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5460:1;5449:9;5445:17;5439:24;5490:18;5482:6;5479:30;5476:117;;;5512:79;;:::i;:::-;5476:117;5617:89;5698:7;5689:6;5678:9;5674:22;5617:89;:::i;:::-;5607:99;;5410:306;5776:2;5765:9;5761:18;5755:25;5807:18;5799:6;5796:30;5793:117;;;5829:79;;:::i;:::-;5793:117;5934:89;6015:7;6006:6;5995:9;5991:22;5934:89;:::i;:::-;5924:99;;5726:307;5127:913;;;;;:::o;6046:169::-;6130:11;6164:6;6159:3;6152:19;6204:4;6199:3;6195:14;6180:29;;6046:169;;;;:::o;6221:237::-;6361:34;6357:1;6349:6;6345:14;6338:58;6430:20;6425:2;6417:6;6413:15;6406:45;6221:237;:::o;6464:366::-;6606:3;6627:67;6691:2;6686:3;6627:67;:::i;:::-;6620:74;;6703:93;6792:3;6703:93;:::i;:::-;6821:2;6816:3;6812:12;6805:19;;6464:366;;;:::o;6836:419::-;7002:4;7040:2;7029:9;7025:18;7017:26;;7089:9;7083:4;7079:20;7075:1;7064:9;7060:17;7053:47;7117:131;7243:4;7117:131;:::i;:::-;7109:139;;6836:419;;;:::o;7261:176::-;7401:28;7397:1;7389:6;7385:14;7378:52;7261:176;:::o;7443:366::-;7585:3;7606:67;7670:2;7665:3;7606:67;:::i;:::-;7599:74;;7682:93;7771:3;7682:93;:::i;:::-;7800:2;7795:3;7791:12;7784:19;;7443:366;;;:::o;7815:419::-;7981:4;8019:2;8008:9;8004:18;7996:26;;8068:9;8062:4;8058:20;8054:1;8043:9;8039:17;8032:47;8096:131;8222:4;8096:131;:::i;:::-;8088:139;;7815:419;;;:::o;8240:180::-;8288:77;8285:1;8278:88;8385:4;8382:1;8375:15;8409:4;8406:1;8399:15;8426:231;8566:34;8562:1;8554:6;8550:14;8543:58;8635:14;8630:2;8622:6;8618:15;8611:39;8426:231;:::o;8663:366::-;8805:3;8826:67;8890:2;8885:3;8826:67;:::i;:::-;8819:74;;8902:93;8991:3;8902:93;:::i;:::-;9020:2;9015:3;9011:12;9004:19;;8663:366;;;:::o;9035:419::-;9201:4;9239:2;9228:9;9224:18;9216:26;;9288:9;9282:4;9278:20;9274:1;9263:9;9259:17;9252:47;9316:131;9442:4;9316:131;:::i;:::-;9308:139;;9035:419;;;:::o;9460:179::-;9600:31;9596:1;9588:6;9584:14;9577:55;9460:179;:::o;9645:366::-;9787:3;9808:67;9872:2;9867:3;9808:67;:::i;:::-;9801:74;;9884:93;9973:3;9884:93;:::i;:::-;10002:2;9997:3;9993:12;9986:19;;9645:366;;;:::o;10017:419::-;10183:4;10221:2;10210:9;10206:18;10198:26;;10270:9;10264:4;10260:20;10256:1;10245:9;10241:17;10234:47;10298:131;10424:4;10298:131;:::i;:::-;10290:139;;10017:419;;;:::o;10442:230::-;10582:34;10578:1;10570:6;10566:14;10559:58;10651:13;10646:2;10638:6;10634:15;10627:38;10442:230;:::o;10678:366::-;10820:3;10841:67;10905:2;10900:3;10841:67;:::i;:::-;10834:74;;10917:93;11006:3;10917:93;:::i;:::-;11035:2;11030:3;11026:12;11019:19;;10678:366;;;:::o;11050:419::-;11216:4;11254:2;11243:9;11239:18;11231:26;;11303:9;11297:4;11293:20;11289:1;11278:9;11274:17;11267:47;11331:131;11457:4;11331:131;:::i;:::-;11323:139;;11050:419;;;:::o;11475:180::-;11523:77;11520:1;11513:88;11620:4;11617:1;11610:15;11644:4;11641:1;11634:15;11661:191;11701:3;11720:20;11738:1;11720:20;:::i;:::-;11715:25;;11754:20;11772:1;11754:20;:::i;:::-;11749:25;;11797:1;11794;11790:9;11783:16;;11818:3;11815:1;11812:10;11809:36;;;11825:18;;:::i;:::-;11809:36;11661:191;;;;:::o;11858:118::-;11945:24;11963:5;11945:24;:::i;:::-;11940:3;11933:37;11858:118;;:::o;11982:::-;12069:24;12087:5;12069:24;:::i;:::-;12064:3;12057:37;11982:118;;:::o;12106:332::-;12227:4;12265:2;12254:9;12250:18;12242:26;;12278:71;12346:1;12335:9;12331:17;12322:6;12278:71;:::i;:::-;12359:72;12427:2;12416:9;12412:18;12403:6;12359:72;:::i;:::-;12106:332;;;;;:::o;257:4190:95:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007e575f3560e01c80639852595c1161004d5780639852595c1461018c578063a3f8eace146101c8578063ce7c2ac214610204578063e33b7de314610240576100be565b806319165587146100c25780631b51003d146100ea5780633a98ef391461012657806363037b0c14610150576100be565b366100be577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033346040516100b49291906105b6565b60405180910390a1005b5f5ffd5b3480156100cd575f5ffd5b506100e860048036038101906100e3919061061c565b61026a565b005b3480156100f5575f5ffd5b50610110600480360381019061010b919061069b565b610423565b60405161011d91906106eb565b60405180910390f35b348015610131575f5ffd5b5061013a61048d565b60405161014791906106eb565b60405180910390f35b34801561015b575f5ffd5b5061017660048036038101906101719190610704565b610492565b604051610183919061072f565b60405180910390f35b348015610197575f5ffd5b506101b260048036038101906101ad9190610748565b6104cd565b6040516101bf91906106eb565b60405180910390f35b3480156101d3575f5ffd5b506101ee60048036038101906101e99190610748565b6104e2565b6040516101fb91906106eb565b60405180910390f35b34801561020f575f5ffd5b5061022a60048036038101906102259190610748565b610544565b60405161023791906106eb565b60405180910390f35b34801561024b575f5ffd5b50610254610559565b60405161026191906106eb565b60405180910390f35b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116102e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e0906107f3565b60405180910390fd5b5f6102f3826104e2565b90505f8103610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90610881565b60405180910390fd5b8060015f82825461034891906108cc565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461039b91906108cc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156103e5573d5f5f3e3d5ffd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056828260405161041792919061095a565b60405180910390a15050565b5f815f5460025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054856104709190610981565b61047a91906109ef565b6104849190610a1f565b90509392505050565b5f5481565b600481815481106104a1575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915090505481565b5f5f600154476104f291906108cc565b905061053c838260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610423565b915050919050565b6002602052805f5260405f205f915090505481565b60015481565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105888261055f565b9050919050565b6105988161057e565b82525050565b5f819050919050565b6105b08161059e565b82525050565b5f6040820190506105c95f83018561058f565b6105d660208301846105a7565b9392505050565b5f5ffd5b5f6105eb8261055f565b9050919050565b6105fb816105e1565b8114610605575f5ffd5b50565b5f81359050610616816105f2565b92915050565b5f60208284031215610631576106306105dd565b5b5f61063e84828501610608565b91505092915050565b6106508161057e565b811461065a575f5ffd5b50565b5f8135905061066b81610647565b92915050565b61067a8161059e565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b5f5f5f606084860312156106b2576106b16105dd565b5b5f6106bf8682870161065d565b93505060206106d086828701610687565b92505060406106e186828701610687565b9150509250925092565b5f6020820190506106fe5f8301846105a7565b92915050565b5f60208284031215610719576107186105dd565b5b5f61072684828501610687565b91505092915050565b5f6020820190506107425f83018461058f565b92915050565b5f6020828403121561075d5761075c6105dd565b5b5f61076a8482850161065d565b91505092915050565b5f82825260208201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f205f8201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b5f6107dd602683610773565b91506107e882610783565b604082019050919050565b5f6020820190508181035f83015261080a816107d1565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f74205f8201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b5f61086b602b83610773565b915061087682610811565b604082019050919050565b5f6020820190508181035f8301526108988161085f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108d68261059e565b91506108e18361059e565b92508282019050808211156108f9576108f861089f565b5b92915050565b5f819050919050565b5f61092261091d6109188461055f565b6108ff565b61055f565b9050919050565b5f61093382610908565b9050919050565b5f61094482610929565b9050919050565b6109548161093a565b82525050565b5f60408201905061096d5f83018561094b565b61097a60208301846105a7565b9392505050565b5f61098b8261059e565b91506109968361059e565b92508282026109a48161059e565b915082820484148315176109bb576109ba61089f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109f98261059e565b9150610a048361059e565b925082610a1457610a136109c2565b5b828204905092915050565b5f610a298261059e565b9150610a348361059e565b9250828203905081811115610a4c57610a4b61089f565b5b9291505056fea264697066735822122000c8d0e7bbf8551b3eb38dab68b33e00a91f5e1d01b42d6206235c0bb188348564736f6c63430008220033","sourceMap":"257:4190:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1746:38;1762:10;1774:9;1746:38;;;;;;;:::i;:::-;;;;;;;;257:4190;;;;;2020:646;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3308:308;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;538:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;792:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;706:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2782:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;631:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;583:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2020:646;2158:1;2139:6;:16;2146:8;2139:16;;;;;;;;;;;;;;;;:20;2131:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2249:15;2267:20;2278:8;2267:10;:20::i;:::-;2249:38;;2350:1;2339:7;:12;2331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2510:7;2493:13;;:24;;;;;;;:::i;:::-;;;;;;;;2549:7;2527:8;:18;2536:8;2527:18;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;2584:8;:17;;:26;2602:7;2584:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2625:34;2641:8;2651:7;2625:34;;;;;;;:::i;:::-;;;;;;;;2078:588;2020:646;:::o;3308:308::-;3451:7;3593:16;3579:11;;3559:6;:16;3566:8;3559:16;;;;;;;;;;;;;;;;3542:14;:33;;;;:::i;:::-;3541:49;;;;:::i;:::-;:68;;;;:::i;:::-;3534:75;;3308:308;;;;;:::o;538:26::-;;;;:::o;792:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;706:43::-;;;;;;;;;;;;;;;;;:::o;2782:332::-;2841:7;2912:21;2960:13;;2936:21;:37;;;;:::i;:::-;2912:61;;3048:59;3063:8;3073:13;3088:8;:18;3097:8;3088:18;;;;;;;;;;;;;;;;3048:14;:59::i;:::-;3041:66;;;2782:332;;;:::o;631:41::-;;;;;;;;;;;;;;;;;:::o;583:28::-;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;991:117::-;1100:1;1097;1090:12;1237:104;1282:7;1311:24;1329:5;1311:24;:::i;:::-;1300:35;;1237:104;;;:::o;1347:138::-;1428:32;1454:5;1428:32;:::i;:::-;1421:5;1418:43;1408:71;;1475:1;1472;1465:12;1408:71;1347:138;:::o;1491:155::-;1545:5;1583:6;1570:20;1561:29;;1599:41;1634:5;1599:41;:::i;:::-;1491:155;;;;:::o;1652:345::-;1719:6;1768:2;1756:9;1747:7;1743:23;1739:32;1736:119;;;1774:79;;:::i;:::-;1736:119;1894:1;1919:61;1972:7;1963:6;1952:9;1948:22;1919:61;:::i;:::-;1909:71;;1865:125;1652:345;;;;:::o;2003:122::-;2076:24;2094:5;2076:24;:::i;:::-;2069:5;2066:35;2056:63;;2115:1;2112;2105:12;2056:63;2003:122;:::o;2131:139::-;2177:5;2215:6;2202:20;2193:29;;2231:33;2258:5;2231:33;:::i;:::-;2131:139;;;;:::o;2276:122::-;2349:24;2367:5;2349:24;:::i;:::-;2342:5;2339:35;2329:63;;2388:1;2385;2378:12;2329:63;2276:122;:::o;2404:139::-;2450:5;2488:6;2475:20;2466:29;;2504:33;2531:5;2504:33;:::i;:::-;2404:139;;;;:::o;2549:619::-;2626:6;2634;2642;2691:2;2679:9;2670:7;2666:23;2662:32;2659:119;;;2697:79;;:::i;:::-;2659:119;2817:1;2842:53;2887:7;2878:6;2867:9;2863:22;2842:53;:::i;:::-;2832:63;;2788:117;2944:2;2970:53;3015:7;3006:6;2995:9;2991:22;2970:53;:::i;:::-;2960:63;;2915:118;3072:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;:::i;:::-;3088:63;;3043:118;2549:619;;;;;:::o;3174:222::-;3267:4;3305:2;3294:9;3290:18;3282:26;;3318:71;3386:1;3375:9;3371:17;3362:6;3318:71;:::i;:::-;3174:222;;;;:::o;3402:329::-;3461:6;3510:2;3498:9;3489:7;3485:23;3481:32;3478:119;;;3516:79;;:::i;:::-;3478:119;3636:1;3661:53;3706:7;3697:6;3686:9;3682:22;3661:53;:::i;:::-;3651:63;;3607:117;3402:329;;;;:::o;3737:222::-;3830:4;3868:2;3857:9;3853:18;3845:26;;3881:71;3949:1;3938:9;3934:17;3925:6;3881:71;:::i;:::-;3737:222;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;3965:329;;;;:::o;4300:169::-;4384:11;4418:6;4413:3;4406:19;4458:4;4453:3;4449:14;4434:29;;4300:169;;;;:::o;4475:225::-;4615:34;4611:1;4603:6;4599:14;4592:58;4684:8;4679:2;4671:6;4667:15;4660:33;4475:225;:::o;4706:366::-;4848:3;4869:67;4933:2;4928:3;4869:67;:::i;:::-;4862:74;;4945:93;5034:3;4945:93;:::i;:::-;5063:2;5058:3;5054:12;5047:19;;4706:366;;;:::o;5078:419::-;5244:4;5282:2;5271:9;5267:18;5259:26;;5331:9;5325:4;5321:20;5317:1;5306:9;5302:17;5295:47;5359:131;5485:4;5359:131;:::i;:::-;5351:139;;5078:419;;;:::o;5503:230::-;5643:34;5639:1;5631:6;5627:14;5620:58;5712:13;5707:2;5699:6;5695:15;5688:38;5503:230;:::o;5739:366::-;5881:3;5902:67;5966:2;5961:3;5902:67;:::i;:::-;5895:74;;5978:93;6067:3;5978:93;:::i;:::-;6096:2;6091:3;6087:12;6080:19;;5739:366;;;:::o;6111:419::-;6277:4;6315:2;6304:9;6300:18;6292:26;;6364:9;6358:4;6354:20;6350:1;6339:9;6335:17;6328:47;6392:131;6518:4;6392:131;:::i;:::-;6384:139;;6111:419;;;:::o;6536:180::-;6584:77;6581:1;6574:88;6681:4;6678:1;6671:15;6705:4;6702:1;6695:15;6722:191;6762:3;6781:20;6799:1;6781:20;:::i;:::-;6776:25;;6815:20;6833:1;6815:20;:::i;:::-;6810:25;;6858:1;6855;6851:9;6844:16;;6879:3;6876:1;6873:10;6870:36;;;6886:18;;:::i;:::-;6870:36;6722:191;;;;:::o;6919:60::-;6947:3;6968:5;6961:12;;6919:60;;;:::o;6985:142::-;7035:9;7068:53;7086:34;7095:24;7113:5;7095:24;:::i;:::-;7086:34;:::i;:::-;7068:53;:::i;:::-;7055:66;;6985:142;;;:::o;7133:126::-;7183:9;7216:37;7247:5;7216:37;:::i;:::-;7203:50;;7133:126;;;:::o;7265:134::-;7323:9;7356:37;7387:5;7356:37;:::i;:::-;7343:50;;7265:134;;;:::o;7405:147::-;7500:45;7539:5;7500:45;:::i;:::-;7495:3;7488:58;7405:147;;:::o;7558:348::-;7687:4;7725:2;7714:9;7710:18;7702:26;;7738:79;7814:1;7803:9;7799:17;7790:6;7738:79;:::i;:::-;7827:72;7895:2;7884:9;7880:18;7871:6;7827:72;:::i;:::-;7558:348;;;;;:::o;7912:410::-;7952:7;7975:20;7993:1;7975:20;:::i;:::-;7970:25;;8009:20;8027:1;8009:20;:::i;:::-;8004:25;;8064:1;8061;8057:9;8086:30;8104:11;8086:30;:::i;:::-;8075:41;;8265:1;8256:7;8252:15;8249:1;8246:22;8226:1;8219:9;8199:83;8176:139;;8295:18;;:::i;:::-;8176:139;7960:362;7912:410;;;;:::o;8328:180::-;8376:77;8373:1;8366:88;8473:4;8470:1;8463:15;8497:4;8494:1;8487:15;8514:185;8554:1;8571:20;8589:1;8571:20;:::i;:::-;8566:25;;8605:20;8623:1;8605:20;:::i;:::-;8600:25;;8644:1;8634:35;;8649:18;;:::i;:::-;8634:35;8691:1;8688;8684:9;8679:14;;8514:185;;;;:::o;8705:194::-;8745:4;8765:20;8783:1;8765:20;:::i;:::-;8760:25;;8799:20;8817:1;8799:20;:::i;:::-;8794:25;;8843:1;8840;8836:9;8828:17;;8867:1;8861:4;8858:11;8855:37;;;8872:18;;:::i;:::-;8855:37;8705:194;;;;:::o","linkReferences":{}},"methodIdentifiers":{"payees(uint256)":"63037b0c","pendingPayment(address,uint256,uint256)":"1b51003d","releasable(address)":"a3f8eace","release(address)":"19165587","released(address)":"9852595c","shares(address)":"ce7c2ac2","totalReleased()":"e33b7de3","totalShares()":"3a98ef39"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_payees\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_shares\",\"type\":\"uint256[]\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"payees\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_totalReceived\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_alreadyReleased\",\"type\":\"uint256\"}],\"name\":\"pendingPayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4f1a\\u628a\\u6536\\u5230\\u7684ETH\\u6309\\u4e8b\\u5148\\u5b9a\\u597d\\u7684\\u4efd\\u989d\\u5206\\u7ed9\\u51e0\\u4e2a\\u8d26\\u6237\\u3002\\u6536\\u5230ETH\\u4f1a\\u5b58\\u5728\\u5206\\u8d26\\u5408\\u7ea6\\u4e2d\\uff0c\\u9700\\u8981\\u6bcf\\u4e2a\\u53d7\\u76ca\\u4eba\\u8c03\\u7528release()\\u51fd\\u6570\\u6765\\u9886\\u53d6\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u53d7\\u76ca\\u4eba\\u6570\\u7ec4_payees\\u548c\\u5206\\u8d26\\u4efd\\u989d\\u6570\\u7ec4_shares \\u6570\\u7ec4\\u957f\\u5ea6\\u4e0d\\u80fd\\u4e3a0\\uff0c\\u4e24\\u4e2a\\u6570\\u7ec4\\u957f\\u5ea6\\u8981\\u76f8\\u7b49\\u3002_shares\\u4e2d\\u5143\\u7d20\\u8981\\u5927\\u4e8e0\\uff0c_payees\\u4e2d\\u5730\\u5740\\u4e0d\\u80fd\\u4e3a0\\u5730\\u5740\\u4e14\\u4e0d\\u80fd\\u6709\\u91cd\\u590d\\u5730\\u5740\"},\"pendingPayment(address,uint256,uint256)\":{\"details\":\"\\u6839\\u636e\\u53d7\\u76ca\\u4eba\\u5730\\u5740`_account`, \\u5206\\u8d26\\u5408\\u7ea6\\u603b\\u6536\\u5165`_totalReceived`\\u548c\\u8be5\\u5730\\u5740\\u5df2\\u9886\\u53d6\\u7684\\u94b1`_alreadyReleased`\\uff0c\\u8ba1\\u7b97\\u8be5\\u53d7\\u76ca\\u4eba\\u73b0\\u5728\\u5e94\\u5206\\u7684`ETH`\\u3002\"},\"releasable(address)\":{\"details\":\"\\u8ba1\\u7b97\\u4e00\\u4e2a\\u8d26\\u6237\\u80fd\\u591f\\u9886\\u53d6\\u7684eth\\u3002 \\u8c03\\u7528\\u4e86pendingPayment()\\u51fd\\u6570\\u3002\"},\"release(address)\":{\"details\":\"\\u4e3a\\u6709\\u6548\\u53d7\\u76ca\\u4eba\\u5730\\u5740_account\\u5206\\u5e10\\uff0c\\u76f8\\u5e94\\u7684ETH\\u76f4\\u63a5\\u53d1\\u9001\\u5230\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\u3002\\u4efb\\u4f55\\u4eba\\u90fd\\u53ef\\u4ee5\\u89e6\\u53d1\\u8fd9\\u4e2a\\u51fd\\u6570\\uff0c\\u4f46\\u94b1\\u4f1a\\u6253\\u7ed9account\\u5730\\u5740\\u3002 \\u8c03\\u7528\\u4e86releasable()\\u51fd\\u6570\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"\\u5206\\u8d26\\u5408\\u7ea6 \",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/42_PaymentSplit/PaymentSplit.sol\":\"PaymentSplit\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/42_PaymentSplit/PaymentSplit.sol\":{\"keccak256\":\"0x71ad193e6c92b64e49fd0941c8805ce5bfb37f3f8893299ab850058a36cff5b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dca6e8b4be9b382fffc0e57293dc9e5cf5e15b84e3d2fffed9ba322b8eb242a\",\"dweb:/ipfs/QmVAorc8D5FWD4w3THQ38GPDyhYd64tdDjrawkiR1XpgnB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_payees","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"PayeeAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PaymentReceived","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PaymentReleased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"payees","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_totalReceived","type":"uint256"},{"internalType":"uint256","name":"_alreadyReleased","type":"uint256"}],"stateMutability":"view","type":"function","name":"pendingPayment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address payable","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化受益人数组_payees和分账份额数组_shares 数组长度不能为0,两个数组长度要相等。_shares中元素要大于0,_payees中地址不能为0地址且不能有重复地址"},"pendingPayment(address,uint256,uint256)":{"details":"根据受益人地址`_account`, 分账合约总收入`_totalReceived`和该地址已领取的钱`_alreadyReleased`,计算该受益人现在应分的`ETH`。"},"releasable(address)":{"details":"计算一个账户能够领取的eth。 调用了pendingPayment()函数。"},"release(address)":{"details":"为有效受益人地址_account分帐,相应的ETH直接发送到受益人地址。任何人都可以触发这个函数,但钱会打给account地址。 调用了releasable()函数。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/42_PaymentSplit/PaymentSplit.sol":"PaymentSplit"},"evmVersion":"prague","libraries":{}},"sources":{"src/42_PaymentSplit/PaymentSplit.sol":{"keccak256":"0x71ad193e6c92b64e49fd0941c8805ce5bfb37f3f8893299ab850058a36cff5b3","urls":["bzz-raw://0dca6e8b4be9b382fffc0e57293dc9e5cf5e15b84e3d2fffed9ba322b8eb242a","dweb:/ipfs/QmVAorc8D5FWD4w3THQ38GPDyhYd64tdDjrawkiR1XpgnB"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file diff --git a/out/PhishingWithTxOrigin.sol/Attack.json b/out/PhishingWithTxOrigin.sol/Attack.json index b44dd381..53425952 100644 --- a/out/PhishingWithTxOrigin.sol/Attack.json +++ b/out/PhishingWithTxOrigin.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract Bank"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hacker","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161039138038061039183398181016040528101906100319190610125565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610150565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b5f6100f4826100d9565b9050919050565b610104816100ea565b811461010e575f5ffd5b50565b5f8151905061011f816100fb565b92915050565b5f6020828403121561013a576101396100b6565b5b5f61014784828501610111565b91505092915050565b6102348061015d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806338d1af2d146100385780639e5faafc14610056575b5f5ffd5b610040610060565b60405161004d91906101a6565b60405180910390f35b61005e610084565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316040518363ffffffff1660e01b81526004016101389291906101d7565b5f604051808303815f87803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61019082610167565b9050919050565b6101a081610186565b82525050565b5f6020820190506101b95f830184610197565b92915050565b5f819050919050565b6101d1816101bf565b82525050565b5f6040820190506101ea5f830185610197565b6101f760208301846101c8565b939250505056fea2646970667358221220b283b487a244215b9815b1bf7e12b60d3e0c5c449f49d683c2ee78c469a3c92864736f6c63430008220033","sourceMap":"511:529:138:-:0;;;631:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;737:5;725:4;;:18;;;;;;;;;;;;;;;;;;823:10;806:6;;:28;;;;;;;;;;;;;;;;;;631:210;511:529;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:379::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:78;1371:7;1362:6;1351:9;1347:22;1301:78;:::i;:::-;1291:88;;1247:142;1017:379;;;;:::o;511:529:138:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806338d1af2d146100385780639e5faafc14610056575b5f5ffd5b610040610060565b60405161004d91906101a6565b60405180910390f35b61005e610084565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316040518363ffffffff1660e01b81526004016101389291906101d7565b5f604051808303815f87803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61019082610167565b9050919050565b6101a081610186565b82525050565b5f6020820190506101b95f830184610197565b92915050565b5f819050919050565b6101d1816101bf565b82525050565b5f6040820190506101ea5f830185610197565b6101f760208301846101c8565b939250505056fea2646970667358221220b283b487a244215b9815b1bf7e12b60d3e0c5c449f49d683c2ee78c469a3c92864736f6c63430008220033","sourceMap":"511:529:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;556:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;847:191;;;:::i;:::-;;556:29;;;;;;;;;;;;;:::o;847:191::-;987:4;;;;;;;;;;;:13;;;1001:6;;;;;;;;;;;1017:4;;;;;;;;;;;1009:21;;;987:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;847:191::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:104::-;184:7;213:24;231:5;213:24;:::i;:::-;202:35;;139:104;;;:::o;249:142::-;352:32;378:5;352:32;:::i;:::-;347:3;340:45;249:142;;:::o;397:254::-;506:4;544:2;533:9;529:18;521:26;;557:87;641:1;630:9;626:17;617:6;557:87;:::i;:::-;397:254;;;;:::o;657:77::-;694:7;723:5;712:16;;657:77;;;:::o;740:118::-;827:24;845:5;827:24;:::i;:::-;822:3;815:37;740:118;;:::o;864:364::-;1001:4;1039:2;1028:9;1024:18;1016:26;;1052:87;1136:1;1125:9;1121:17;1112:6;1052:87;:::i;:::-;1149:72;1217:2;1206:9;1202:18;1193:6;1149:72;:::i;:::-;864:364;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","hacker()":"38d1af2d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Bank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hacker\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":{\"keccak256\":\"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74\",\"dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract Bank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"hacker","outputs":[{"internalType":"address payable","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":{"keccak256":"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0","urls":["bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74","dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ"],"license":"MIT"}},"version":1},"id":138} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract Bank"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hacker","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161039138038061039183398181016040528101906100319190610125565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610150565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b5f6100f4826100d9565b9050919050565b610104816100ea565b811461010e575f5ffd5b50565b5f8151905061011f816100fb565b92915050565b5f6020828403121561013a576101396100b6565b5b5f61014784828501610111565b91505092915050565b6102348061015d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806338d1af2d146100385780639e5faafc14610056575b5f5ffd5b610040610060565b60405161004d91906101a6565b60405180910390f35b61005e610084565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316040518363ffffffff1660e01b81526004016101389291906101d7565b5f604051808303815f87803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61019082610167565b9050919050565b6101a081610186565b82525050565b5f6020820190506101b95f830184610197565b92915050565b5f819050919050565b6101d1816101bf565b82525050565b5f6040820190506101ea5f830185610197565b6101f760208301846101c8565b939250505056fea2646970667358221220b283b487a244215b9815b1bf7e12b60d3e0c5c449f49d683c2ee78c469a3c92864736f6c63430008220033","sourceMap":"511:529:132:-:0;;;631:210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;737:5;725:4;;:18;;;;;;;;;;;;;;;;;;823:10;806:6;;:28;;;;;;;;;;;;;;;;;;631:210;511:529;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:379::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:78;1371:7;1362:6;1351:9;1347:22;1301:78;:::i;:::-;1291:88;;1247:142;1017:379;;;;:::o;511:529:132:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806338d1af2d146100385780639e5faafc14610056575b5f5ffd5b610040610060565b60405161004d91906101a6565b60405180910390f35b61005e610084565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316040518363ffffffff1660e01b81526004016101389291906101d7565b5f604051808303815f87803b15801561014f575f5ffd5b505af1158015610161573d5f5f3e3d5ffd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61019082610167565b9050919050565b6101a081610186565b82525050565b5f6020820190506101b95f830184610197565b92915050565b5f819050919050565b6101d1816101bf565b82525050565b5f6040820190506101ea5f830185610197565b6101f760208301846101c8565b939250505056fea2646970667358221220b283b487a244215b9815b1bf7e12b60d3e0c5c449f49d683c2ee78c469a3c92864736f6c63430008220033","sourceMap":"511:529:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;556:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;847:191;;;:::i;:::-;;556:29;;;;;;;;;;;;;:::o;847:191::-;987:4;;;;;;;;;;;:13;;;1001:6;;;;;;;;;;;1017:4;;;;;;;;;;;1009:21;;;987:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;847:191::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:104::-;184:7;213:24;231:5;213:24;:::i;:::-;202:35;;139:104;;;:::o;249:142::-;352:32;378:5;352:32;:::i;:::-;347:3;340:45;249:142;;:::o;397:254::-;506:4;544:2;533:9;529:18;521:26;;557:87;641:1;630:9;626:17;617:6;557:87;:::i;:::-;397:254;;;;:::o;657:77::-;694:7;723:5;712:16;;657:77;;;:::o;740:118::-;827:24;845:5;827:24;:::i;:::-;822:3;815:37;740:118;;:::o;864:364::-;1001:4;1039:2;1028:9;1024:18;1016:26;;1052:87;1136:1;1125:9;1121:17;1112:6;1052:87;:::i;:::-;1149:72;1217:2;1206:9;1202:18;1193:6;1149:72;:::i;:::-;864:364;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","hacker()":"38d1af2d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Bank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hacker\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":{\"keccak256\":\"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74\",\"dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract Bank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"hacker","outputs":[{"internalType":"address payable","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":{"keccak256":"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0","urls":["bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74","dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file diff --git a/out/PhishingWithTxOrigin.sol/Bank.json b/out/PhishingWithTxOrigin.sol/Bank.json index b0ec682a..c4b545da 100644 --- a/out/PhishingWithTxOrigin.sol/Bank.json +++ b/out/PhishingWithTxOrigin.sol/Bank.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610430806100505f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a9059cbb14610056575b5f5ffd5b610040610072565b60405161004d9190610210565b60405180910390f35b610070600480360381019061006b919061029b565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90610333565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516101499061037e565b5f6040518083038185875af1925050503d805f8114610183576040519150601f19603f3d011682016040523d82523d5f602084013e610188565b606091505b50509050806101cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c3906103dc565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fa826101d1565b9050919050565b61020a816101f0565b82525050565b5f6020820190506102235f830184610201565b92915050565b5f5ffd5b5f610237826101d1565b9050919050565b6102478161022d565b8114610251575f5ffd5b50565b5f813590506102628161023e565b92915050565b5f819050919050565b61027a81610268565b8114610284575f5ffd5b50565b5f8135905061029581610271565b92915050565b5f5f604083850312156102b1576102b0610229565b5b5f6102be85828601610254565b92505060206102cf85828601610287565b9150509250929050565b5f82825260208201905092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61031d6009836102d9565b9150610328826102e9565b602082019050919050565b5f6020820190508181035f83015261034a81610311565b9050919050565b5f81905092915050565b50565b5f6103695f83610351565b91506103748261035b565b5f82019050919050565b5f6103888261035e565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6103c66014836102d9565b91506103d182610392565b602082019050919050565b5f6020820190508181035f8301526103f3816103ba565b905091905056fea26469706673582212208dd77fbd9cb580180385ea2e33cf77add981994462b2839bd366c1ca3a7aacc364736f6c63430008220033","sourceMap":"57:452:138:-:0;;;217:10;209:5;;:18;;;;;;;;;;;;;;;;;;57:452;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a9059cbb14610056575b5f5ffd5b610040610072565b60405161004d9190610210565b60405180910390f35b610070600480360381019061006b919061029b565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90610333565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516101499061037e565b5f6040518083038185875af1925050503d805f8114610183576040519150601f19603f3d011682016040523d82523d5f602084013e610188565b606091505b50509050806101cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c3906103dc565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fa826101d1565b9050919050565b61020a816101f0565b82525050565b5f6020820190506102235f830184610201565b92915050565b5f5ffd5b5f610237826101d1565b9050919050565b6102478161022d565b8114610251575f5ffd5b50565b5f813590506102628161023e565b92915050565b5f819050919050565b61027a81610268565b8114610284575f5ffd5b50565b5f8135905061029581610271565b92915050565b5f5f604083850312156102b1576102b0610229565b5b5f6102be85828601610254565b92505060206102cf85828601610287565b9150509250929050565b5f82825260208201905092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61031d6009836102d9565b9150610328826102e9565b602082019050919050565b5f6020820190508181035f83015261034a81610311565b9050919050565b5f81905092915050565b50565b5f6103695f83610351565b91506103748261035b565b5f82019050919050565b5f6103888261035e565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6103c66014836102d9565b91506103d182610392565b602082019050919050565b5f6020820190508181035f8301526103f3816103ba565b905091905056fea26469706673582212208dd77fbd9cb580180385ea2e33cf77add981994462b2839bd366c1ca3a7aacc364736f6c63430008220033","sourceMap":"57:452:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;240:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;77:20;;;;;;;;;;;;;:::o;240:267::-;360:5;;;;;;;;;;;347:18;;:9;:18;;;339:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;410:9;425:3;:8;;441:7;425:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;409:44;;;471:4;463:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;300:207;240:267;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:104;965:7;994:24;1012:5;994:24;:::i;:::-;983:35;;920:104;;;:::o;1030:138::-;1111:32;1137:5;1111:32;:::i;:::-;1104:5;1101:43;1091:71;;1158:1;1155;1148:12;1091:71;1030:138;:::o;1174:155::-;1228:5;1266:6;1253:20;1244:29;;1282:41;1317:5;1282:41;:::i;:::-;1174:155;;;;:::o;1335:77::-;1372:7;1401:5;1390:16;;1335:77;;;:::o;1418:122::-;1491:24;1509:5;1491:24;:::i;:::-;1484:5;1481:35;1471:63;;1530:1;1527;1520:12;1471:63;1418:122;:::o;1546:139::-;1592:5;1630:6;1617:20;1608:29;;1646:33;1673:5;1646:33;:::i;:::-;1546:139;;;;:::o;1691:490::-;1767:6;1775;1824:2;1812:9;1803:7;1799:23;1795:32;1792:119;;;1830:79;;:::i;:::-;1792:119;1950:1;1975:61;2028:7;2019:6;2008:9;2004:22;1975:61;:::i;:::-;1965:71;;1921:125;2085:2;2111:53;2156:7;2147:6;2136:9;2132:22;2111:53;:::i;:::-;2101:63;;2056:118;1691:490;;;;;:::o;2187:169::-;2271:11;2305:6;2300:3;2293:19;2345:4;2340:3;2336:14;2321:29;;2187:169;;;;:::o;2362:159::-;2502:11;2498:1;2490:6;2486:14;2479:35;2362:159;:::o;2527:365::-;2669:3;2690:66;2754:1;2749:3;2690:66;:::i;:::-;2683:73;;2765:93;2854:3;2765:93;:::i;:::-;2883:2;2878:3;2874:12;2867:19;;2527:365;;;:::o;2898:419::-;3064:4;3102:2;3091:9;3087:18;3079:26;;3151:9;3145:4;3141:20;3137:1;3126:9;3122:17;3115:47;3179:131;3305:4;3179:131;:::i;:::-;3171:139;;2898:419;;;:::o;3323:147::-;3424:11;3461:3;3446:18;;3323:147;;;;:::o;3476:114::-;;:::o;3596:398::-;3755:3;3776:83;3857:1;3852:3;3776:83;:::i;:::-;3769:90;;3868:93;3957:3;3868:93;:::i;:::-;3986:1;3981:3;3977:11;3970:18;;3596:398;;;:::o;4000:379::-;4184:3;4206:147;4349:3;4206:147;:::i;:::-;4199:154;;4370:3;4363:10;;4000:379;;;:::o;4385:170::-;4525:22;4521:1;4513:6;4509:14;4502:46;4385:170;:::o;4561:366::-;4703:3;4724:67;4788:2;4783:3;4724:67;:::i;:::-;4717:74;;4800:93;4889:3;4800:93;:::i;:::-;4918:2;4913:3;4909:12;4902:19;;4561:366;;;:::o;4933:419::-;5099:4;5137:2;5126:9;5122:18;5114:26;;5186:9;5180:4;5176:20;5172:1;5161:9;5157:17;5150:47;5214:131;5340:4;5214:131;:::i;:::-;5206:139;;4933:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":\"Bank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":{\"keccak256\":\"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74\",\"dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":"Bank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":{"keccak256":"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0","urls":["bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74","dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ"],"license":"MIT"}},"version":1},"id":138} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610430806100505f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a9059cbb14610056575b5f5ffd5b610040610072565b60405161004d9190610210565b60405180910390f35b610070600480360381019061006b919061029b565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90610333565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516101499061037e565b5f6040518083038185875af1925050503d805f8114610183576040519150601f19603f3d011682016040523d82523d5f602084013e610188565b606091505b50509050806101cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c3906103dc565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fa826101d1565b9050919050565b61020a816101f0565b82525050565b5f6020820190506102235f830184610201565b92915050565b5f5ffd5b5f610237826101d1565b9050919050565b6102478161022d565b8114610251575f5ffd5b50565b5f813590506102628161023e565b92915050565b5f819050919050565b61027a81610268565b8114610284575f5ffd5b50565b5f8135905061029581610271565b92915050565b5f5f604083850312156102b1576102b0610229565b5b5f6102be85828601610254565b92505060206102cf85828601610287565b9150509250929050565b5f82825260208201905092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61031d6009836102d9565b9150610328826102e9565b602082019050919050565b5f6020820190508181035f83015261034a81610311565b9050919050565b5f81905092915050565b50565b5f6103695f83610351565b91506103748261035b565b5f82019050919050565b5f6103888261035e565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6103c66014836102d9565b91506103d182610392565b602082019050919050565b5f6020820190508181035f8301526103f3816103ba565b905091905056fea26469706673582212208dd77fbd9cb580180385ea2e33cf77add981994462b2839bd366c1ca3a7aacc364736f6c63430008220033","sourceMap":"57:452:132:-:0;;;217:10;209:5;;:18;;;;;;;;;;;;;;;;;;57:452;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a9059cbb14610056575b5f5ffd5b610040610072565b60405161004d9190610210565b60405180910390f35b610070600480360381019061006b919061029b565b610096565b005b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90610333565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516101499061037e565b5f6040518083038185875af1925050503d805f8114610183576040519150601f19603f3d011682016040523d82523d5f602084013e610188565b606091505b50509050806101cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c3906103dc565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101fa826101d1565b9050919050565b61020a816101f0565b82525050565b5f6020820190506102235f830184610201565b92915050565b5f5ffd5b5f610237826101d1565b9050919050565b6102478161022d565b8114610251575f5ffd5b50565b5f813590506102628161023e565b92915050565b5f819050919050565b61027a81610268565b8114610284575f5ffd5b50565b5f8135905061029581610271565b92915050565b5f5f604083850312156102b1576102b0610229565b5b5f6102be85828601610254565b92505060206102cf85828601610287565b9150509250929050565b5f82825260208201905092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f61031d6009836102d9565b9150610328826102e9565b602082019050919050565b5f6020820190508181035f83015261034a81610311565b9050919050565b5f81905092915050565b50565b5f6103695f83610351565b91506103748261035b565b5f82019050919050565b5f6103888261035e565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6103c66014836102d9565b91506103d182610392565b602082019050919050565b5f6020820190508181035f8301526103f3816103ba565b905091905056fea26469706673582212208dd77fbd9cb580180385ea2e33cf77add981994462b2839bd366c1ca3a7aacc364736f6c63430008220033","sourceMap":"57:452:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;240:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;77:20;;;;;;;;;;;;;:::o;240:267::-;360:5;;;;;;;;;;;347:18;;:9;:18;;;339:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;410:9;425:3;:8;;441:7;425:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;409:44;;;471:4;463:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;300:207;240:267;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:104;965:7;994:24;1012:5;994:24;:::i;:::-;983:35;;920:104;;;:::o;1030:138::-;1111:32;1137:5;1111:32;:::i;:::-;1104:5;1101:43;1091:71;;1158:1;1155;1148:12;1091:71;1030:138;:::o;1174:155::-;1228:5;1266:6;1253:20;1244:29;;1282:41;1317:5;1282:41;:::i;:::-;1174:155;;;;:::o;1335:77::-;1372:7;1401:5;1390:16;;1335:77;;;:::o;1418:122::-;1491:24;1509:5;1491:24;:::i;:::-;1484:5;1481:35;1471:63;;1530:1;1527;1520:12;1471:63;1418:122;:::o;1546:139::-;1592:5;1630:6;1617:20;1608:29;;1646:33;1673:5;1646:33;:::i;:::-;1546:139;;;;:::o;1691:490::-;1767:6;1775;1824:2;1812:9;1803:7;1799:23;1795:32;1792:119;;;1830:79;;:::i;:::-;1792:119;1950:1;1975:61;2028:7;2019:6;2008:9;2004:22;1975:61;:::i;:::-;1965:71;;1921:125;2085:2;2111:53;2156:7;2147:6;2136:9;2132:22;2111:53;:::i;:::-;2101:63;;2056:118;1691:490;;;;;:::o;2187:169::-;2271:11;2305:6;2300:3;2293:19;2345:4;2340:3;2336:14;2321:29;;2187:169;;;;:::o;2362:159::-;2502:11;2498:1;2490:6;2486:14;2479:35;2362:159;:::o;2527:365::-;2669:3;2690:66;2754:1;2749:3;2690:66;:::i;:::-;2683:73;;2765:93;2854:3;2765:93;:::i;:::-;2883:2;2878:3;2874:12;2867:19;;2527:365;;;:::o;2898:419::-;3064:4;3102:2;3091:9;3087:18;3079:26;;3151:9;3145:4;3141:20;3137:1;3126:9;3122:17;3115:47;3179:131;3305:4;3179:131;:::i;:::-;3171:139;;2898:419;;;:::o;3323:147::-;3424:11;3461:3;3446:18;;3323:147;;;;:::o;3476:114::-;;:::o;3596:398::-;3755:3;3776:83;3857:1;3852:3;3776:83;:::i;:::-;3769:90;;3868:93;3957:3;3868:93;:::i;:::-;3986:1;3981:3;3977:11;3970:18;;3596:398;;;:::o;4000:379::-;4184:3;4206:147;4349:3;4206:147;:::i;:::-;4199:154;;4370:3;4363:10;;4000:379;;;:::o;4385:170::-;4525:22;4521:1;4513:6;4509:14;4502:46;4385:170;:::o;4561:366::-;4703:3;4724:67;4788:2;4783:3;4724:67;:::i;:::-;4717:74;;4800:93;4889:3;4800:93;:::i;:::-;4918:2;4913:3;4909:12;4902:19;;4561:366;;;:::o;4933:419::-;5099:4;5137:2;5126:9;5122:18;5114:26;;5186:9;5180:4;5176:20;5172:1;5161:9;5157:17;5150:47;5214:131;5340:4;5214:131;:::i;:::-;5206:139;;4933:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":\"Bank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S12_TxOrigin/PhishingWithTxOrigin.sol\":{\"keccak256\":\"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74\",\"dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":"Bank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S12_TxOrigin/PhishingWithTxOrigin.sol":{"keccak256":"0x1a72437c90ae0167873393c0f07d64e66dbb58595f93aa5fca70858cd0bec7e0","urls":["bzz-raw://1befb3530738e971e5d79cf107fac94ba8d9b0336bce11c822743f8231f2bf74","dweb:/ipfs/QmVUXFT2QhW8hW85XWDDikQBf9efkaAbUDfxHM2PgmakMJ"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file diff --git a/out/ProxyContract.sol/Caller.json b/out/ProxyContract.sol/Caller.json index 0b350bc0..d0dca5e5 100644 --- a/out/ProxyContract.sol/Caller.json +++ b/out/ProxyContract.sol/Caller.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"proxy_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"increase","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610449380380610449833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b61033d8061010c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063e8927fbc14610038578063ec55688914610056575b5f5ffd5b610040610074565b60405161004d91906101d5565b60405180910390f35b61005e610199565b60405161006b919061022d565b60405180910390f35b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fd09de08a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161013d9190610298565b5f604051808303815f865af19150503d805f8114610176576040519150601f19603f3d011682016040523d82523d5f602084013e61017b565b606091505b509150508080602001905181019061019391906102dc565b91505090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b6101cf816101bd565b82525050565b5f6020820190506101e85f8301846101c6565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61027282610246565b61027c8185610250565b935061028c81856020860161025a565b80840191505092915050565b5f6102a38284610268565b915081905092915050565b5f5ffd5b6102bb816101bd565b81146102c5575f5ffd5b50565b5f815190506102d6816102b2565b92915050565b5f602082840312156102f1576102f06102ae565b5b5f6102fe848285016102c8565b9150509291505056fea2646970667358221220cd1e3b0a8eedfec841182c90dd6124af9aada10559062ba216e545cb4a86a46564736f6c63430008220033","sourceMap":"2737:360:105:-:0;;;2807:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2852:6;2844:5;;:14;;;;;;;;;;;;;;;;;;2807:58;2737:360;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;2737:360:105:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063e8927fbc14610038578063ec55688914610056575b5f5ffd5b610040610074565b60405161004d91906101d5565b60405180910390f35b61005e610199565b60405161006b919061022d565b60405180910390f35b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fd09de08a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161013d9190610298565b5f604051808303815f865af19150503d805f8114610176576040519150601f19603f3d011682016040523d82523d5f602084013e61017b565b606091505b509150508080602001905181019061019391906102dc565b91505090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b6101cf816101bd565b82525050565b5f6020820190506101e85f8301846101c6565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61027282610246565b61027c8185610250565b935061028c81856020860161025a565b80840191505092915050565b5f6102a38284610268565b915081905092915050565b5f5ffd5b6102bb816101bd565b81146102c5575f5ffd5b50565b5f815190506102d6816102b2565b92915050565b5f602082840312156102f1576102f06102ae565b5b5f6102fe848285016102c8565b9150509291505056fea2646970667358221220cd1e3b0a8eedfec841182c90dd6124af9aada10559062ba216e545cb4a86a46564736f6c63430008220033","sourceMap":"2737:360:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2920:175;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2758:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2920:175;2957:4;2977:17;2998:5;;;;;;;;;;;:10;;3009:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:75;;;3076:4;3065:23;;;;;;;;;;;;:::i;:::-;3058:30;;;2920:175;:::o;2758:20::-;;;;;;;;;;;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:98::-;1079:6;1113:5;1107:12;1097:22;;1028:98;;;:::o;1132:147::-;1233:11;1270:3;1255:18;;1132:147;;;;:::o;1285:139::-;1374:6;1369:3;1364;1358:23;1415:1;1406:6;1401:3;1397:16;1390:27;1285:139;;;:::o;1430:386::-;1534:3;1562:38;1594:5;1562:38;:::i;:::-;1616:88;1697:6;1692:3;1616:88;:::i;:::-;1609:95;;1713:65;1771:6;1766:3;1759:4;1752:5;1748:16;1713:65;:::i;:::-;1803:6;1798:3;1794:16;1787:23;;1538:278;1430:386;;;;:::o;1822:271::-;1952:3;1974:93;2063:3;2054:6;1974:93;:::i;:::-;1967:100;;2084:3;2077:10;;1822:271;;;;:::o;2180:117::-;2289:1;2286;2279:12;2426:122;2499:24;2517:5;2499:24;:::i;:::-;2492:5;2489:35;2479:63;;2538:1;2535;2528:12;2479:63;2426:122;:::o;2554:143::-;2611:5;2642:6;2636:13;2627:22;;2658:33;2685:5;2658:33;:::i;:::-;2554:143;;;;:::o;2703:351::-;2773:6;2822:2;2810:9;2801:7;2797:23;2793:32;2790:119;;;2828:79;;:::i;:::-;2790:119;2948:1;2973:64;3029:7;3020:6;3009:9;3005:22;2973:64;:::i;:::-;2963:74;;2919:128;2703:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"increase()":"e8927fbc","proxy()":"ec556889"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"increase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Caller\\u5408\\u7ea6\\uff0c\\u8c03\\u7528\\u4ee3\\u7406\\u5408\\u7ea6\\uff0c\\u5e76\\u83b7\\u53d6\\u6267\\u884c\\u7ed3\\u679c\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Caller\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"proxy_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"increase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Caller"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"proxy_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"increase","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610449380380610449833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b61033d8061010c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063e8927fbc14610038578063ec55688914610056575b5f5ffd5b610040610074565b60405161004d91906101d5565b60405180910390f35b61005e610199565b60405161006b919061022d565b60405180910390f35b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fd09de08a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161013d9190610298565b5f604051808303815f865af19150503d805f8114610176576040519150601f19603f3d011682016040523d82523d5f602084013e61017b565b606091505b509150508080602001905181019061019391906102dc565b91505090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b6101cf816101bd565b82525050565b5f6020820190506101e85f8301846101c6565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61027282610246565b61027c8185610250565b935061028c81856020860161025a565b80840191505092915050565b5f6102a38284610268565b915081905092915050565b5f5ffd5b6102bb816101bd565b81146102c5575f5ffd5b50565b5f815190506102d6816102b2565b92915050565b5f602082840312156102f1576102f06102ae565b5b5f6102fe848285016102c8565b9150509291505056fea2646970667358221220cd1e3b0a8eedfec841182c90dd6124af9aada10559062ba216e545cb4a86a46564736f6c63430008220033","sourceMap":"2737:360:99:-:0;;;2807:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2852:6;2844:5;;:14;;;;;;;;;;;;;;;;;;2807:58;2737:360;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;2737:360:99:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063e8927fbc14610038578063ec55688914610056575b5f5ffd5b610040610074565b60405161004d91906101d5565b60405180910390f35b61005e610199565b60405161006b919061022d565b60405180910390f35b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fd09de08a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161013d9190610298565b5f604051808303815f865af19150503d805f8114610176576040519150601f19603f3d011682016040523d82523d5f602084013e61017b565b606091505b509150508080602001905181019061019391906102dc565b91505090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f819050919050565b6101cf816101bd565b82525050565b5f6020820190506101e85f8301846101c6565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610217826101ee565b9050919050565b6102278161020d565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61027282610246565b61027c8185610250565b935061028c81856020860161025a565b80840191505092915050565b5f6102a38284610268565b915081905092915050565b5f5ffd5b6102bb816101bd565b81146102c5575f5ffd5b50565b5f815190506102d6816102b2565b92915050565b5f602082840312156102f1576102f06102ae565b5b5f6102fe848285016102c8565b9150509291505056fea2646970667358221220cd1e3b0a8eedfec841182c90dd6124af9aada10559062ba216e545cb4a86a46564736f6c63430008220033","sourceMap":"2737:360:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2920:175;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2758:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2920:175;2957:4;2977:17;2998:5;;;;;;;;;;;:10;;3009:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2973:75;;;3076:4;3065:23;;;;;;;;;;;;:::i;:::-;3058:30;;;2920:175;:::o;2758:20::-;;;;;;;;;;;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:98::-;1079:6;1113:5;1107:12;1097:22;;1028:98;;;:::o;1132:147::-;1233:11;1270:3;1255:18;;1132:147;;;;:::o;1285:139::-;1374:6;1369:3;1364;1358:23;1415:1;1406:6;1401:3;1397:16;1390:27;1285:139;;;:::o;1430:386::-;1534:3;1562:38;1594:5;1562:38;:::i;:::-;1616:88;1697:6;1692:3;1616:88;:::i;:::-;1609:95;;1713:65;1771:6;1766:3;1759:4;1752:5;1748:16;1713:65;:::i;:::-;1803:6;1798:3;1794:16;1787:23;;1538:278;1430:386;;;;:::o;1822:271::-;1952:3;1974:93;2063:3;2054:6;1974:93;:::i;:::-;1967:100;;2084:3;2077:10;;1822:271;;;;:::o;2180:117::-;2289:1;2286;2279:12;2426:122;2499:24;2517:5;2499:24;:::i;:::-;2492:5;2489:35;2479:63;;2538:1;2535;2528:12;2479:63;2426:122;:::o;2554:143::-;2611:5;2642:6;2636:13;2627:22;;2658:33;2685:5;2658:33;:::i;:::-;2554:143;;;;:::o;2703:351::-;2773:6;2822:2;2810:9;2801:7;2797:23;2793:32;2790:119;;;2828:79;;:::i;:::-;2790:119;2948:1;2973:64;3029:7;3020:6;3009:9;3005:22;2973:64;:::i;:::-;2963:74;;2919:128;2703:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"increase()":"e8927fbc","proxy()":"ec556889"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proxy_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"increase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Caller\\u5408\\u7ea6\\uff0c\\u8c03\\u7528\\u4ee3\\u7406\\u5408\\u7ea6\\uff0c\\u5e76\\u83b7\\u53d6\\u6267\\u884c\\u7ed3\\u679c\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Caller\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"proxy_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"increase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Caller"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file diff --git a/out/ProxyContract.sol/Logic.json b/out/ProxyContract.sol/Logic.json index 69391e32..dc94bf25 100644 --- a/out/ProxyContract.sol/Logic.json +++ b/out/ProxyContract.sol/Logic.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"increment","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"x","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"CallSuccess","inputs":[],"anonymous":false}],"bytecode":{"object":"0x608060405260636001553480156013575f5ffd5b50610226806100215f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630c55699c146100435780635c60da1b14610061578063d09de08a1461007f575b5f5ffd5b61004b61009d565b604051610058919061011f565b60405180910390f35b6100696100a3565b6040516100769190610177565b60405180910390f35b6100876100c7565b604051610094919061011f565b60405180910390f35b60015481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fd4c1379b05055358f3fa6e4ccdfedb07a73d2b3698e95c42d8dc5838961737e360405160405180910390a16001805461010291906101bd565b905090565b5f819050919050565b61011981610107565b82525050565b5f6020820190506101325f830184610110565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016182610138565b9050919050565b61017181610157565b82525050565b5f60208201905061018a5f830184610168565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101c782610107565b91506101d283610107565b92508282019050808211156101ea576101e9610190565b5b9291505056fea264697066735822122046adb7736c7c895e57767fbfaf4fefd50c8200f7a4c484baa543c07fcdf7130b64736f6c63430008220033","sourceMap":"2310:351:105:-:0;;;2427:2;2411:18;;2310:351;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630c55699c146100435780635c60da1b14610061578063d09de08a1461007f575b5f5ffd5b61004b61009d565b604051610058919061011f565b60405180910390f35b6100696100a3565b6040516100769190610177565b60405180910390f35b6100876100c7565b604051610094919061011f565b60405180910390f35b60015481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fd4c1379b05055358f3fa6e4ccdfedb07a73d2b3698e95c42d8dc5838961737e360405160405180910390a16001805461010291906101bd565b905090565b5f819050919050565b61011981610107565b82525050565b5f6020820190506101325f830184610110565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016182610138565b9050919050565b61017181610157565b82525050565b5f60208201905061018a5f830184610168565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101c782610107565b91506101d283610107565b92508282019050808211156101ea576101e9610190565b5b9291505056fea264697066735822122046adb7736c7c895e57767fbfaf4fefd50c8200f7a4c484baa543c07fcdf7130b64736f6c63430008220033","sourceMap":"2310:351:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2411:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2331:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2558:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2411:18;;;;:::o;2331:29::-;;;;;;;;;;;;;:::o;2558:101::-;2596:4;2617:13;;;;;;;;;;2651:1;2647;;:5;;;;:::i;:::-;2640:12;;2558:101;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:180::-;1076:77;1073:1;1066:88;1173:4;1170:1;1163:15;1197:4;1194:1;1187:15;1214:191;1254:3;1273:20;1291:1;1273:20;:::i;:::-;1268:25;;1307:20;1325:1;1307:20;:::i;:::-;1302:25;;1350:1;1347;1343:9;1336:16;;1371:3;1368:1;1365:10;1362:36;;;1378:18;;:::i;:::-;1362:36;1214:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"implementation()":"5c60da1b","increment()":"d09de08a","x()":"0c55699c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"CallSuccess\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"\\u903b\\u8f91\\u5408\\u7ea6\\uff0c\\u6267\\u884c\\u88ab\\u59d4\\u6258\\u7684\\u8c03\\u7528\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Logic\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"event","name":"CallSuccess","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"increment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Logic"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file +{"abi":[{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"increment","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"x","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"CallSuccess","inputs":[],"anonymous":false}],"bytecode":{"object":"0x608060405260636001553480156013575f5ffd5b50610226806100215f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630c55699c146100435780635c60da1b14610061578063d09de08a1461007f575b5f5ffd5b61004b61009d565b604051610058919061011f565b60405180910390f35b6100696100a3565b6040516100769190610177565b60405180910390f35b6100876100c7565b604051610094919061011f565b60405180910390f35b60015481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fd4c1379b05055358f3fa6e4ccdfedb07a73d2b3698e95c42d8dc5838961737e360405160405180910390a16001805461010291906101bd565b905090565b5f819050919050565b61011981610107565b82525050565b5f6020820190506101325f830184610110565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016182610138565b9050919050565b61017181610157565b82525050565b5f60208201905061018a5f830184610168565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101c782610107565b91506101d283610107565b92508282019050808211156101ea576101e9610190565b5b9291505056fea264697066735822122046adb7736c7c895e57767fbfaf4fefd50c8200f7a4c484baa543c07fcdf7130b64736f6c63430008220033","sourceMap":"2310:351:99:-:0;;;2427:2;2411:18;;2310:351;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630c55699c146100435780635c60da1b14610061578063d09de08a1461007f575b5f5ffd5b61004b61009d565b604051610058919061011f565b60405180910390f35b6100696100a3565b6040516100769190610177565b60405180910390f35b6100876100c7565b604051610094919061011f565b60405180910390f35b60015481565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fd4c1379b05055358f3fa6e4ccdfedb07a73d2b3698e95c42d8dc5838961737e360405160405180910390a16001805461010291906101bd565b905090565b5f819050919050565b61011981610107565b82525050565b5f6020820190506101325f830184610110565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016182610138565b9050919050565b61017181610157565b82525050565b5f60208201905061018a5f830184610168565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101c782610107565b91506101d283610107565b92508282019050808211156101ea576101e9610190565b5b9291505056fea264697066735822122046adb7736c7c895e57767fbfaf4fefd50c8200f7a4c484baa543c07fcdf7130b64736f6c63430008220033","sourceMap":"2310:351:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2411:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2331:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2558:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2411:18;;;;:::o;2331:29::-;;;;;;;;;;;;;:::o;2558:101::-;2596:4;2617:13;;;;;;;;;;2651:1;2647;;:5;;;;:::i;:::-;2640:12;;2558:101;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:180::-;1076:77;1073:1;1066:88;1173:4;1170:1;1163:15;1197:4;1194:1;1187:15;1214:191;1254:3;1273:20;1291:1;1273:20;:::i;:::-;1268:25;;1307:20;1325:1;1307:20;:::i;:::-;1302:25;;1350:1;1347;1343:9;1336:16;;1371:3;1368:1;1365:10;1362:36;;;1378:18;;:::i;:::-;1362:36;1214:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"implementation()":"5c60da1b","increment()":"d09de08a","x()":"0c55699c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"CallSuccess\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"\\u903b\\u8f91\\u5408\\u7ea6\\uff0c\\u6267\\u884c\\u88ab\\u59d4\\u6258\\u7684\\u8c03\\u7528\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Logic\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"event","name":"CallSuccess","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"increment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"x","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Logic"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file diff --git a/out/ProxyContract.sol/Proxy.json b/out/ProxyContract.sol/Proxy.json index f384315f..568fe2e9 100644 --- a/out/ProxyContract.sol/Proxy.json +++ b/out/ProxyContract.sol/Proxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610224380380610224833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b6101188061010c5f395ff3fe608060405260043610601e575f3560e01c80635c60da1b14602757601f565b5b6025604c565b005b3480156031575f5ffd5b506038606c565b6040516043919060cb565b60405180910390f35b5f54365f5f375f5f365f845af43d5f5f3e805f81146068573d5ff35b3d5ffd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f60b7826090565b9050919050565b60c58160af565b82525050565b5f60208201905060dc5f83018460be565b9291505056fea26469706673582212203b9a4e51a83c065825c24562a1eae10c299e3f271c727d153acdd1ea3b5b5d8864736f6c63430008220033","sourceMap":"300:1952:105:-:0;;;544:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;607:15;590:14;;:32;;;;;;;;;;;;;;;;;;544:85;300:1952;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;300:1952:105:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601e575f3560e01c80635c60da1b14602757601f565b5b6025604c565b005b3480156031575f5ffd5b506038606c565b6040516043919060cb565b60405180910390f35b5f54365f5f375f5f365f845af43d5f5f3e805f81146068573d5ff35b3d5ffd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f60b7826090565b9050919050565b60c58160af565b82525050565b5f60208201905060dc5f83018460be565b9291505056fea26469706673582212203b9a4e51a83c065825c24562a1eae10c299e3f271c727d153acdd1ea3b5b5d8864736f6c63430008220033","sourceMap":"300:1952:105:-:0;;;;;;;;;;;;;;;;;;;;;796:11;:9;:11::i;:::-;300:1952;321:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;885:1365;1222:1;1216:8;1257:14;1254:1;1251;1238:34;1723:1;1720;1704:14;1701:1;1684:15;1677:5;1664:61;1855:16;1852:1;1849;1834:38;1893:6;1967:1;1962:66;;;;2203:16;2200:1;2193:27;1962:66;1997:16;1994:1;1987:27;321:29;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"implementation()":"5c60da1b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Proxy\\u5408\\u7ea6\\u7684\\u6240\\u6709\\u8c03\\u7528\\u90fd\\u901a\\u8fc7`delegatecall`\\u64cd\\u4f5c\\u7801\\u59d4\\u6258\\u7ed9\\u53e6\\u4e00\\u4e2a\\u5408\\u7ea6\\u6267\\u884c\\u3002\\u540e\\u8005\\u88ab\\u79f0\\u4e3a\\u903b\\u8f91\\u5408\\u7ea6\\uff08Implementation\\uff09\\u3002 \\u59d4\\u6258\\u8c03\\u7528\\u7684\\u8fd4\\u56de\\u503c\\uff0c\\u4f1a\\u76f4\\u63a5\\u8fd4\\u56de\\u7ed9Proxy\\u7684\\u8c03\\u7528\\u8005\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u903b\\u8f91\\u5408\\u7ea6\\u5730\\u5740\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Proxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化逻辑合约地址"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Proxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":105} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610224380380610224833981810160405281019061003191906100d4565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100ff565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b6100b381610099565b81146100bd575f5ffd5b50565b5f815190506100ce816100aa565b92915050565b5f602082840312156100e9576100e8610076565b5b5f6100f6848285016100c0565b91505092915050565b6101188061010c5f395ff3fe608060405260043610601e575f3560e01c80635c60da1b14602757601f565b5b6025604c565b005b3480156031575f5ffd5b506038606c565b6040516043919060cb565b60405180910390f35b5f54365f5f375f5f365f845af43d5f5f3e805f81146068573d5ff35b3d5ffd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f60b7826090565b9050919050565b60c58160af565b82525050565b5f60208201905060dc5f83018460be565b9291505056fea26469706673582212203b9a4e51a83c065825c24562a1eae10c299e3f271c727d153acdd1ea3b5b5d8864736f6c63430008220033","sourceMap":"300:1952:99:-:0;;;544:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;607:15;590:14;;:32;;;;;;;;;;;;;;;;;;544:85;300:1952;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;300:1952:99:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601e575f3560e01c80635c60da1b14602757601f565b5b6025604c565b005b3480156031575f5ffd5b506038606c565b6040516043919060cb565b60405180910390f35b5f54365f5f375f5f365f845af43d5f5f3e805f81146068573d5ff35b3d5ffd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f60b7826090565b9050919050565b60c58160af565b82525050565b5f60208201905060dc5f83018460be565b9291505056fea26469706673582212203b9a4e51a83c065825c24562a1eae10c299e3f271c727d153acdd1ea3b5b5d8864736f6c63430008220033","sourceMap":"300:1952:99:-:0;;;;;;;;;;;;;;;;;;;;;796:11;:9;:11::i;:::-;300:1952;321:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;885:1365;1222:1;1216:8;1257:14;1254:1;1251;1238:34;1723:1;1720;1704:14;1701:1;1684:15;1677:5;1664:61;1855:16;1852:1;1849;1834:38;1893:6;1967:1;1962:66;;;;2203:16;2200:1;2193:27;1962:66;1997:16;1994:1;1987:27;321:29;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"implementation()":"5c60da1b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Proxy\\u5408\\u7ea6\\u7684\\u6240\\u6709\\u8c03\\u7528\\u90fd\\u901a\\u8fc7`delegatecall`\\u64cd\\u4f5c\\u7801\\u59d4\\u6258\\u7ed9\\u53e6\\u4e00\\u4e2a\\u5408\\u7ea6\\u6267\\u884c\\u3002\\u540e\\u8005\\u88ab\\u79f0\\u4e3a\\u903b\\u8f91\\u5408\\u7ea6\\uff08Implementation\\uff09\\u3002 \\u59d4\\u6258\\u8c03\\u7528\\u7684\\u8fd4\\u56de\\u503c\\uff0c\\u4f1a\\u76f4\\u63a5\\u8fd4\\u56de\\u7ed9Proxy\\u7684\\u8c03\\u7528\\u8005\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u903b\\u8f91\\u5408\\u7ea6\\u5730\\u5740\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/46_ProxyContract/ProxyContract.sol\":\"Proxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/46_ProxyContract/ProxyContract.sol\":{\"keccak256\":\"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871\",\"dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化逻辑合约地址"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/46_ProxyContract/ProxyContract.sol":"Proxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/46_ProxyContract/ProxyContract.sol":{"keccak256":"0xbbf91b2e28ef0c33856decf0b9c91f627fb9f63987ac032ae939d1764eb47c6e","urls":["bzz-raw://fb5709dafe76a866adb7178f44151bbd3f1bbba9a911cc59232fe3a7907c2871","dweb:/ipfs/QmSnWzSbRkn3oSyjLK8UTgEBGW7STU5HGVCEScLFE5MCZy"],"license":"MIT"}},"version":1},"id":99} \ No newline at end of file diff --git a/out/ReentrancyAttack.sol/Attack.json b/out/ReentrancyAttack.sol/Attack.json index 0fea4c74..6ab2286a 100644 --- a/out/ReentrancyAttack.sol/Attack.json +++ b/out/ReentrancyAttack.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract Bank"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"bank","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Bank"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610568380380610568833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b61044b8061011d5f395ff3fe608060405260043610610037575f3560e01c806312065fe01461010457806376cdb03b1461012e5780639e5faafc1461015857610100565b3661010057670de0b6b3a76400005f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106100fe575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e7575f5ffd5b505af11580156100f9573d5f5f3e3d5ffd5b505050505b005b5f5ffd5b34801561010f575f5ffd5b50610118610162565b60405161012591906102f1565b60405180910390f35b348015610139575f5ffd5b50610142610169565b60405161014f9190610384565b60405180910390f35b61016061018d565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000034146101d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ce906103f7565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610245575f5ffd5b505af1158015610257573d5f5f3e3d5ffd5b50505050505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156102c1575f5ffd5b505af11580156102d3573d5f5f3e3d5ffd5b50505050565b5f819050919050565b6102eb816102d9565b82525050565b5f6020820190506103045f8301846102e2565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61034c6103476103428461030a565b610329565b61030a565b9050919050565b5f61035d82610332565b9050919050565b5f61036e82610353565b9050919050565b61037e81610364565b82525050565b5f6020820190506103975f830184610375565b92915050565b5f82825260208201905092915050565b7f52657175697265203120457468657220746f2061747461636b000000000000005f82015250565b5f6103e160198361039d565b91506103ec826103ad565b602082019050919050565b5f6020820190508181035f83015261040e816103d5565b905091905056fea2646970667358221220e22a87379a4b0b6bc8f4f52ee52cd800b725879f103bf81434d5459d9e2ab9c964736f6c63430008220033","sourceMap":"908:751:127:-:0;;;1006:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1047:5;1040:4;;:12;;;;;;;;;;;;;;;;;;1006:53;908:751;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:379::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:78;1371:7;1362:6;1351:9;1347:22;1301:78;:::i;:::-;1291:88;;1247:142;1017:379;;;;:::o;908:751:127:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806312065fe01461010457806376cdb03b1461012e5780639e5faafc1461015857610100565b3661010057670de0b6b3a76400005f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106100fe575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e7575f5ffd5b505af11580156100f9573d5f5f3e3d5ffd5b505050505b005b5f5ffd5b34801561010f575f5ffd5b50610118610162565b60405161012591906102f1565b60405180910390f35b348015610139575f5ffd5b50610142610169565b60405161014f9190610384565b60405180910390f35b61016061018d565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000034146101d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ce906103f7565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610245575f5ffd5b505af1158015610257573d5f5f3e3d5ffd5b50505050505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156102c1575f5ffd5b505af11580156102d3573d5f5f3e3d5ffd5b50505050565b5f819050919050565b6102eb816102d9565b82525050565b5f6020820190506103045f8301846102e2565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61034c6103476103428461030a565b610329565b61030a565b9050919050565b5f61035d82610332565b9050919050565b5f61036e82610353565b9050919050565b61037e81610364565b82525050565b5f6020820190506103975f830184610375565b92915050565b5f82825260208201905092915050565b7f52657175697265203120457468657220746f2061747461636b000000000000005f82015250565b5f6103e160198361039d565b91506103ec826103ad565b602082019050919050565b5f6020820190508181035f83015261040e816103d5565b905091905056fea2646970667358221220e22a87379a4b0b6bc8f4f52ee52cd800b725879f103bf81434d5459d9e2ab9c964736f6c63430008220033","sourceMap":"908:751:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1227:7;1210:4;;;;;;;;;;;1202:21;;;:32;1198:78;;1250:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1198:78;908:751;;;;;1558:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;930:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1345:175;;;:::i;:::-;;1558:99;1603:7;1629:21;1622:28;;1558:99;:::o;930:16::-;;;;;;;;;;;;;:::o;1345:175::-;1411:7;1398:9;:20;1390:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;1458:4;;;;;;;;;;;:12;;;1478:7;1458:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1498:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:175::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:60::-;602:3;623:5;616:12;;574:60;;;:::o;640:142::-;690:9;723:53;741:34;750:24;768:5;750:24;:::i;:::-;741:34;:::i;:::-;723:53;:::i;:::-;710:66;;640:142;;;:::o;788:126::-;838:9;871:37;902:5;871:37;:::i;:::-;858:50;;788:126;;;:::o;920:140::-;984:9;1017:37;1048:5;1017:37;:::i;:::-;1004:50;;920:140;;;:::o;1066:159::-;1167:51;1212:5;1167:51;:::i;:::-;1162:3;1155:64;1066:159;;:::o;1231:250::-;1338:4;1376:2;1365:9;1361:18;1353:26;;1389:85;1471:1;1460:9;1456:17;1447:6;1389:85;:::i;:::-;1231:250;;;;:::o;1487:169::-;1571:11;1605:6;1600:3;1593:19;1645:4;1640:3;1636:14;1621:29;;1487:169;;;;:::o;1662:175::-;1802:27;1798:1;1790:6;1786:14;1779:51;1662:175;:::o;1843:366::-;1985:3;2006:67;2070:2;2065:3;2006:67;:::i;:::-;1999:74;;2082:93;2171:3;2082:93;:::i;:::-;2200:2;2195:3;2191:12;2184:19;;1843:366;;;:::o;2215:419::-;2381:4;2419:2;2408:9;2404:18;2396:26;;2468:9;2462:4;2458:20;2454:1;2443:9;2439:17;2432:47;2496:131;2622:4;2496:131;:::i;:::-;2488:139;;2215:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","bank()":"76cdb03b","getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Bank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contract Bank\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract Bank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"bank","outputs":[{"internalType":"contract Bank","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract Bank"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"bank","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Bank"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051610568380380610568833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b61044b8061011d5f395ff3fe608060405260043610610037575f3560e01c806312065fe01461010457806376cdb03b1461012e5780639e5faafc1461015857610100565b3661010057670de0b6b3a76400005f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106100fe575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e7575f5ffd5b505af11580156100f9573d5f5f3e3d5ffd5b505050505b005b5f5ffd5b34801561010f575f5ffd5b50610118610162565b60405161012591906102f1565b60405180910390f35b348015610139575f5ffd5b50610142610169565b60405161014f9190610384565b60405180910390f35b61016061018d565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000034146101d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ce906103f7565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610245575f5ffd5b505af1158015610257573d5f5f3e3d5ffd5b50505050505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156102c1575f5ffd5b505af11580156102d3573d5f5f3e3d5ffd5b50505050565b5f819050919050565b6102eb816102d9565b82525050565b5f6020820190506103045f8301846102e2565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61034c6103476103428461030a565b610329565b61030a565b9050919050565b5f61035d82610332565b9050919050565b5f61036e82610353565b9050919050565b61037e81610364565b82525050565b5f6020820190506103975f830184610375565b92915050565b5f82825260208201905092915050565b7f52657175697265203120457468657220746f2061747461636b000000000000005f82015250565b5f6103e160198361039d565b91506103ec826103ad565b602082019050919050565b5f6020820190508181035f83015261040e816103d5565b905091905056fea2646970667358221220e22a87379a4b0b6bc8f4f52ee52cd800b725879f103bf81434d5459d9e2ab9c964736f6c63430008220033","sourceMap":"908:751:121:-:0;;;1006:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1047:5;1040:4;;:12;;;;;;;;;;;;;;;;;;1006:53;908:751;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:379::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:78;1371:7;1362:6;1351:9;1347:22;1301:78;:::i;:::-;1291:88;;1247:142;1017:379;;;;:::o;908:751:121:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806312065fe01461010457806376cdb03b1461012e5780639e5faafc1461015857610100565b3661010057670de0b6b3a76400005f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106100fe575f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e7575f5ffd5b505af11580156100f9573d5f5f3e3d5ffd5b505050505b005b5f5ffd5b34801561010f575f5ffd5b50610118610162565b60405161012591906102f1565b60405180910390f35b348015610139575f5ffd5b50610142610169565b60405161014f9190610384565b60405180910390f35b61016061018d565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a764000034146101d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ce906103f7565b60405180910390fd5b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610245575f5ffd5b505af1158015610257573d5f5f3e3d5ffd5b50505050505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156102c1575f5ffd5b505af11580156102d3573d5f5f3e3d5ffd5b50505050565b5f819050919050565b6102eb816102d9565b82525050565b5f6020820190506103045f8301846102e2565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61034c6103476103428461030a565b610329565b61030a565b9050919050565b5f61035d82610332565b9050919050565b5f61036e82610353565b9050919050565b61037e81610364565b82525050565b5f6020820190506103975f830184610375565b92915050565b5f82825260208201905092915050565b7f52657175697265203120457468657220746f2061747461636b000000000000005f82015250565b5f6103e160198361039d565b91506103ec826103ad565b602082019050919050565b5f6020820190508181035f83015261040e816103d5565b905091905056fea2646970667358221220e22a87379a4b0b6bc8f4f52ee52cd800b725879f103bf81434d5459d9e2ab9c964736f6c63430008220033","sourceMap":"908:751:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1227:7;1210:4;;;;;;;;;;;1202:21;;;:32;1198:78;;1250:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1198:78;908:751;;;;;1558:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;930:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1345:175;;;:::i;:::-;;1558:99;1603:7;1629:21;1622:28;;1558:99;:::o;930:16::-;;;;;;;;;;;;;:::o;1345:175::-;1411:7;1398:9;:20;1390:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;1458:4;;;;;;;;;;;:12;;;1478:7;1458:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1498:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:175::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:60::-;602:3;623:5;616:12;;574:60;;;:::o;640:142::-;690:9;723:53;741:34;750:24;768:5;750:24;:::i;:::-;741:34;:::i;:::-;723:53;:::i;:::-;710:66;;640:142;;;:::o;788:126::-;838:9;871:37;902:5;871:37;:::i;:::-;858:50;;788:126;;;:::o;920:140::-;984:9;1017:37;1048:5;1017:37;:::i;:::-;1004:50;;920:140;;;:::o;1066:159::-;1167:51;1212:5;1167:51;:::i;:::-;1162:3;1155:64;1066:159;;:::o;1231:250::-;1338:4;1376:2;1365:9;1361:18;1353:26;;1389:85;1471:1;1460:9;1456:17;1447:6;1389:85;:::i;:::-;1231:250;;;;:::o;1487:169::-;1571:11;1605:6;1600:3;1593:19;1645:4;1640:3;1636:14;1621:29;;1487:169;;;;:::o;1662:175::-;1802:27;1798:1;1790:6;1786:14;1779:51;1662:175;:::o;1843:366::-;1985:3;2006:67;2070:2;2065:3;2006:67;:::i;:::-;1999:74;;2082:93;2171:3;2082:93;:::i;:::-;2200:2;2195:3;2191:12;2184:19;;1843:366;;;:::o;2215:419::-;2381:4;2419:2;2408:9;2404:18;2396:26;;2468:9;2462:4;2458:20;2454:1;2443:9;2439:17;2432:47;2496:131;2622:4;2496:131;:::i;:::-;2488:139;;2215:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","bank()":"76cdb03b","getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Bank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contract Bank\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract Bank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"bank","outputs":[{"internalType":"contract Bank","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":121} \ No newline at end of file diff --git a/out/ReentrancyAttack.sol/Bank.json b/out/ReentrancyAttack.sol/Bank.json index eb9f0668..cbfaf6b7 100644 --- a/out/ReentrancyAttack.sol/Bank.json +++ b/out/ReentrancyAttack.sol/Bank.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105178061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff168260405161017690610405565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f090610463565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea264697066735822122065c1fe8bd52e1abdfe8164e5d58bbfce7e43740107e35d5018baccb636a7826e64736f6c63430008220033","sourceMap":"69:837:127:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff168260405161017690610405565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f090610463565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea264697066735822122065c1fe8bd52e1abdfe8164e5d58bbfce7e43740107e35d5018baccb636a7826e64736f6c63430008220033","sourceMap":"69:837:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:435;;;;;;;;;;;;;:::i;:::-;;89:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;198:87;;;:::i;:::-;;805:99;850:7;876:21;869:28;;805:99;:::o;329:435::-;392:15;410:9;:21;420:10;410:21;;;;;;;;;;;;;;;;392:39;;459:1;449:7;:11;441:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;595:12;613:10;:15;;636:7;613:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:54;;;666:7;658:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;756:1;732:9;:21;742:10;732:21;;;;;;;;;;;;;;;:25;;;;358:406;;329:435::o;89:45::-;;;;;;;;;;;;;;;;;:::o;198:87::-;269:9;244;:21;254:10;244:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;198:87::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:147::-;2860:11;2897:3;2882:18;;2759:147;;;;:::o;2912:114::-;;:::o;3032:398::-;3191:3;3212:83;3293:1;3288:3;3212:83;:::i;:::-;3205:90;;3304:93;3393:3;3304:93;:::i;:::-;3422:1;3417:3;3413:11;3406:18;;3032:398;;;:::o;3436:379::-;3620:3;3642:147;3785:3;3642:147;:::i;:::-;3635:154;;3806:3;3799:10;;3436:379;;;:::o;3821:170::-;3961:22;3957:1;3949:6;3945:14;3938:46;3821:170;:::o;3997:366::-;4139:3;4160:67;4224:2;4219:3;4160:67;:::i;:::-;4153:74;;4236:93;4325:3;4236:93;:::i;:::-;4354:2;4349:3;4345:12;4338:19;;3997:366;;;:::o;4369:419::-;4535:4;4573:2;4562:9;4558:18;4550:26;;4622:9;4616:4;4612:20;4608:1;4597:9;4593:17;4586:47;4650:131;4776:4;4650:131;:::i;:::-;4642:139;;4369:419;;;:::o;4794:180::-;4842:77;4839:1;4832:88;4939:4;4936:1;4929:15;4963:4;4960:1;4953:15;4980:191;5020:3;5039:20;5057:1;5039:20;:::i;:::-;5034:25;;5073:20;5091:1;5073:20;:::i;:::-;5068:25;;5116:1;5113;5109:9;5102:16;;5137:3;5134:1;5131:10;5128:36;;;5144:18;;:::i;:::-;5128:36;4980:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"Bank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"Bank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105178061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff168260405161017690610405565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f090610463565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea264697066735822122065c1fe8bd52e1abdfe8164e5d58bbfce7e43740107e35d5018baccb636a7826e64736f6c63430008220033","sourceMap":"69:837:121:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff168260405161017690610405565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f090610463565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea264697066735822122065c1fe8bd52e1abdfe8164e5d58bbfce7e43740107e35d5018baccb636a7826e64736f6c63430008220033","sourceMap":"69:837:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:435;;;;;;;;;;;;;:::i;:::-;;89:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;198:87;;;:::i;:::-;;805:99;850:7;876:21;869:28;;805:99;:::o;329:435::-;392:15;410:9;:21;420:10;410:21;;;;;;;;;;;;;;;;392:39;;459:1;449:7;:11;441:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;595:12;613:10;:15;;636:7;613:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:54;;;666:7;658:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;756:1;732:9;:21;742:10;732:21;;;;;;;;;;;;;;;:25;;;;358:406;;329:435::o;89:45::-;;;;;;;;;;;;;;;;;:::o;198:87::-;269:9;244;:21;254:10;244:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;198:87::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:147::-;2860:11;2897:3;2882:18;;2759:147;;;;:::o;2912:114::-;;:::o;3032:398::-;3191:3;3212:83;3293:1;3288:3;3212:83;:::i;:::-;3205:90;;3304:93;3393:3;3304:93;:::i;:::-;3422:1;3417:3;3413:11;3406:18;;3032:398;;;:::o;3436:379::-;3620:3;3642:147;3785:3;3642:147;:::i;:::-;3635:154;;3806:3;3799:10;;3436:379;;;:::o;3821:170::-;3961:22;3957:1;3949:6;3945:14;3938:46;3821:170;:::o;3997:366::-;4139:3;4160:67;4224:2;4219:3;4160:67;:::i;:::-;4153:74;;4236:93;4325:3;4236:93;:::i;:::-;4354:2;4349:3;4345:12;4338:19;;3997:366;;;:::o;4369:419::-;4535:4;4573:2;4562:9;4558:18;4550:26;;4622:9;4616:4;4612:20;4608:1;4597:9;4593:17;4586:47;4650:131;4776:4;4650:131;:::i;:::-;4642:139;;4369:419;;;:::o;4794:180::-;4842:77;4839:1;4832:88;4939:4;4936:1;4929:15;4963:4;4960:1;4953:15;4980:191;5020:3;5039:20;5057:1;5039:20;:::i;:::-;5034:25;;5073:20;5091:1;5073:20;:::i;:::-;5068:25;;5116:1;5113;5109:9;5102:16;;5137:3;5134:1;5131:10;5128:36;;;5144:18;;:::i;:::-;5128:36;4980:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"Bank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"Bank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":121} \ No newline at end of file diff --git a/out/ReentrancyAttack.sol/GoodBank.json b/out/ReentrancyAttack.sol/GoodBank.json index c5323576..3c1bdafd 100644 --- a/out/ReentrancyAttack.sol/GoodBank.json +++ b/out/ReentrancyAttack.sol/GoodBank.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105178061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff16826040516101b790610405565b5f6040518083038185875af1925050503d805f81146101f1576040519150601f19603f3d011682016040523d82523d5f602084013e6101f6565b606091505b505090508061023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610463565b60405180910390fd5b5050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea2646970667358221220fe5213d16f5158681da9012d5797f14787bea7335fdedacfc78f5493c2af63bd64736f6c63430008220033","sourceMap":"1747:784:127:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff16826040516101b790610405565b5f6040518083038185875af1925050503d805f81146101f1576040519150601f19603f3d011682016040523d82523d5f602084013e6101f6565b606091505b505090508061023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610463565b60405180910390fd5b5050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea2646970667358221220fe5213d16f5158681da9012d5797f14787bea7335fdedacfc78f5493c2af63bd64736f6c63430008220033","sourceMap":"1747:784:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1916:508;;;;;;;;;;;;;:::i;:::-;;1771:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:87;;;:::i;:::-;;2430:99;2475:7;2501:21;2494:28;;2430:99;:::o;1916:508::-;1955:15;1973:9;:21;1983:10;1973:21;;;;;;;;;;;;;;;;1955:39;;2022:1;2012:7;:11;2004:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2302:1;2278:9;:21;2288:10;2278:21;;;;;;;;;;;;;;;:25;;;;2314:12;2332:10;:15;;2355:7;2332:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2313:54;;;2385:7;2377:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;1945:479;;1916:508::o;1771:45::-;;;;;;;;;;;;;;;;;:::o;1823:87::-;1894:9;1869;:21;1879:10;1869:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;1823:87::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:147::-;2860:11;2897:3;2882:18;;2759:147;;;;:::o;2912:114::-;;:::o;3032:398::-;3191:3;3212:83;3293:1;3288:3;3212:83;:::i;:::-;3205:90;;3304:93;3393:3;3304:93;:::i;:::-;3422:1;3417:3;3413:11;3406:18;;3032:398;;;:::o;3436:379::-;3620:3;3642:147;3785:3;3642:147;:::i;:::-;3635:154;;3806:3;3799:10;;3436:379;;;:::o;3821:170::-;3961:22;3957:1;3949:6;3945:14;3938:46;3821:170;:::o;3997:366::-;4139:3;4160:67;4224:2;4219:3;4160:67;:::i;:::-;4153:74;;4236:93;4325:3;4236:93;:::i;:::-;4354:2;4349:3;4345:12;4338:19;;3997:366;;;:::o;4369:419::-;4535:4;4573:2;4562:9;4558:18;4550:26;;4622:9;4616:4;4612:20;4608:1;4597:9;4593:17;4586:47;4650:131;4776:4;4650:131;:::i;:::-;4642:139;;4369:419;;;:::o;4794:180::-;4842:77;4839:1;4832:88;4939:4;4936:1;4929:15;4963:4;4960:1;4953:15;4980:191;5020:3;5039:20;5057:1;5039:20;:::i;:::-;5034:25;;5073:20;5091:1;5073:20;:::i;:::-;5068:25;;5116:1;5113;5109:9;5102:16;;5137:3;5134:1;5131:10;5128:36;;;5144:18;;:::i;:::-;5128:36;4980:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"GoodBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"GoodBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105178061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff16826040516101b790610405565b5f6040518083038185875af1925050503d805f81146101f1576040519150601f19603f3d011682016040523d82523d5f602084013e6101f6565b606091505b505090508061023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610463565b60405180910390fd5b5050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea2646970667358221220fe5213d16f5158681da9012d5797f14787bea7335fdedacfc78f5493c2af63bd64736f6c63430008220033","sourceMap":"1747:784:121:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b60405161006391906102be565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610335565b61023e565b6040516100b591906102be565b60405180910390f35b6100c6610252565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610148906103ba565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff16826040516101b790610405565b5f6040518083038185875af1925050503d805f81146101f1576040519150601f19603f3d011682016040523d82523d5f602084013e6101f6565b606091505b505090508061023a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023190610463565b60405180910390fd5b5050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029d91906104ae565b92505081905550565b5f819050919050565b6102b8816102a6565b82525050565b5f6020820190506102d15f8301846102af565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610304826102db565b9050919050565b610314816102fa565b811461031e575f5ffd5b50565b5f8135905061032f8161030b565b92915050565b5f6020828403121561034a576103496102d7565b5b5f61035784828501610321565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103a4601483610360565b91506103af82610370565b602082019050919050565b5f6020820190508181035f8301526103d181610398565b9050919050565b5f81905092915050565b50565b5f6103f05f836103d8565b91506103fb826103e2565b5f82019050919050565b5f61040f826103e5565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f61044d601483610360565b915061045882610419565b602082019050919050565b5f6020820190508181035f83015261047a81610441565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6104b8826102a6565b91506104c3836102a6565b92508282019050808211156104db576104da610481565b5b9291505056fea2646970667358221220fe5213d16f5158681da9012d5797f14787bea7335fdedacfc78f5493c2af63bd64736f6c63430008220033","sourceMap":"1747:784:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1916:508;;;;;;;;;;;;;:::i;:::-;;1771:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:87;;;:::i;:::-;;2430:99;2475:7;2501:21;2494:28;;2430:99;:::o;1916:508::-;1955:15;1973:9;:21;1983:10;1973:21;;;;;;;;;;;;;;;;1955:39;;2022:1;2012:7;:11;2004:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2302:1;2278:9;:21;2288:10;2278:21;;;;;;;;;;;;;;;:25;;;;2314:12;2332:10;:15;;2355:7;2332:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2313:54;;;2385:7;2377:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;1945:479;;1916:508::o;1771:45::-;;;;;;;;;;;;;;;;;:::o;1823:87::-;1894:9;1869;:21;1879:10;1869:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;1823:87::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:147::-;2860:11;2897:3;2882:18;;2759:147;;;;:::o;2912:114::-;;:::o;3032:398::-;3191:3;3212:83;3293:1;3288:3;3212:83;:::i;:::-;3205:90;;3304:93;3393:3;3304:93;:::i;:::-;3422:1;3417:3;3413:11;3406:18;;3032:398;;;:::o;3436:379::-;3620:3;3642:147;3785:3;3642:147;:::i;:::-;3635:154;;3806:3;3799:10;;3436:379;;;:::o;3821:170::-;3961:22;3957:1;3949:6;3945:14;3938:46;3821:170;:::o;3997:366::-;4139:3;4160:67;4224:2;4219:3;4160:67;:::i;:::-;4153:74;;4236:93;4325:3;4236:93;:::i;:::-;4354:2;4349:3;4345:12;4338:19;;3997:366;;;:::o;4369:419::-;4535:4;4573:2;4562:9;4558:18;4550:26;;4622:9;4616:4;4612:20;4608:1;4597:9;4593:17;4586:47;4650:131;4776:4;4650:131;:::i;:::-;4642:139;;4369:419;;;:::o;4794:180::-;4842:77;4839:1;4832:88;4939:4;4936:1;4929:15;4963:4;4960:1;4953:15;4980:191;5020:3;5039:20;5057:1;5039:20;:::i;:::-;5034:25;;5073:20;5091:1;5073:20;:::i;:::-;5068:25;;5116:1;5113;5109:9;5102:16;;5137:3;5134:1;5131:10;5128:36;;;5144:18;;:::i;:::-;5128:36;4980:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"GoodBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"GoodBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":121} \ No newline at end of file diff --git a/out/ReentrancyAttack.sol/ProtectedBank.json b/out/ReentrancyAttack.sol/ProtectedBank.json index 7f5acf1b..465152cb 100644 --- a/out/ReentrancyAttack.sol/ProtectedBank.json +++ b/out/ReentrancyAttack.sol/ProtectedBank.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105d18061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b6040516100639190610310565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610387565b610290565b6040516100b59190610310565b60405180910390f35b6100c66102a4565b005b5f47905090565b5f60015414610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010a9061040c565b60405180910390fd5b600180819055505f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161019c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019390610474565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16826040516101c1906104bf565b5f6040518083038185875af1925050503d805f81146101fb576040519150601f19603f3d011682016040523d82523d5f602084013e610200565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9061051d565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505f600181905550565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ef9190610568565b92505081905550565b5f819050919050565b61030a816102f8565b82525050565b5f6020820190506103235f830184610301565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103568261032d565b9050919050565b6103668161034c565b8114610370575f5ffd5b50565b5f813590506103818161035d565b92915050565b5f6020828403121561039c5761039b610329565b5b5f6103a984828501610373565b91505092915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6103f6601f836103b2565b9150610401826103c2565b602082019050919050565b5f6020820190508181035f830152610423816103ea565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61045e6014836103b2565b91506104698261042a565b602082019050919050565b5f6020820190508181035f83015261048b81610452565b9050919050565b5f81905092915050565b50565b5f6104aa5f83610492565b91506104b58261049c565b5f82019050919050565b5f6104c98261049f565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6105076014836103b2565b9150610512826104d3565b602082019050919050565b5f6020820190508181035f830152610534816104fb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610572826102f8565b915061057d836102f8565b92508282019050808211156105955761059461053b565b5b9291505056fea264697066735822122079e0c3ee4ae96ffff5e8d9ba6bed33ee2022268b0c237fc80558356492ed192964736f6c63430008220033","sourceMap":"2572:1026:127:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b6040516100639190610310565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610387565b610290565b6040516100b59190610310565b60405180910390f35b6100c66102a4565b005b5f47905090565b5f60015414610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010a9061040c565b60405180910390fd5b600180819055505f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161019c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019390610474565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16826040516101c1906104bf565b5f6040518083038185875af1925050503d805f81146101fb576040519150601f19603f3d011682016040523d82523d5f602084013e610200565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9061051d565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505f600181905550565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ef9190610568565b92505081905550565b5f819050919050565b61030a816102f8565b82525050565b5f6020820190506103235f830184610301565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103568261032d565b9050919050565b6103668161034c565b8114610370575f5ffd5b50565b5f813590506103818161035d565b92915050565b5f6020828403121561039c5761039b610329565b5b5f6103a984828501610373565b91505092915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6103f6601f836103b2565b9150610401826103c2565b602082019050919050565b5f6020820190508181035f830152610423816103ea565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61045e6014836103b2565b91506104698261042a565b602082019050919050565b5f6020820190508181035f83015261048b81610452565b9050919050565b5f81905092915050565b50565b5f6104aa5f83610492565b91506104b58261049c565b5f82019050919050565b5f6104c98261049f565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6105076014836103b2565b9150610512826104d3565b602082019050919050565b5f6020820190508181035f830152610534816104fb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610572826102f8565b915061057d836102f8565b92508282019050808211156105955761059461053b565b5b9291505056fea264697066735822122079e0c3ee4ae96ffff5e8d9ba6bed33ee2022268b0c237fc80558356492ed192964736f6c63430008220033","sourceMap":"2572:1026:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3497:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3189:302;;;;;;;;;;;;;:::i;:::-;;2601:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3052:87;;;:::i;:::-;;3497:99;3542:7;3568:21;3561:28;;3497:99;:::o;3189:302::-;2831:1;2820:7;;:12;2812:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:1;2946:7;:11;;;;3240:15:::1;3258:9;:21;3268:10;3258:21;;;;;;;;;;;;;;;;3240:39;;3307:1;3297:7;:11;3289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;3345:12;3363:10;:15;;3386:7;3363:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3344:54;;;3416:7;3408:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:1;3459:9;:21;3469:10;3459:21;;;;;;;;;;;;;;;:25;;;;3230:261;;3037:1:::0;3027:7;:11;;;;3189:302::o;2601:45::-;;;;;;;;;;;;;;;;;:::o;3052:87::-;3123:9;3098;:21;3108:10;3098:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;3052:87::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:181::-;1926:33;1922:1;1914:6;1910:14;1903:57;1786:181;:::o;1973:366::-;2115:3;2136:67;2200:2;2195:3;2136:67;:::i;:::-;2129:74;;2212:93;2301:3;2212:93;:::i;:::-;2330:2;2325:3;2321:12;2314:19;;1973:366;;;:::o;2345:419::-;2511:4;2549:2;2538:9;2534:18;2526:26;;2598:9;2592:4;2588:20;2584:1;2573:9;2569:17;2562:47;2626:131;2752:4;2626:131;:::i;:::-;2618:139;;2345:419;;;:::o;2770:170::-;2910:22;2906:1;2898:6;2894:14;2887:46;2770:170;:::o;2946:366::-;3088:3;3109:67;3173:2;3168:3;3109:67;:::i;:::-;3102:74;;3185:93;3274:3;3185:93;:::i;:::-;3303:2;3298:3;3294:12;3287:19;;2946:366;;;:::o;3318:419::-;3484:4;3522:2;3511:9;3507:18;3499:26;;3571:9;3565:4;3561:20;3557:1;3546:9;3542:17;3535:47;3599:131;3725:4;3599:131;:::i;:::-;3591:139;;3318:419;;;:::o;3743:147::-;3844:11;3881:3;3866:18;;3743:147;;;;:::o;3896:114::-;;:::o;4016:398::-;4175:3;4196:83;4277:1;4272:3;4196:83;:::i;:::-;4189:90;;4288:93;4377:3;4288:93;:::i;:::-;4406:1;4401:3;4397:11;4390:18;;4016:398;;;:::o;4420:379::-;4604:3;4626:147;4769:3;4626:147;:::i;:::-;4619:154;;4790:3;4783:10;;4420:379;;;:::o;4805:170::-;4945:22;4941:1;4933:6;4929:14;4922:46;4805:170;:::o;4981:366::-;5123:3;5144:67;5208:2;5203:3;5144:67;:::i;:::-;5137:74;;5220:93;5309:3;5220:93;:::i;:::-;5338:2;5333:3;5329:12;5322:19;;4981:366;;;:::o;5353:419::-;5519:4;5557:2;5546:9;5542:18;5534:26;;5606:9;5600:4;5596:20;5592:1;5581:9;5577:17;5570:47;5634:131;5760:4;5634:131;:::i;:::-;5626:139;;5353:419;;;:::o;5778:180::-;5826:77;5823:1;5816:88;5923:4;5920:1;5913:15;5947:4;5944:1;5937:15;5964:191;6004:3;6023:20;6041:1;6023:20;:::i;:::-;6018:25;;6057:20;6075:1;6057:20;:::i;:::-;6052:25;;6100:1;6097;6093:9;6086:16;;6121:3;6118:1;6115:10;6112:36;;;6128:18;;:::i;:::-;6112:36;5964:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"ProtectedBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"ProtectedBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":127} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105d18061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b6040516100639190610310565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610387565b610290565b6040516100b59190610310565b60405180910390f35b6100c66102a4565b005b5f47905090565b5f60015414610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010a9061040c565b60405180910390fd5b600180819055505f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161019c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019390610474565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16826040516101c1906104bf565b5f6040518083038185875af1925050503d805f81146101fb576040519150601f19603f3d011682016040523d82523d5f602084013e610200565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9061051d565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505f600181905550565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ef9190610568565b92505081905550565b5f819050919050565b61030a816102f8565b82525050565b5f6020820190506103235f830184610301565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103568261032d565b9050919050565b6103668161034c565b8114610370575f5ffd5b50565b5f813590506103818161035d565b92915050565b5f6020828403121561039c5761039b610329565b5b5f6103a984828501610373565b91505092915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6103f6601f836103b2565b9150610401826103c2565b602082019050919050565b5f6020820190508181035f830152610423816103ea565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61045e6014836103b2565b91506104698261042a565b602082019050919050565b5f6020820190508181035f83015261048b81610452565b9050919050565b5f81905092915050565b50565b5f6104aa5f83610492565b91506104b58261049c565b5f82019050919050565b5f6104c98261049f565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6105076014836103b2565b9150610512826104d3565b602082019050919050565b5f6020820190508181035f830152610534816104fb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610572826102f8565b915061057d836102f8565b92508282019050808211156105955761059461053b565b5b9291505056fea264697066735822122079e0c3ee4ae96ffff5e8d9ba6bed33ee2022268b0c237fc80558356492ed192964736f6c63430008220033","sourceMap":"2572:1026:121:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b6040516100639190610310565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a39190610387565b610290565b6040516100b59190610310565b60405180910390f35b6100c66102a4565b005b5f47905090565b5f60015414610113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010a9061040c565b60405180910390fd5b600180819055505f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811161019c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019390610474565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16826040516101c1906104bf565b5f6040518083038185875af1925050503d805f81146101fb576040519150601f19603f3d011682016040523d82523d5f602084013e610200565b606091505b5050905080610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9061051d565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505f600181905550565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102ef9190610568565b92505081905550565b5f819050919050565b61030a816102f8565b82525050565b5f6020820190506103235f830184610301565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103568261032d565b9050919050565b6103668161034c565b8114610370575f5ffd5b50565b5f813590506103818161035d565b92915050565b5f6020828403121561039c5761039b610329565b5b5f6103a984828501610373565b91505092915050565b5f82825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6103f6601f836103b2565b9150610401826103c2565b602082019050919050565b5f6020820190508181035f830152610423816103ea565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f61045e6014836103b2565b91506104698261042a565b602082019050919050565b5f6020820190508181035f83015261048b81610452565b9050919050565b5f81905092915050565b50565b5f6104aa5f83610492565b91506104b58261049c565b5f82019050919050565b5f6104c98261049f565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f6105076014836103b2565b9150610512826104d3565b602082019050919050565b5f6020820190508181035f830152610534816104fb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610572826102f8565b915061057d836102f8565b92508282019050808211156105955761059461053b565b5b9291505056fea264697066735822122079e0c3ee4ae96ffff5e8d9ba6bed33ee2022268b0c237fc80558356492ed192964736f6c63430008220033","sourceMap":"2572:1026:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3497:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3189:302;;;;;;;;;;;;;:::i;:::-;;2601:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3052:87;;;:::i;:::-;;3497:99;3542:7;3568:21;3561:28;;3497:99;:::o;3189:302::-;2831:1;2820:7;;:12;2812:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:1;2946:7;:11;;;;3240:15:::1;3258:9;:21;3268:10;3258:21;;;;;;;;;;;;;;;;3240:39;;3307:1;3297:7;:11;3289:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;3345:12;3363:10;:15;;3386:7;3363:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3344:54;;;3416:7;3408:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:1;3459:9;:21;3469:10;3459:21;;;;;;;;;;;;;;;:25;;;;3230:261;;3037:1:::0;3027:7;:11;;;;3189:302::o;2601:45::-;;;;;;;;;;;;;;;;;:::o;3052:87::-;3123:9;3098;:21;3108:10;3098:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;3052:87::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:181::-;1926:33;1922:1;1914:6;1910:14;1903:57;1786:181;:::o;1973:366::-;2115:3;2136:67;2200:2;2195:3;2136:67;:::i;:::-;2129:74;;2212:93;2301:3;2212:93;:::i;:::-;2330:2;2325:3;2321:12;2314:19;;1973:366;;;:::o;2345:419::-;2511:4;2549:2;2538:9;2534:18;2526:26;;2598:9;2592:4;2588:20;2584:1;2573:9;2569:17;2562:47;2626:131;2752:4;2626:131;:::i;:::-;2618:139;;2345:419;;;:::o;2770:170::-;2910:22;2906:1;2898:6;2894:14;2887:46;2770:170;:::o;2946:366::-;3088:3;3109:67;3173:2;3168:3;3109:67;:::i;:::-;3102:74;;3185:93;3274:3;3185:93;:::i;:::-;3303:2;3298:3;3294:12;3287:19;;2946:366;;;:::o;3318:419::-;3484:4;3522:2;3511:9;3507:18;3499:26;;3571:9;3565:4;3561:20;3557:1;3546:9;3542:17;3535:47;3599:131;3725:4;3599:131;:::i;:::-;3591:139;;3318:419;;;:::o;3743:147::-;3844:11;3881:3;3866:18;;3743:147;;;;:::o;3896:114::-;;:::o;4016:398::-;4175:3;4196:83;4277:1;4272:3;4196:83;:::i;:::-;4189:90;;4288:93;4377:3;4288:93;:::i;:::-;4406:1;4401:3;4397:11;4390:18;;4016:398;;;:::o;4420:379::-;4604:3;4626:147;4769:3;4626:147;:::i;:::-;4619:154;;4790:3;4783:10;;4420:379;;;:::o;4805:170::-;4945:22;4941:1;4933:6;4929:14;4922:46;4805:170;:::o;4981:366::-;5123:3;5144:67;5208:2;5203:3;5144:67;:::i;:::-;5137:74;;5220:93;5309:3;5220:93;:::i;:::-;5338:2;5333:3;5329:12;5322:19;;4981:366;;;:::o;5353:419::-;5519:4;5557:2;5546:9;5542:18;5534:26;;5606:9;5600:4;5596:20;5592:1;5581:9;5577:17;5570:47;5634:131;5760:4;5634:131;:::i;:::-;5626:139;;5353:419;;;:::o;5778:180::-;5826:77;5823:1;5816:88;5923:4;5920:1;5913:15;5947:4;5944:1;5937:15;5964:191;6004:3;6023:20;6041:1;6023:20;:::i;:::-;6018:25;;6057:20;6075:1;6057:20;:::i;:::-;6052:25;;6100:1;6097;6093:9;6086:16;;6121:3;6118:1;6115:10;6112:36;;;6128:18;;:::i;:::-;6112:36;5964:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":\"ProtectedBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S01_ReentrancyAttack/ReentrancyAttack.sol\":{\"keccak256\":\"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834\",\"dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":"ProtectedBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S01_ReentrancyAttack/ReentrancyAttack.sol":{"keccak256":"0xb421308d4f5901d3d0356e6d135b0a0a43d92a0d5668b59f07522d5b7e2b8c88","urls":["bzz-raw://b72a80d185b3486d3f3cf36630beb8a83eeeb78a9cd280dcb832b130ffca3834","dweb:/ipfs/QmVbTBpnmYNfHwun846bXX9fHQ6RtYcjGaXi1pJECxbfi6"],"license":"MIT"}},"version":1},"id":121} \ No newline at end of file diff --git a/out/Return.sol/Return.json b/out/Return.sol/Return.json index c153688d..cb8c7d97 100644 --- a/out/Return.sol/Return.json +++ b/out/Return.sol/Return.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"readReturn","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"returnMultiple","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"},{"type":"function","name":"returnNamed","inputs":[],"outputs":[{"name":"_number","type":"uint256","internalType":"uint256"},{"name":"_bool","type":"bool","internalType":"bool"},{"name":"_array","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"},{"type":"function","name":"returnNamed2","inputs":[],"outputs":[{"name":"_number","type":"uint256","internalType":"uint256"},{"name":"_bool","type":"bool","internalType":"bool"},{"name":"_array","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102f38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633dece5111461004e5780636f5903301461006e5780638552dc0814610078578063e61e400814610098575b5f5ffd5b6100566100b8565b60405161006593929190610288565b60405180910390f35b6100766100ee565b005b610080610123565b60405161008f93929190610288565b60405180910390f35b6100a0610159565b6040516100af93929190610288565b60405180910390f35b5f5f6100c261018f565b600292505f91506040518060600160405280600381526020016002815260200160018152509050909192565b5f5f5f6100f961018f565b6101016100b8565b8093508195508296505050506101156100b8565b909150508092505050505050565b5f5f61012d61018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b5f5f61016361018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b6040518060600160405280600390602082028036833780820191505090505090565b5f819050919050565b6101c3816101b1565b82525050565b5f8115159050919050565b6101dd816101c9565b82525050565b5f60039050919050565b5f81905092915050565b5f819050919050565b610209816101b1565b82525050565b5f61021a8383610200565b60208301905092915050565b5f602082019050919050565b61023b816101e3565b61024581846101ed565b9250610250826101f7565b805f5b83811015610280578151610267878261020f565b965061027283610226565b925050600181019050610253565b505050505050565b5f60a08201905061029b5f8301866101ba565b6102a860208301856101d4565b6102b56040830184610232565b94935050505056fea264697066735822122086293a76ad2c51589fa6f3e1b0f676cf85f1b303e953e151a96ccf64503c3a3e64736f6c63430008220033","sourceMap":"116:958:47:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633dece5111461004e5780636f5903301461006e5780638552dc0814610078578063e61e400814610098575b5f5ffd5b6100566100b8565b60405161006593929190610288565b60405180910390f35b6100766100ee565b005b610080610123565b60405161008f93929190610288565b60405180910390f35b6100a0610159565b6040516100af93929190610288565b60405180910390f35b5f5f6100c261018f565b600292505f91506040518060600160405280600381526020016002815260200160018152509050909192565b5f5f5f6100f961018f565b6101016100b8565b8093508195508296505050506101156100b8565b909150508092505050505050565b5f5f61012d61018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b5f5f61016361018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b6040518060600160405280600390602082028036833780820191505090505090565b5f819050919050565b6101c3816101b1565b82525050565b5f8115159050919050565b6101dd816101c9565b82525050565b5f60039050919050565b5f81905092915050565b5f819050919050565b610209816101b1565b82525050565b5f61021a8383610200565b60208301905092915050565b5f602082019050919050565b61023b816101e3565b61024581846101ed565b9250610250826101f7565b805f5b83811015610280578151610267878261020f565b965061027283610226565b925050600181019050610253565b505050505050565b5f60a08201905061029b5f8301866101ba565b6102a860208301856101d4565b6102b56040830184610232565b94935050505056fea264697066735822122086293a76ad2c51589fa6f3e1b0f676cf85f1b303e953e151a96ccf64503c3a3e64736f6c63430008220033","sourceMap":"116:958:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:184;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;751:321;;;:::i;:::-;;556:148;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;164:129;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;322:184;365:15;382:10;394:24;;:::i;:::-;439:1;429:11;;458:5;450:13;;474:25;;;;;;;;492:1;474:25;;;;495:1;474:25;;;;497:1;474:25;;;;;322:184;;;:::o;751:321::-;827:15;852:10;872:11;893:24;;:::i;:::-;954:13;:11;:13::i;:::-;927:40;;;;;;;;;;;;1052:13;:11;:13::i;:::-;1037:28;;;;;;;;784:288;;;;751:321::o;556:148::-;600:15;617:10;629:24;;:::i;:::-;671:1;674:4;664:33;;;;;;;;689:1;664:33;;;;692:1;664:33;;;;694:1;664:33;;;;;;;;;556:148;;;:::o;164:129::-;210:7;219:4;225:17;;:::i;:::-;260:1;263:4;253:33;;;;;;;;278:1;253:33;;;;281:1;253:33;;;;283:1;253:33;;;;;;;;;164:129;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:90::-;248:7;291:5;284:13;277:21;266:32;;214:90;;;:::o;310:109::-;391:21;406:5;391:21;:::i;:::-;386:3;379:34;310:109;;:::o;425:104::-;490:6;518:4;508:14;;425:104;;;:::o;535:143::-;632:11;669:3;654:18;;535:143;;;;:::o;684:98::-;749:4;772:3;764:11;;684:98;;;:::o;788:108::-;865:24;883:5;865:24;:::i;:::-;860:3;853:37;788:108;;:::o;902:179::-;971:10;992:46;1034:3;1026:6;992:46;:::i;:::-;1070:4;1065:3;1061:14;1047:28;;902:179;;;;:::o;1087:111::-;1155:4;1187;1182:3;1178:14;1170:22;;1087:111;;;:::o;1236:694::-;1372:52;1418:5;1372:52;:::i;:::-;1440:84;1517:6;1512:3;1440:84;:::i;:::-;1433:91;;1548:54;1596:5;1548:54;:::i;:::-;1625:7;1656:1;1641:282;1666:6;1663:1;1660:13;1641:282;;;1742:6;1736:13;1769:63;1828:3;1813:13;1769:63;:::i;:::-;1762:70;;1855:58;1906:6;1855:58;:::i;:::-;1845:68;;1701:222;1688:1;1685;1681:9;1676:14;;1641:282;;;1645:14;1348:582;;;1236:694;;:::o;1936:523::-;2125:4;2163:3;2152:9;2148:19;2140:27;;2177:71;2245:1;2234:9;2230:17;2221:6;2177:71;:::i;:::-;2258:66;2320:2;2309:9;2305:18;2296:6;2258:66;:::i;:::-;2334:118;2448:2;2437:9;2433:18;2424:6;2334:118;:::i;:::-;1936:523;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"readReturn()":"6f590330","returnMultiple()":"e61e4008","returnNamed()":"3dece511","returnNamed2()":"8552dc08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"readReturn\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnMultiple\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnNamed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_bool\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"_array\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnNamed2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_bool\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"_array\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/04_Return/Return.sol\":\"Return\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/04_Return/Return.sol\":{\"keccak256\":\"0xe9c9f06533c74aa305f08f1ece07a856377c297c2ca04743d7240fc36e064b00\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://672dae19649cf6549bd21487dd2397e545173b6d9dee32eafb97cfad92715cff\",\"dweb:/ipfs/QmWikPzCk6utbmwFKgL4PqqqGFSAKA3ZyAYsKwidGggrAP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"readReturn"},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnMultiple","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256[3]","name":"","type":"uint256[3]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnNamed","outputs":[{"internalType":"uint256","name":"_number","type":"uint256"},{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"uint256[3]","name":"_array","type":"uint256[3]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnNamed2","outputs":[{"internalType":"uint256","name":"_number","type":"uint256"},{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"uint256[3]","name":"_array","type":"uint256[3]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/04_Return/Return.sol":"Return"},"evmVersion":"prague","libraries":{}},"sources":{"src/04_Return/Return.sol":{"keccak256":"0xe9c9f06533c74aa305f08f1ece07a856377c297c2ca04743d7240fc36e064b00","urls":["bzz-raw://672dae19649cf6549bd21487dd2397e545173b6d9dee32eafb97cfad92715cff","dweb:/ipfs/QmWikPzCk6utbmwFKgL4PqqqGFSAKA3ZyAYsKwidGggrAP"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file +{"abi":[{"type":"function","name":"readReturn","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"returnMultiple","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"},{"type":"function","name":"returnNamed","inputs":[],"outputs":[{"name":"_number","type":"uint256","internalType":"uint256"},{"name":"_bool","type":"bool","internalType":"bool"},{"name":"_array","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"},{"type":"function","name":"returnNamed2","inputs":[],"outputs":[{"name":"_number","type":"uint256","internalType":"uint256"},{"name":"_bool","type":"bool","internalType":"bool"},{"name":"_array","type":"uint256[3]","internalType":"uint256[3]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506102f38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633dece5111461004e5780636f5903301461006e5780638552dc0814610078578063e61e400814610098575b5f5ffd5b6100566100b8565b60405161006593929190610288565b60405180910390f35b6100766100ee565b005b610080610123565b60405161008f93929190610288565b60405180910390f35b6100a0610159565b6040516100af93929190610288565b60405180910390f35b5f5f6100c261018f565b600292505f91506040518060600160405280600381526020016002815260200160018152509050909192565b5f5f5f6100f961018f565b6101016100b8565b8093508195508296505050506101156100b8565b909150508092505050505050565b5f5f61012d61018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b5f5f61016361018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b6040518060600160405280600390602082028036833780820191505090505090565b5f819050919050565b6101c3816101b1565b82525050565b5f8115159050919050565b6101dd816101c9565b82525050565b5f60039050919050565b5f81905092915050565b5f819050919050565b610209816101b1565b82525050565b5f61021a8383610200565b60208301905092915050565b5f602082019050919050565b61023b816101e3565b61024581846101ed565b9250610250826101f7565b805f5b83811015610280578151610267878261020f565b965061027283610226565b925050600181019050610253565b505050505050565b5f60a08201905061029b5f8301866101ba565b6102a860208301856101d4565b6102b56040830184610232565b94935050505056fea264697066735822122086293a76ad2c51589fa6f3e1b0f676cf85f1b303e953e151a96ccf64503c3a3e64736f6c63430008220033","sourceMap":"116:958:47:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80633dece5111461004e5780636f5903301461006e5780638552dc0814610078578063e61e400814610098575b5f5ffd5b6100566100b8565b60405161006593929190610288565b60405180910390f35b6100766100ee565b005b610080610123565b60405161008f93929190610288565b60405180910390f35b6100a0610159565b6040516100af93929190610288565b60405180910390f35b5f5f6100c261018f565b600292505f91506040518060600160405280600381526020016002815260200160018152509050909192565b5f5f5f6100f961018f565b6101016100b8565b8093508195508296505050506101156100b8565b909150508092505050505050565b5f5f61012d61018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b5f5f61016361018f565b600180604051806060016040528060018152602001600281526020016005815250925092509250909192565b6040518060600160405280600390602082028036833780820191505090505090565b5f819050919050565b6101c3816101b1565b82525050565b5f8115159050919050565b6101dd816101c9565b82525050565b5f60039050919050565b5f81905092915050565b5f819050919050565b610209816101b1565b82525050565b5f61021a8383610200565b60208301905092915050565b5f602082019050919050565b61023b816101e3565b61024581846101ed565b9250610250826101f7565b805f5b83811015610280578151610267878261020f565b965061027283610226565b925050600181019050610253565b505050505050565b5f60a08201905061029b5f8301866101ba565b6102a860208301856101d4565b6102b56040830184610232565b94935050505056fea264697066735822122086293a76ad2c51589fa6f3e1b0f676cf85f1b303e953e151a96ccf64503c3a3e64736f6c63430008220033","sourceMap":"116:958:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:184;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;751:321;;;:::i;:::-;;556:148;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;164:129;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;322:184;365:15;382:10;394:24;;:::i;:::-;439:1;429:11;;458:5;450:13;;474:25;;;;;;;;492:1;474:25;;;;495:1;474:25;;;;497:1;474:25;;;;;322:184;;;:::o;751:321::-;827:15;852:10;872:11;893:24;;:::i;:::-;954:13;:11;:13::i;:::-;927:40;;;;;;;;;;;;1052:13;:11;:13::i;:::-;1037:28;;;;;;;;784:288;;;;751:321::o;556:148::-;600:15;617:10;629:24;;:::i;:::-;671:1;674:4;664:33;;;;;;;;689:1;664:33;;;;692:1;664:33;;;;694:1;664:33;;;;;;;;;556:148;;;:::o;164:129::-;210:7;219:4;225:17;;:::i;:::-;260:1;263:4;253:33;;;;;;;;278:1;253:33;;;;281:1;253:33;;;;283:1;253:33;;;;;;;;;164:129;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:90::-;248:7;291:5;284:13;277:21;266:32;;214:90;;;:::o;310:109::-;391:21;406:5;391:21;:::i;:::-;386:3;379:34;310:109;;:::o;425:104::-;490:6;518:4;508:14;;425:104;;;:::o;535:143::-;632:11;669:3;654:18;;535:143;;;;:::o;684:98::-;749:4;772:3;764:11;;684:98;;;:::o;788:108::-;865:24;883:5;865:24;:::i;:::-;860:3;853:37;788:108;;:::o;902:179::-;971:10;992:46;1034:3;1026:6;992:46;:::i;:::-;1070:4;1065:3;1061:14;1047:28;;902:179;;;;:::o;1087:111::-;1155:4;1187;1182:3;1178:14;1170:22;;1087:111;;;:::o;1236:694::-;1372:52;1418:5;1372:52;:::i;:::-;1440:84;1517:6;1512:3;1440:84;:::i;:::-;1433:91;;1548:54;1596:5;1548:54;:::i;:::-;1625:7;1656:1;1641:282;1666:6;1663:1;1660:13;1641:282;;;1742:6;1736:13;1769:63;1828:3;1813:13;1769:63;:::i;:::-;1762:70;;1855:58;1906:6;1855:58;:::i;:::-;1845:68;;1701:222;1688:1;1685;1681:9;1676:14;;1641:282;;;1645:14;1348:582;;;1236:694;;:::o;1936:523::-;2125:4;2163:3;2152:9;2148:19;2140:27;;2177:71;2245:1;2234:9;2230:17;2221:6;2177:71;:::i;:::-;2258:66;2320:2;2309:9;2305:18;2296:6;2258:66;:::i;:::-;2334:118;2448:2;2437:9;2433:18;2424:6;2334:118;:::i;:::-;1936:523;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"readReturn()":"6f590330","returnMultiple()":"e61e4008","returnNamed()":"3dece511","returnNamed2()":"8552dc08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"readReturn\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnMultiple\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnNamed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_bool\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"_array\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnNamed2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_bool\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"_array\",\"type\":\"uint256[3]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/04_Return/Return.sol\":\"Return\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/04_Return/Return.sol\":{\"keccak256\":\"0xe9c9f06533c74aa305f08f1ece07a856377c297c2ca04743d7240fc36e064b00\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://672dae19649cf6549bd21487dd2397e545173b6d9dee32eafb97cfad92715cff\",\"dweb:/ipfs/QmWikPzCk6utbmwFKgL4PqqqGFSAKA3ZyAYsKwidGggrAP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"readReturn"},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnMultiple","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256[3]","name":"","type":"uint256[3]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnNamed","outputs":[{"internalType":"uint256","name":"_number","type":"uint256"},{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"uint256[3]","name":"_array","type":"uint256[3]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"returnNamed2","outputs":[{"internalType":"uint256","name":"_number","type":"uint256"},{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"uint256[3]","name":"_array","type":"uint256[3]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/04_Return/Return.sol":"Return"},"evmVersion":"prague","libraries":{}},"sources":{"src/04_Return/Return.sol":{"keccak256":"0xe9c9f06533c74aa305f08f1ece07a856377c297c2ca04743d7240fc36e064b00","urls":["bzz-raw://672dae19649cf6549bd21487dd2397e545173b6d9dee32eafb97cfad92715cff","dweb:/ipfs/QmWikPzCk6utbmwFKgL4PqqqGFSAKA3ZyAYsKwidGggrAP"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file diff --git a/out/Selector.sol/DemoContract.json b/out/Selector.sol/DemoContract.json index 037a2382..c2cf2eca 100644 --- a/out/Selector.sol/DemoContract.json +++ b/out/Selector.sol/DemoContract.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50603e80601a5f395ff3fe60806040525f5ffdfea26469706673582212207c058cb1a92cb6eb1ebe0f63ee52440e1b43dc4dd209cfc670b911e1233012b764736f6c63430008220033","sourceMap":"58:47:76:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f5ffdfea26469706673582212207c058cb1a92cb6eb1ebe0f63ee52440e1b43dc4dd209cfc670b911e1233012b764736f6c63430008220033","sourceMap":"58:47:76:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/29_Selector/Selector.sol\":\"DemoContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/29_Selector/Selector.sol\":{\"keccak256\":\"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b\",\"dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/29_Selector/Selector.sol":"DemoContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/29_Selector/Selector.sol":{"keccak256":"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926","urls":["bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b","dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b50603e80601a5f395ff3fe60806040525f5ffdfea26469706673582212207c058cb1a92cb6eb1ebe0f63ee52440e1b43dc4dd209cfc670b911e1233012b764736f6c63430008220033","sourceMap":"58:47:70:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f5ffdfea26469706673582212207c058cb1a92cb6eb1ebe0f63ee52440e1b43dc4dd209cfc670b911e1233012b764736f6c63430008220033","sourceMap":"58:47:70:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/29_Selector/Selector.sol\":\"DemoContract\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/29_Selector/Selector.sol\":{\"keccak256\":\"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b\",\"dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/29_Selector/Selector.sol":"DemoContract"},"evmVersion":"prague","libraries":{}},"sources":{"src/29_Selector/Selector.sol":{"keccak256":"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926","urls":["bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b","dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR"],"license":"MIT"}},"version":1},"id":70} \ No newline at end of file diff --git a/out/Selector.sol/Selector.json b/out/Selector.sol/Selector.json index b9e47958..895cce8c 100644 --- a/out/Selector.sol/Selector.json +++ b/out/Selector.sol/Selector.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"callWithSignature","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"elementaryParamSelector","inputs":[{"name":"param1","type":"uint256","internalType":"uint256"},{"name":"param2","type":"bool","internalType":"bool"}],"outputs":[{"name":"selectorWithElementaryParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"fixedSizeParamSelector","inputs":[{"name":"param1","type":"uint256[3]","internalType":"uint256[3]"}],"outputs":[{"name":"selectorWithFixedSizeParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"mappingParamSelector","inputs":[{"name":"demo","type":"address","internalType":"contract DemoContract"},{"name":"user","type":"tuple","internalType":"struct Selector.User","components":[{"name":"uid","type":"uint256","internalType":"uint256"},{"name":"name","type":"bytes","internalType":"bytes"}]},{"name":"count","type":"uint256[]","internalType":"uint256[]"},{"name":"mySchool","type":"uint8","internalType":"enum Selector.School"}],"outputs":[{"name":"selectorWithMappingParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintSelector","inputs":[],"outputs":[{"name":"mSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"nonFixedSizeParamSelector","inputs":[{"name":"param1","type":"uint256[]","internalType":"uint256[]"},{"name":"param2","type":"string","internalType":"string"}],"outputs":[{"name":"selectorWithNonFixedSizeParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonParamSelector","inputs":[],"outputs":[{"name":"selectorWithNonParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"event","name":"Log","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SelectorEvent","inputs":[{"name":"","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506115068061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c80636a627842116100595780636a62784214610100578063e355b0ce1461011c578063ead6b8bd1461014c578063f0ca01de1461017c57610086565b8063038179361461008a578063046dab16146100a85780633ec37834146100c657806359ebea23146100f6575b5f5ffd5b6100926101ac565b60405161009f919061099e565b60405180910390f35b6100b0610211565b6040516100bd919061099e565b60405180910390f35b6100e060048036038101906100db9190610a30565b610238565b6040516100ed919061099e565b60405180910390f35b6100fe6102a0565b005b61011a60048036038101906101159190610ac8565b6107d6565b005b61013660048036038101906101319190610dc2565b610812565b604051610143919061099e565b60405180910390f35b61016660048036038101906101619190610f0c565b61087c565b604051610173919061099e565b60405180910390f35b61019660048036038101906101919190610fd5565b6108e3565b6040516101a3919061099e565b60405180910390f35b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb630381793660e01b6040516101e3919061099e565b60405180910390a17f038179367d802aca924f17568b786520678fa7955b6cd468a00dd90b7cfbab40905090565b5f7f6a627842f752de95745ef8f3ca67858982b5f585d752f8163e5855050041cb3c905090565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb633ec3783460e01b60405161026f919061099e565b60405180910390a17f3ec3783488bfc90ed98dc398cd67f30f42b252c8ce7d59a4dce63a149c452548905092915050565b5f600367ffffffffffffffff8111156102bc576102bb610b42565b5b6040519080825280602002602001820160405280156102ea5781602001602082028036833780820191505090505b5090506001815f815181106103025761030161104b565b5b6020026020010181815250506002816001815181106103245761032361104b565b5b6020026020010181815250506003816002815181106103465761034561104b565b5b60200260200101818152505061035a61094b565b6001815f0181815250506040518060400160405280600681526020017f307861306231000000000000000000000000000000000000000000000000000081525081602001819052505f5f3073ffffffffffffffffffffffffffffffffffffffff1663038179366040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161041491906110ca565b5f604051808303815f865af19150503d805f811461044d576040519150601f19603f3d011682016040523d82523d5f602084013e610452565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff16633ec3783460015f604051602401610489929190611167565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104d791906110ca565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663ead6b8bd6040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060405160240161056f9190611233565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105bd91906110ca565b5f604051808303815f865af19150503d805f81146105f6576040519150601f19603f3d011682016040523d82523d5f602084013e6105fb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663f0ca01de8b60405160240161062f919061135d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067d91906110ca565b5f604051808303815f865af19150503d805f81146106b6576040519150601f19603f3d011682016040523d82523d5f602084013e6106bb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663e355b0ce739d7f74d0c41e726ec95884e0e97fa6129e3b5e998d8f600160405160240161070a9493929190611421565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161075891906110ca565b5f604051808303815f865af19150503d805f8114610791576040519150601f19603f3d011682016040523d82523d5f602084013e610796565b606091505b50915091508980156107a55750875b80156107ae5750855b80156107b75750835b80156107c05750815b6107c8575f5ffd5b505050505050505050505050565b7fafabcf2dd47e06a477a89e49c03f8ebe8e0a7e94f775b25bbb24227c9d0110b25f366040516108079291906114ae565b60405180910390a150565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63e355b0ce60e01b604051610849919061099e565b60405180910390a17fe355b0ceecdc5a85bc460808aed3b4d8eaa7935dbf79d2db6ffcf71e5c3525769050949350505050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63ead6b8bd60e01b6040516108b3919061099e565b60405180910390a17fead6b8bdece33532847146a6fe63967e794ef7c18f3b888ae6fb3aebb4ef1b959050919050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63f0ca01de60e01b60405161091a919061099e565b60405180910390a17ff0ca01de95639524000d6ff4e9309b96c7f67f7961bf24b33f8b20e85f6ad977905092915050565b60405180604001604052805f8152602001606081525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61099881610964565b82525050565b5f6020820190506109b15f83018461098f565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6109da816109c8565b81146109e4575f5ffd5b50565b5f813590506109f5816109d1565b92915050565b5f8115159050919050565b610a0f816109fb565b8114610a19575f5ffd5b50565b5f81359050610a2a81610a06565b92915050565b5f5f60408385031215610a4657610a456109c0565b5b5f610a53858286016109e7565b9250506020610a6485828601610a1c565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a9782610a6e565b9050919050565b610aa781610a8d565b8114610ab1575f5ffd5b50565b5f81359050610ac281610a9e565b92915050565b5f60208284031215610add57610adc6109c0565b5b5f610aea84828501610ab4565b91505092915050565b5f610afd82610a8d565b9050919050565b610b0d81610af3565b8114610b17575f5ffd5b50565b5f81359050610b2881610b04565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b7882610b32565b810181811067ffffffffffffffff82111715610b9757610b96610b42565b5b80604052505050565b5f610ba96109b7565b9050610bb58282610b6f565b919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115610be057610bdf610b42565b5b610be982610b32565b9050602081019050919050565b828183375f83830152505050565b5f610c16610c1184610bc6565b610ba0565b905082815260208101848484011115610c3257610c31610bc2565b5b610c3d848285610bf6565b509392505050565b5f82601f830112610c5957610c58610bbe565b5b8135610c69848260208601610c04565b91505092915050565b5f60408284031215610c8757610c86610b2e565b5b610c916040610ba0565b90505f610ca0848285016109e7565b5f83015250602082013567ffffffffffffffff811115610cc357610cc2610bba565b5b610ccf84828501610c45565b60208301525092915050565b5f67ffffffffffffffff821115610cf557610cf4610b42565b5b602082029050602081019050919050565b5f5ffd5b5f610d1c610d1784610cdb565b610ba0565b90508083825260208201905060208402830185811115610d3f57610d3e610d06565b5b835b81811015610d685780610d5488826109e7565b845260208401935050602081019050610d41565b5050509392505050565b5f82601f830112610d8657610d85610bbe565b5b8135610d96848260208601610d0a565b91505092915050565b60038110610dab575f5ffd5b50565b5f81359050610dbc81610d9f565b92915050565b5f5f5f5f60808587031215610dda57610dd96109c0565b5b5f610de787828801610b1a565b945050602085013567ffffffffffffffff811115610e0857610e076109c4565b5b610e1487828801610c72565b935050604085013567ffffffffffffffff811115610e3557610e346109c4565b5b610e4187828801610d72565b9250506060610e5287828801610dae565b91505092959194509250565b5f67ffffffffffffffff821115610e7857610e77610b42565b5b602082029050919050565b5f610e95610e9084610e5e565b610ba0565b90508060208402830185811115610eaf57610eae610d06565b5b835b81811015610ed85780610ec488826109e7565b845260208401935050602081019050610eb1565b5050509392505050565b5f82601f830112610ef657610ef5610bbe565b5b6003610f03848285610e83565b91505092915050565b5f60608284031215610f2157610f206109c0565b5b5f610f2e84828501610ee2565b91505092915050565b5f67ffffffffffffffff821115610f5157610f50610b42565b5b610f5a82610b32565b9050602081019050919050565b5f610f79610f7484610f37565b610ba0565b905082815260208101848484011115610f9557610f94610bc2565b5b610fa0848285610bf6565b509392505050565b5f82601f830112610fbc57610fbb610bbe565b5b8135610fcc848260208601610f67565b91505092915050565b5f5f60408385031215610feb57610fea6109c0565b5b5f83013567ffffffffffffffff811115611008576110076109c4565b5b61101485828601610d72565b925050602083013567ffffffffffffffff811115611035576110346109c4565b5b61104185828601610fa8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6110a482611078565b6110ae8185611082565b93506110be81856020860161108c565b80840191505092915050565b5f6110d5828461109a565b915081905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61111861111361110e846110e0565b6110f5565b6110e9565b9050919050565b611128816110fe565b82525050565b5f819050919050565b5f61115161114c6111478461112e565b6110f5565b6110e9565b9050919050565b61116181611137565b82525050565b5f60408201905061117a5f83018561111f565b6111876020830184611158565b9392505050565b5f60039050919050565b5f81905092915050565b5f819050919050565b6111b4816110e9565b82525050565b5f6111c583836111ab565b60208301905092915050565b5f602082019050919050565b6111e68161118e565b6111f08184611198565b92506111fb826111a2565b805f5b8381101561122b57815161121287826111ba565b965061121d836111d1565b9250506001810190506111fe565b505050505050565b5f6060820190506112465f8301846111dd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61127e816109c8565b82525050565b5f61128f8383611275565b60208301905092915050565b5f602082019050919050565b5f6112b18261124c565b6112bb8185611256565b93506112c683611266565b805f5b838110156112f65781516112dd8882611284565b97506112e88361129b565b9250506001810190506112c9565b5085935050505092915050565b5f82825260208201905092915050565b7f61626300000000000000000000000000000000000000000000000000000000005f82015250565b5f611347600383611303565b915061135282611313565b602082019050919050565b5f6040820190508181035f83015261137581846112a7565b905081810360208301526113888161133b565b905092915050565b61139981610a8d565b82525050565b5f82825260208201905092915050565b5f6113b982611078565b6113c3818561139f565b93506113d381856020860161108c565b6113dc81610b32565b840191505092915050565b5f604083015f8301516113fc5f860182611275565b506020830151848203602086015261141482826113af565b9150508091505092915050565b5f6080820190506114345f830187611390565b818103602083015261144681866113e7565b9050818103604083015261145a81856112a7565b9050611469606083018461111f565b95945050505050565b5f82825260208201905092915050565b5f61148d8385611472565b935061149a838584610bf6565b6114a383610b32565b840190509392505050565b5f6020820190508181035f8301526114c7818486611482565b9050939250505056fea26469706673582212201a0af96a494db96ac85b254a73e7c16d3564a4649e8d58dc3918a2a125a7262364736f6c63430008220033","sourceMap":"107:4083:76:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610086575f3560e01c80636a627842116100595780636a62784214610100578063e355b0ce1461011c578063ead6b8bd1461014c578063f0ca01de1461017c57610086565b8063038179361461008a578063046dab16146100a85780633ec37834146100c657806359ebea23146100f6575b5f5ffd5b6100926101ac565b60405161009f919061099e565b60405180910390f35b6100b0610211565b6040516100bd919061099e565b60405180910390f35b6100e060048036038101906100db9190610a30565b610238565b6040516100ed919061099e565b60405180910390f35b6100fe6102a0565b005b61011a60048036038101906101159190610ac8565b6107d6565b005b61013660048036038101906101319190610dc2565b610812565b604051610143919061099e565b60405180910390f35b61016660048036038101906101619190610f0c565b61087c565b604051610173919061099e565b60405180910390f35b61019660048036038101906101919190610fd5565b6108e3565b6040516101a3919061099e565b60405180910390f35b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb630381793660e01b6040516101e3919061099e565b60405180910390a17f038179367d802aca924f17568b786520678fa7955b6cd468a00dd90b7cfbab40905090565b5f7f6a627842f752de95745ef8f3ca67858982b5f585d752f8163e5855050041cb3c905090565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb633ec3783460e01b60405161026f919061099e565b60405180910390a17f3ec3783488bfc90ed98dc398cd67f30f42b252c8ce7d59a4dce63a149c452548905092915050565b5f600367ffffffffffffffff8111156102bc576102bb610b42565b5b6040519080825280602002602001820160405280156102ea5781602001602082028036833780820191505090505b5090506001815f815181106103025761030161104b565b5b6020026020010181815250506002816001815181106103245761032361104b565b5b6020026020010181815250506003816002815181106103465761034561104b565b5b60200260200101818152505061035a61094b565b6001815f0181815250506040518060400160405280600681526020017f307861306231000000000000000000000000000000000000000000000000000081525081602001819052505f5f3073ffffffffffffffffffffffffffffffffffffffff1663038179366040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161041491906110ca565b5f604051808303815f865af19150503d805f811461044d576040519150601f19603f3d011682016040523d82523d5f602084013e610452565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff16633ec3783460015f604051602401610489929190611167565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104d791906110ca565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663ead6b8bd6040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060405160240161056f9190611233565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105bd91906110ca565b5f604051808303815f865af19150503d805f81146105f6576040519150601f19603f3d011682016040523d82523d5f602084013e6105fb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663f0ca01de8b60405160240161062f919061135d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067d91906110ca565b5f604051808303815f865af19150503d805f81146106b6576040519150601f19603f3d011682016040523d82523d5f602084013e6106bb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663e355b0ce739d7f74d0c41e726ec95884e0e97fa6129e3b5e998d8f600160405160240161070a9493929190611421565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161075891906110ca565b5f604051808303815f865af19150503d805f8114610791576040519150601f19603f3d011682016040523d82523d5f602084013e610796565b606091505b50915091508980156107a55750875b80156107ae5750855b80156107b75750835b80156107c05750815b6107c8575f5ffd5b505050505050505050505050565b7fafabcf2dd47e06a477a89e49c03f8ebe8e0a7e94f775b25bbb24227c9d0110b25f366040516108079291906114ae565b60405180910390a150565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63e355b0ce60e01b604051610849919061099e565b60405180910390a17fe355b0ceecdc5a85bc460808aed3b4d8eaa7935dbf79d2db6ffcf71e5c3525769050949350505050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63ead6b8bd60e01b6040516108b3919061099e565b60405180910390a17fead6b8bdece33532847146a6fe63967e794ef7c18f3b888ae6fb3aebb4ef1b959050919050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63f0ca01de60e01b60405161091a919061099e565b60405180910390a17ff0ca01de95639524000d6ff4e9309b96c7f67f7961bf24b33f8b20e85f6ad977905092915050565b60405180604001604052805f8152602001606081525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61099881610964565b82525050565b5f6020820190506109b15f83018461098f565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6109da816109c8565b81146109e4575f5ffd5b50565b5f813590506109f5816109d1565b92915050565b5f8115159050919050565b610a0f816109fb565b8114610a19575f5ffd5b50565b5f81359050610a2a81610a06565b92915050565b5f5f60408385031215610a4657610a456109c0565b5b5f610a53858286016109e7565b9250506020610a6485828601610a1c565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a9782610a6e565b9050919050565b610aa781610a8d565b8114610ab1575f5ffd5b50565b5f81359050610ac281610a9e565b92915050565b5f60208284031215610add57610adc6109c0565b5b5f610aea84828501610ab4565b91505092915050565b5f610afd82610a8d565b9050919050565b610b0d81610af3565b8114610b17575f5ffd5b50565b5f81359050610b2881610b04565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b7882610b32565b810181811067ffffffffffffffff82111715610b9757610b96610b42565b5b80604052505050565b5f610ba96109b7565b9050610bb58282610b6f565b919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115610be057610bdf610b42565b5b610be982610b32565b9050602081019050919050565b828183375f83830152505050565b5f610c16610c1184610bc6565b610ba0565b905082815260208101848484011115610c3257610c31610bc2565b5b610c3d848285610bf6565b509392505050565b5f82601f830112610c5957610c58610bbe565b5b8135610c69848260208601610c04565b91505092915050565b5f60408284031215610c8757610c86610b2e565b5b610c916040610ba0565b90505f610ca0848285016109e7565b5f83015250602082013567ffffffffffffffff811115610cc357610cc2610bba565b5b610ccf84828501610c45565b60208301525092915050565b5f67ffffffffffffffff821115610cf557610cf4610b42565b5b602082029050602081019050919050565b5f5ffd5b5f610d1c610d1784610cdb565b610ba0565b90508083825260208201905060208402830185811115610d3f57610d3e610d06565b5b835b81811015610d685780610d5488826109e7565b845260208401935050602081019050610d41565b5050509392505050565b5f82601f830112610d8657610d85610bbe565b5b8135610d96848260208601610d0a565b91505092915050565b60038110610dab575f5ffd5b50565b5f81359050610dbc81610d9f565b92915050565b5f5f5f5f60808587031215610dda57610dd96109c0565b5b5f610de787828801610b1a565b945050602085013567ffffffffffffffff811115610e0857610e076109c4565b5b610e1487828801610c72565b935050604085013567ffffffffffffffff811115610e3557610e346109c4565b5b610e4187828801610d72565b9250506060610e5287828801610dae565b91505092959194509250565b5f67ffffffffffffffff821115610e7857610e77610b42565b5b602082029050919050565b5f610e95610e9084610e5e565b610ba0565b90508060208402830185811115610eaf57610eae610d06565b5b835b81811015610ed85780610ec488826109e7565b845260208401935050602081019050610eb1565b5050509392505050565b5f82601f830112610ef657610ef5610bbe565b5b6003610f03848285610e83565b91505092915050565b5f60608284031215610f2157610f206109c0565b5b5f610f2e84828501610ee2565b91505092915050565b5f67ffffffffffffffff821115610f5157610f50610b42565b5b610f5a82610b32565b9050602081019050919050565b5f610f79610f7484610f37565b610ba0565b905082815260208101848484011115610f9557610f94610bc2565b5b610fa0848285610bf6565b509392505050565b5f82601f830112610fbc57610fbb610bbe565b5b8135610fcc848260208601610f67565b91505092915050565b5f5f60408385031215610feb57610fea6109c0565b5b5f83013567ffffffffffffffff811115611008576110076109c4565b5b61101485828601610d72565b925050602083013567ffffffffffffffff811115611035576110346109c4565b5b61104185828601610fa8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6110a482611078565b6110ae8185611082565b93506110be81856020860161108c565b80840191505092915050565b5f6110d5828461109a565b915081905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61111861111361110e846110e0565b6110f5565b6110e9565b9050919050565b611128816110fe565b82525050565b5f819050919050565b5f61115161114c6111478461112e565b6110f5565b6110e9565b9050919050565b61116181611137565b82525050565b5f60408201905061117a5f83018561111f565b6111876020830184611158565b9392505050565b5f60039050919050565b5f81905092915050565b5f819050919050565b6111b4816110e9565b82525050565b5f6111c583836111ab565b60208301905092915050565b5f602082019050919050565b6111e68161118e565b6111f08184611198565b92506111fb826111a2565b805f5b8381101561122b57815161121287826111ba565b965061121d836111d1565b9250506001810190506111fe565b505050505050565b5f6060820190506112465f8301846111dd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61127e816109c8565b82525050565b5f61128f8383611275565b60208301905092915050565b5f602082019050919050565b5f6112b18261124c565b6112bb8185611256565b93506112c683611266565b805f5b838110156112f65781516112dd8882611284565b97506112e88361129b565b9250506001810190506112c9565b5085935050505092915050565b5f82825260208201905092915050565b7f61626300000000000000000000000000000000000000000000000000000000005f82015250565b5f611347600383611303565b915061135282611313565b602082019050919050565b5f6040820190508181035f83015261137581846112a7565b905081810360208301526113888161133b565b905092915050565b61139981610a8d565b82525050565b5f82825260208201905092915050565b5f6113b982611078565b6113c3818561139f565b93506113d381856020860161108c565b6113dc81610b32565b840191505092915050565b5f604083015f8301516113fc5f860182611275565b506020830151848203602086015261141482826113af565b9150508091505092915050565b5f6080820190506114345f830187611390565b818103602083015261144681866113e7565b9050818103604083015261145a81856112a7565b9050611469606083018461111f565b95945050505050565b5f82825260208201905092915050565b5f61148d8385611472565b935061149a838584610bf6565b6114a383610b32565b840190509392505050565b5f6020820190508181035f8301526114c7818486611482565b9050939250505056fea26469706673582212201a0af96a494db96ac85b254a73e7c16d3564a4649e8d58dc3918a2a125a7262364736f6c63430008220033","sourceMap":"107:4083:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;790:196;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;576:121;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1138:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2899:1289;;;:::i;:::-;;437:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1551:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1985:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;790:196;835:27;878:45;892:30;;;878:45;;;;;;:::i;:::-;;;;;;;;947:31;933:46;;790:196;:::o;576:121::-;622:16;663:26;649:41;;576:121;:::o;1138:263::-;1217:34;1267:52;1281:37;;;1267:52;;;;;;:::i;:::-;;;;;;;;1343:50;1329:65;;1138:263;;;;:::o;2899:1289::-;2980:23;3020:1;3006:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2980:42;;3044:1;3032:6;3039:1;3032:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3067:1;3055:6;3062:1;3055:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3090:1;3078:6;3085:1;3078:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3129:16;;:::i;:::-;3166:1;3155:4;:8;;:12;;;;;3177:20;;;;;;;;;;;;;;;;;:4;:9;;:20;;;;3330:13;3345:18;3375:4;3367:18;;3409:10;3386:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:54;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3329:92;;;;3479:13;3494:18;3524:4;3516:18;;3558:10;3570:1;3573;3535:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3516:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3478:98;;;;3633:13;3648:18;3678:4;3670:18;;3712:10;3689:43;;;;;;;;3725:1;3689:43;;;;;;3727:1;3689:43;;;;;;3729:1;3689:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3670:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:101;;;;3793:13;3808:18;3838:4;3830:18;;3872:10;3884:6;3849:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3792:107;;;;3954:13;3969:18;3999:4;3991:18;;4033:10;4045:42;4089:4;4095:6;4103:1;4010:95;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3991:115;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:153;;;;4124:8;:20;;;;;4136:8;4124:20;:32;;;;;4148:8;4124:32;:44;;;;;4160:8;4124:44;:56;;;;;4172:8;4124:56;4116:65;;;;;;2936:1252;;;;;;;;;;;;2899:1289::o;437:73::-;490:13;494:8;;490:13;;;;;;;:::i;:::-;;;;;;;;437:73;:::o;2529:327::-;2654:31;2701:49;2715:34;;;2701:49;;;;;;:::i;:::-;;;;;;;;2774:74;2760:89;;2529:327;;;;;;:::o;1551:254::-;1626:33;1675:51;1689:36;;;1675:51;;;;;;:::i;:::-;;;;;;;;1750:47;1736:62;;1551:254;;;:::o;1985:292::-;2083:36;2135:54;2149:39;;;2135:54;;;;;;:::i;:::-;;;;;;;;2213:56;2199:71;;1985:292;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:149:145:-;43:7;83:66;76:5;72:78;61:89;;7:149;;;:::o;162:115::-;247:23;264:5;247:23;:::i;:::-;242:3;235:36;162:115;;:::o;283:218::-;374:4;412:2;401:9;397:18;389:26;;425:69;491:1;480:9;476:17;467:6;425:69;:::i;:::-;283:218;;;;:::o;507:75::-;540:6;573:2;567:9;557:19;;507:75;:::o;588:117::-;697:1;694;687:12;711:117;820:1;817;810:12;834:77;871:7;900:5;889:16;;834:77;;;:::o;917:122::-;990:24;1008:5;990:24;:::i;:::-;983:5;980:35;970:63;;1029:1;1026;1019:12;970:63;917:122;:::o;1045:139::-;1091:5;1129:6;1116:20;1107:29;;1145:33;1172:5;1145:33;:::i;:::-;1045:139;;;;:::o;1190:90::-;1224:7;1267:5;1260:13;1253:21;1242:32;;1190:90;;;:::o;1286:116::-;1356:21;1371:5;1356:21;:::i;:::-;1349:5;1346:32;1336:60;;1392:1;1389;1382:12;1336:60;1286:116;:::o;1408:133::-;1451:5;1489:6;1476:20;1467:29;;1505:30;1529:5;1505:30;:::i;:::-;1408:133;;;;:::o;1547:468::-;1612:6;1620;1669:2;1657:9;1648:7;1644:23;1640:32;1637:119;;;1675:79;;:::i;:::-;1637:119;1795:1;1820:53;1865:7;1856:6;1845:9;1841:22;1820:53;:::i;:::-;1810:63;;1766:117;1922:2;1948:50;1990:7;1981:6;1970:9;1966:22;1948:50;:::i;:::-;1938:60;;1893:115;1547:468;;;;;:::o;2021:126::-;2058:7;2098:42;2091:5;2087:54;2076:65;;2021:126;;;:::o;2153:96::-;2190:7;2219:24;2237:5;2219:24;:::i;:::-;2208:35;;2153:96;;;:::o;2255:122::-;2328:24;2346:5;2328:24;:::i;:::-;2321:5;2318:35;2308:63;;2367:1;2364;2357:12;2308:63;2255:122;:::o;2383:139::-;2429:5;2467:6;2454:20;2445:29;;2483:33;2510:5;2483:33;:::i;:::-;2383:139;;;;:::o;2528:329::-;2587:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:119;;;2642:79;;:::i;:::-;2604:119;2762:1;2787:53;2832:7;2823:6;2812:9;2808:22;2787:53;:::i;:::-;2777:63;;2733:117;2528:329;;;;:::o;2863:118::-;2922:7;2951:24;2969:5;2951:24;:::i;:::-;2940:35;;2863:118;;;:::o;2987:166::-;3082:46;3122:5;3082:46;:::i;:::-;3075:5;3072:57;3062:85;;3143:1;3140;3133:12;3062:85;2987:166;:::o;3159:183::-;3227:5;3265:6;3252:20;3243:29;;3281:55;3330:5;3281:55;:::i;:::-;3159:183;;;;:::o;3348:117::-;3457:1;3454;3447:12;3471:102;3512:6;3563:2;3559:7;3554:2;3547:5;3543:14;3539:28;3529:38;;3471:102;;;:::o;3579:180::-;3627:77;3624:1;3617:88;3724:4;3721:1;3714:15;3748:4;3745:1;3738:15;3765:281;3848:27;3870:4;3848:27;:::i;:::-;3840:6;3836:40;3978:6;3966:10;3963:22;3942:18;3930:10;3927:34;3924:62;3921:88;;;3989:18;;:::i;:::-;3921:88;4029:10;4025:2;4018:22;3808:238;3765:281;;:::o;4052:129::-;4086:6;4113:20;;:::i;:::-;4103:30;;4142:33;4170:4;4162:6;4142:33;:::i;:::-;4052:129;;;:::o;4187:117::-;4296:1;4293;4286:12;4310:117;4419:1;4416;4409:12;4433:117;4542:1;4539;4532:12;4556:307;4617:4;4707:18;4699:6;4696:30;4693:56;;;4729:18;;:::i;:::-;4693:56;4767:29;4789:6;4767:29;:::i;:::-;4759:37;;4851:4;4845;4841:15;4833:23;;4556:307;;;:::o;4869:148::-;4967:6;4962:3;4957;4944:30;5008:1;4999:6;4994:3;4990:16;4983:27;4869:148;;;:::o;5023:423::-;5100:5;5125:65;5141:48;5182:6;5141:48;:::i;:::-;5125:65;:::i;:::-;5116:74;;5213:6;5206:5;5199:21;5251:4;5244:5;5240:16;5289:3;5280:6;5275:3;5271:16;5268:25;5265:112;;;5296:79;;:::i;:::-;5265:112;5386:54;5433:6;5428:3;5423;5386:54;:::i;:::-;5106:340;5023:423;;;;;:::o;5465:338::-;5520:5;5569:3;5562:4;5554:6;5550:17;5546:27;5536:122;;5577:79;;:::i;:::-;5536:122;5694:6;5681:20;5719:78;5793:3;5785:6;5778:4;5770:6;5766:17;5719:78;:::i;:::-;5710:87;;5526:277;5465:338;;;;:::o;5837:740::-;5909:5;5953:4;5941:9;5936:3;5932:19;5928:30;5925:117;;;5961:79;;:::i;:::-;5925:117;6060:21;6076:4;6060:21;:::i;:::-;6051:30;;6139:1;6179:49;6224:3;6215:6;6204:9;6200:22;6179:49;:::i;:::-;6172:4;6165:5;6161:16;6154:75;6091:149;6327:2;6316:9;6312:18;6299:32;6358:18;6350:6;6347:30;6344:117;;;6380:79;;:::i;:::-;6344:117;6500:58;6554:3;6545:6;6534:9;6530:22;6500:58;:::i;:::-;6493:4;6486:5;6482:16;6475:84;6250:320;5837:740;;;;:::o;6583:311::-;6660:4;6750:18;6742:6;6739:30;6736:56;;;6772:18;;:::i;:::-;6736:56;6822:4;6814:6;6810:17;6802:25;;6882:4;6876;6872:15;6864:23;;6583:311;;;:::o;6900:117::-;7009:1;7006;6999:12;7040:710;7136:5;7161:81;7177:64;7234:6;7177:64;:::i;:::-;7161:81;:::i;:::-;7152:90;;7262:5;7291:6;7284:5;7277:21;7325:4;7318:5;7314:16;7307:23;;7378:4;7370:6;7366:17;7358:6;7354:30;7407:3;7399:6;7396:15;7393:122;;;7426:79;;:::i;:::-;7393:122;7541:6;7524:220;7558:6;7553:3;7550:15;7524:220;;;7633:3;7662:37;7695:3;7683:10;7662:37;:::i;:::-;7657:3;7650:50;7729:4;7724:3;7720:14;7713:21;;7600:144;7584:4;7579:3;7575:14;7568:21;;7524:220;;;7528:21;7142:608;;7040:710;;;;;:::o;7773:370::-;7844:5;7893:3;7886:4;7878:6;7874:17;7870:27;7860:122;;7901:79;;:::i;:::-;7860:122;8018:6;8005:20;8043:94;8133:3;8125:6;8118:4;8110:6;8106:17;8043:94;:::i;:::-;8034:103;;7850:293;7773:370;;;;:::o;8149:111::-;8234:1;8227:5;8224:12;8214:40;;8250:1;8247;8240:12;8214:40;8149:111;:::o;8266:163::-;8324:5;8362:6;8349:20;8340:29;;8378:45;8417:5;8378:45;:::i;:::-;8266:163;;;;:::o;8435:1249::-;8603:6;8611;8619;8627;8676:3;8664:9;8655:7;8651:23;8647:33;8644:120;;;8683:79;;:::i;:::-;8644:120;8803:1;8828:75;8895:7;8886:6;8875:9;8871:22;8828:75;:::i;:::-;8818:85;;8774:139;8980:2;8969:9;8965:18;8952:32;9011:18;9003:6;9000:30;8997:117;;;9033:79;;:::i;:::-;8997:117;9138:76;9206:7;9197:6;9186:9;9182:22;9138:76;:::i;:::-;9128:86;;8923:301;9291:2;9280:9;9276:18;9263:32;9322:18;9314:6;9311:30;9308:117;;;9344:79;;:::i;:::-;9308:117;9449:78;9519:7;9510:6;9499:9;9495:22;9449:78;:::i;:::-;9439:88;;9234:303;9576:2;9602:65;9659:7;9650:6;9639:9;9635:22;9602:65;:::i;:::-;9592:75;;9547:130;8435:1249;;;;;;;:::o;9690:249::-;9765:4;9855:18;9847:6;9844:30;9841:56;;;9877:18;;:::i;:::-;9841:56;9927:4;9919:6;9915:17;9907:25;;9690:249;;;:::o;9963:643::-;10057:5;10082:79;10098:62;10153:6;10098:62;:::i;:::-;10082:79;:::i;:::-;10073:88;;10181:5;10234:4;10226:6;10222:17;10214:6;10210:30;10263:3;10255:6;10252:15;10249:122;;;10282:79;;:::i;:::-;10249:122;10397:6;10380:220;10414:6;10409:3;10406:15;10380:220;;;10489:3;10518:37;10551:3;10539:10;10518:37;:::i;:::-;10513:3;10506:50;10585:4;10580:3;10576:14;10569:21;;10456:144;10440:4;10435:3;10431:14;10424:21;;10380:220;;;10384:21;10063:543;;9963:643;;;;;:::o;10630:339::-;10699:5;10748:3;10741:4;10733:6;10729:17;10725:27;10715:122;;10756:79;;:::i;:::-;10715:122;10860:4;10882:81;10959:3;10951:6;10943;10882:81;:::i;:::-;10873:90;;10705:264;10630:339;;;;:::o;10975:375::-;11057:6;11106:2;11094:9;11085:7;11081:23;11077:32;11074:119;;;11112:79;;:::i;:::-;11074:119;11232:1;11257:76;11325:7;11316:6;11305:9;11301:22;11257:76;:::i;:::-;11247:86;;11203:140;10975:375;;;;:::o;11356:308::-;11418:4;11508:18;11500:6;11497:30;11494:56;;;11530:18;;:::i;:::-;11494:56;11568:29;11590:6;11568:29;:::i;:::-;11560:37;;11652:4;11646;11642:15;11634:23;;11356:308;;;:::o;11670:425::-;11748:5;11773:66;11789:49;11831:6;11789:49;:::i;:::-;11773:66;:::i;:::-;11764:75;;11862:6;11855:5;11848:21;11900:4;11893:5;11889:16;11938:3;11929:6;11924:3;11920:16;11917:25;11914:112;;;11945:79;;:::i;:::-;11914:112;12035:54;12082:6;12077:3;12072;12035:54;:::i;:::-;11754:341;11670:425;;;;;:::o;12115:340::-;12171:5;12220:3;12213:4;12205:6;12201:17;12197:27;12187:122;;12228:79;;:::i;:::-;12187:122;12345:6;12332:20;12370:79;12445:3;12437:6;12430:4;12422:6;12418:17;12370:79;:::i;:::-;12361:88;;12177:278;12115:340;;;;:::o;12461:864::-;12564:6;12572;12621:2;12609:9;12600:7;12596:23;12592:32;12589:119;;;12627:79;;:::i;:::-;12589:119;12775:1;12764:9;12760:17;12747:31;12805:18;12797:6;12794:30;12791:117;;;12827:79;;:::i;:::-;12791:117;12932:78;13002:7;12993:6;12982:9;12978:22;12932:78;:::i;:::-;12922:88;;12718:302;13087:2;13076:9;13072:18;13059:32;13118:18;13110:6;13107:30;13104:117;;;13140:79;;:::i;:::-;13104:117;13245:63;13300:7;13291:6;13280:9;13276:22;13245:63;:::i;:::-;13235:73;;13030:288;12461:864;;;;;:::o;13331:180::-;13379:77;13376:1;13369:88;13476:4;13473:1;13466:15;13500:4;13497:1;13490:15;13517:98;13568:6;13602:5;13596:12;13586:22;;13517:98;;;:::o;13621:147::-;13722:11;13759:3;13744:18;;13621:147;;;;:::o;13774:139::-;13863:6;13858:3;13853;13847:23;13904:1;13895:6;13890:3;13886:16;13879:27;13774:139;;;:::o;13919:386::-;14023:3;14051:38;14083:5;14051:38;:::i;:::-;14105:88;14186:6;14181:3;14105:88;:::i;:::-;14098:95;;14202:65;14260:6;14255:3;14248:4;14241:5;14237:16;14202:65;:::i;:::-;14292:6;14287:3;14283:16;14276:23;;14027:278;13919:386;;;;:::o;14311:271::-;14441:3;14463:93;14552:3;14543:6;14463:93;:::i;:::-;14456:100;;14573:3;14566:10;;14311:271;;;;:::o;14588:85::-;14633:7;14662:5;14651:16;;14588:85;;;:::o;14679:86::-;14714:7;14754:4;14747:5;14743:16;14732:27;;14679:86;;;:::o;14771:60::-;14799:3;14820:5;14813:12;;14771:60;;;:::o;14837:154::-;14893:9;14926:59;14942:42;14951:32;14977:5;14951:32;:::i;:::-;14942:42;:::i;:::-;14926:59;:::i;:::-;14913:72;;14837:154;;;:::o;14997:143::-;15090:43;15127:5;15090:43;:::i;:::-;15085:3;15078:56;14997:143;;:::o;15146:85::-;15191:7;15220:5;15209:16;;15146:85;;;:::o;15237:154::-;15293:9;15326:59;15342:42;15351:32;15377:5;15351:32;:::i;:::-;15342:42;:::i;:::-;15326:59;:::i;:::-;15313:72;;15237:154;;;:::o;15397:143::-;15490:43;15527:5;15490:43;:::i;:::-;15485:3;15478:56;15397:143;;:::o;15546:356::-;15679:4;15717:2;15706:9;15702:18;15694:26;;15730:77;15804:1;15793:9;15789:17;15780:6;15730:77;:::i;:::-;15817:78;15891:2;15880:9;15876:18;15867:6;15817:78;:::i;:::-;15546:356;;;;;:::o;15908:102::-;15971:6;15999:4;15989:14;;15908:102;;;:::o;16016:141::-;16111:11;16148:3;16133:18;;16016:141;;;;:::o;16163:96::-;16226:4;16249:3;16241:11;;16163:96;;;:::o;16265:102::-;16338:22;16354:5;16338:22;:::i;:::-;16333:3;16326:35;16265:102;;:::o;16373:171::-;16438:10;16459:42;16497:3;16489:6;16459:42;:::i;:::-;16533:4;16528:3;16524:14;16510:28;;16373:171;;;;:::o;16550:109::-;16616:4;16648;16643:3;16639:14;16631:22;;16550:109;;;:::o;16693:678::-;16825:50;16869:5;16825:50;:::i;:::-;16891:82;16966:6;16961:3;16891:82;:::i;:::-;16884:89;;16997:52;17043:5;16997:52;:::i;:::-;17072:7;17103:1;17088:276;17113:6;17110:1;17107:13;17088:276;;;17189:6;17183:13;17216:59;17271:3;17256:13;17216:59;:::i;:::-;17209:66;;17298:56;17347:6;17298:56;:::i;:::-;17288:66;;17148:216;17135:1;17132;17128:9;17123:14;;17088:276;;;17092:14;16801:570;;;16693:678;;:::o;17377:306::-;17512:4;17550:2;17539:9;17535:18;17527:26;;17563:113;17673:1;17662:9;17658:17;17649:6;17563:113;:::i;:::-;17377:306;;;;:::o;17689:114::-;17756:6;17790:5;17784:12;17774:22;;17689:114;;;:::o;17809:184::-;17908:11;17942:6;17937:3;17930:19;17982:4;17977:3;17973:14;17958:29;;17809:184;;;;:::o;17999:132::-;18066:4;18089:3;18081:11;;18119:4;18114:3;18110:14;18102:22;;17999:132;;;:::o;18137:108::-;18214:24;18232:5;18214:24;:::i;:::-;18209:3;18202:37;18137:108;;:::o;18251:179::-;18320:10;18341:46;18383:3;18375:6;18341:46;:::i;:::-;18419:4;18414:3;18410:14;18396:28;;18251:179;;;;:::o;18436:113::-;18506:4;18538;18533:3;18529:14;18521:22;;18436:113;;;:::o;18585:732::-;18704:3;18733:54;18781:5;18733:54;:::i;:::-;18803:86;18882:6;18877:3;18803:86;:::i;:::-;18796:93;;18913:56;18963:5;18913:56;:::i;:::-;18992:7;19023:1;19008:284;19033:6;19030:1;19027:13;19008:284;;;19109:6;19103:13;19136:63;19195:3;19180:13;19136:63;:::i;:::-;19129:70;;19222:60;19275:6;19222:60;:::i;:::-;19212:70;;19068:224;19055:1;19052;19048:9;19043:14;;19008:284;;;19012:14;19308:3;19301:10;;18709:608;;;18585:732;;;;:::o;19323:169::-;19407:11;19441:6;19436:3;19429:19;19481:4;19476:3;19472:14;19457:29;;19323:169;;;;:::o;19498:153::-;19638:5;19634:1;19626:6;19622:14;19615:29;19498:153;:::o;19657:365::-;19799:3;19820:66;19884:1;19879:3;19820:66;:::i;:::-;19813:73;;19895:93;19984:3;19895:93;:::i;:::-;20013:2;20008:3;20004:12;19997:19;;19657:365;;;:::o;20028:680::-;20272:4;20310:2;20299:9;20295:18;20287:26;;20359:9;20353:4;20349:20;20345:1;20334:9;20330:17;20323:47;20387:108;20490:4;20481:6;20387:108;:::i;:::-;20379:116;;20542:9;20536:4;20532:20;20527:2;20516:9;20512:18;20505:48;20570:131;20696:4;20570:131;:::i;:::-;20562:139;;20028:680;;;;:::o;20714:118::-;20801:24;20819:5;20801:24;:::i;:::-;20796:3;20789:37;20714:118;;:::o;20838:158::-;20911:11;20945:6;20940:3;20933:19;20985:4;20980:3;20976:14;20961:29;;20838:158;;;;:::o;21002:353::-;21078:3;21106:38;21138:5;21106:38;:::i;:::-;21160:60;21213:6;21208:3;21160:60;:::i;:::-;21153:67;;21229:65;21287:6;21282:3;21275:4;21268:5;21264:16;21229:65;:::i;:::-;21319:29;21341:6;21319:29;:::i;:::-;21314:3;21310:39;21303:46;;21082:273;21002:353;;;;:::o;21413:599::-;21528:3;21564:4;21559:3;21555:14;21650:4;21643:5;21639:16;21633:23;21669:63;21726:4;21721:3;21717:14;21703:12;21669:63;:::i;:::-;21579:163;21824:4;21817:5;21813:16;21807:23;21877:3;21871:4;21867:14;21860:4;21855:3;21851:14;21844:38;21903:71;21969:4;21955:12;21903:71;:::i;:::-;21895:79;;21752:233;22002:4;21995:11;;21533:479;21413:599;;;;:::o;22018:859::-;22297:4;22335:3;22324:9;22320:19;22312:27;;22349:71;22417:1;22406:9;22402:17;22393:6;22349:71;:::i;:::-;22467:9;22461:4;22457:20;22452:2;22441:9;22437:18;22430:48;22495:104;22594:4;22585:6;22495:104;:::i;:::-;22487:112;;22646:9;22640:4;22636:20;22631:2;22620:9;22616:18;22609:48;22674:108;22777:4;22768:6;22674:108;:::i;:::-;22666:116;;22792:78;22866:2;22855:9;22851:18;22842:6;22792:78;:::i;:::-;22018:859;;;;;;;:::o;22883:168::-;22966:11;23000:6;22995:3;22988:19;23040:4;23035:3;23031:14;23016:29;;22883:168;;;;:::o;23079:314::-;23175:3;23196:70;23259:6;23254:3;23196:70;:::i;:::-;23189:77;;23276:56;23325:6;23320:3;23313:5;23276:56;:::i;:::-;23357:29;23379:6;23357:29;:::i;:::-;23352:3;23348:39;23341:46;;23079:314;;;;;:::o;23399:329::-;23520:4;23558:2;23547:9;23543:18;23535:26;;23607:9;23601:4;23597:20;23593:1;23582:9;23578:17;23571:47;23635:86;23716:4;23707:6;23699;23635:86;:::i;:::-;23627:94;;23399:329;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callWithSignature()":"59ebea23","elementaryParamSelector(uint256,bool)":"3ec37834","fixedSizeParamSelector(uint256[3])":"ead6b8bd","mappingParamSelector(address,(uint256,bytes),uint256[],uint8)":"e355b0ce","mint(address)":"6a627842","mintSelector()":"046dab16","nonFixedSizeParamSelector(uint256[],string)":"f0ca01de","nonParamSelector()":"03817936"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"SelectorEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"callWithSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"param1\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"param2\",\"type\":\"bool\"}],\"name\":\"elementaryParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithElementaryParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"param1\",\"type\":\"uint256[3]\"}],\"name\":\"fixedSizeParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithFixedSizeParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract DemoContract\",\"name\":\"demo\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"uid\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"}],\"internalType\":\"struct Selector.User\",\"name\":\"user\",\"type\":\"tuple\"},{\"internalType\":\"uint256[]\",\"name\":\"count\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Selector.School\",\"name\":\"mySchool\",\"type\":\"uint8\"}],\"name\":\"mappingParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithMappingParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"mSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"param1\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"param2\",\"type\":\"string\"}],\"name\":\"nonFixedSizeParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithNonFixedSizeParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithNonParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/29_Selector/Selector.sol\":\"Selector\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/29_Selector/Selector.sol\":{\"keccak256\":\"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b\",\"dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4","indexed":false}],"type":"event","name":"SelectorEvent","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"callWithSignature"},{"inputs":[{"internalType":"uint256","name":"param1","type":"uint256"},{"internalType":"bool","name":"param2","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"elementaryParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithElementaryParam","type":"bytes4"}]},{"inputs":[{"internalType":"uint256[3]","name":"param1","type":"uint256[3]"}],"stateMutability":"nonpayable","type":"function","name":"fixedSizeParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithFixedSizeParam","type":"bytes4"}]},{"inputs":[{"internalType":"contract DemoContract","name":"demo","type":"address"},{"internalType":"struct Selector.User","name":"user","type":"tuple","components":[{"internalType":"uint256","name":"uid","type":"uint256"},{"internalType":"bytes","name":"name","type":"bytes"}]},{"internalType":"uint256[]","name":"count","type":"uint256[]"},{"internalType":"enum Selector.School","name":"mySchool","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"mappingParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithMappingParam","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"pure","type":"function","name":"mintSelector","outputs":[{"internalType":"bytes4","name":"mSelector","type":"bytes4"}]},{"inputs":[{"internalType":"uint256[]","name":"param1","type":"uint256[]"},{"internalType":"string","name":"param2","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"nonFixedSizeParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithNonFixedSizeParam","type":"bytes4"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"nonParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithNonParam","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/29_Selector/Selector.sol":"Selector"},"evmVersion":"prague","libraries":{}},"sources":{"src/29_Selector/Selector.sol":{"keccak256":"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926","urls":["bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b","dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR"],"license":"MIT"}},"version":1},"id":76} \ No newline at end of file +{"abi":[{"type":"function","name":"callWithSignature","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"elementaryParamSelector","inputs":[{"name":"param1","type":"uint256","internalType":"uint256"},{"name":"param2","type":"bool","internalType":"bool"}],"outputs":[{"name":"selectorWithElementaryParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"fixedSizeParamSelector","inputs":[{"name":"param1","type":"uint256[3]","internalType":"uint256[3]"}],"outputs":[{"name":"selectorWithFixedSizeParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"mappingParamSelector","inputs":[{"name":"demo","type":"address","internalType":"contract DemoContract"},{"name":"user","type":"tuple","internalType":"struct Selector.User","components":[{"name":"uid","type":"uint256","internalType":"uint256"},{"name":"name","type":"bytes","internalType":"bytes"}]},{"name":"count","type":"uint256[]","internalType":"uint256[]"},{"name":"mySchool","type":"uint8","internalType":"enum Selector.School"}],"outputs":[{"name":"selectorWithMappingParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintSelector","inputs":[],"outputs":[{"name":"mSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"nonFixedSizeParamSelector","inputs":[{"name":"param1","type":"uint256[]","internalType":"uint256[]"},{"name":"param2","type":"string","internalType":"string"}],"outputs":[{"name":"selectorWithNonFixedSizeParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonParamSelector","inputs":[],"outputs":[{"name":"selectorWithNonParam","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"event","name":"Log","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SelectorEvent","inputs":[{"name":"","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506115068061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610086575f3560e01c80636a627842116100595780636a62784214610100578063e355b0ce1461011c578063ead6b8bd1461014c578063f0ca01de1461017c57610086565b8063038179361461008a578063046dab16146100a85780633ec37834146100c657806359ebea23146100f6575b5f5ffd5b6100926101ac565b60405161009f919061099e565b60405180910390f35b6100b0610211565b6040516100bd919061099e565b60405180910390f35b6100e060048036038101906100db9190610a30565b610238565b6040516100ed919061099e565b60405180910390f35b6100fe6102a0565b005b61011a60048036038101906101159190610ac8565b6107d6565b005b61013660048036038101906101319190610dc2565b610812565b604051610143919061099e565b60405180910390f35b61016660048036038101906101619190610f0c565b61087c565b604051610173919061099e565b60405180910390f35b61019660048036038101906101919190610fd5565b6108e3565b6040516101a3919061099e565b60405180910390f35b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb630381793660e01b6040516101e3919061099e565b60405180910390a17f038179367d802aca924f17568b786520678fa7955b6cd468a00dd90b7cfbab40905090565b5f7f6a627842f752de95745ef8f3ca67858982b5f585d752f8163e5855050041cb3c905090565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb633ec3783460e01b60405161026f919061099e565b60405180910390a17f3ec3783488bfc90ed98dc398cd67f30f42b252c8ce7d59a4dce63a149c452548905092915050565b5f600367ffffffffffffffff8111156102bc576102bb610b42565b5b6040519080825280602002602001820160405280156102ea5781602001602082028036833780820191505090505b5090506001815f815181106103025761030161104b565b5b6020026020010181815250506002816001815181106103245761032361104b565b5b6020026020010181815250506003816002815181106103465761034561104b565b5b60200260200101818152505061035a61094b565b6001815f0181815250506040518060400160405280600681526020017f307861306231000000000000000000000000000000000000000000000000000081525081602001819052505f5f3073ffffffffffffffffffffffffffffffffffffffff1663038179366040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161041491906110ca565b5f604051808303815f865af19150503d805f811461044d576040519150601f19603f3d011682016040523d82523d5f602084013e610452565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff16633ec3783460015f604051602401610489929190611167565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104d791906110ca565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663ead6b8bd6040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060405160240161056f9190611233565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105bd91906110ca565b5f604051808303815f865af19150503d805f81146105f6576040519150601f19603f3d011682016040523d82523d5f602084013e6105fb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663f0ca01de8b60405160240161062f919061135d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067d91906110ca565b5f604051808303815f865af19150503d805f81146106b6576040519150601f19603f3d011682016040523d82523d5f602084013e6106bb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663e355b0ce739d7f74d0c41e726ec95884e0e97fa6129e3b5e998d8f600160405160240161070a9493929190611421565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161075891906110ca565b5f604051808303815f865af19150503d805f8114610791576040519150601f19603f3d011682016040523d82523d5f602084013e610796565b606091505b50915091508980156107a55750875b80156107ae5750855b80156107b75750835b80156107c05750815b6107c8575f5ffd5b505050505050505050505050565b7fafabcf2dd47e06a477a89e49c03f8ebe8e0a7e94f775b25bbb24227c9d0110b25f366040516108079291906114ae565b60405180910390a150565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63e355b0ce60e01b604051610849919061099e565b60405180910390a17fe355b0ceecdc5a85bc460808aed3b4d8eaa7935dbf79d2db6ffcf71e5c3525769050949350505050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63ead6b8bd60e01b6040516108b3919061099e565b60405180910390a17fead6b8bdece33532847146a6fe63967e794ef7c18f3b888ae6fb3aebb4ef1b959050919050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63f0ca01de60e01b60405161091a919061099e565b60405180910390a17ff0ca01de95639524000d6ff4e9309b96c7f67f7961bf24b33f8b20e85f6ad977905092915050565b60405180604001604052805f8152602001606081525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61099881610964565b82525050565b5f6020820190506109b15f83018461098f565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6109da816109c8565b81146109e4575f5ffd5b50565b5f813590506109f5816109d1565b92915050565b5f8115159050919050565b610a0f816109fb565b8114610a19575f5ffd5b50565b5f81359050610a2a81610a06565b92915050565b5f5f60408385031215610a4657610a456109c0565b5b5f610a53858286016109e7565b9250506020610a6485828601610a1c565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a9782610a6e565b9050919050565b610aa781610a8d565b8114610ab1575f5ffd5b50565b5f81359050610ac281610a9e565b92915050565b5f60208284031215610add57610adc6109c0565b5b5f610aea84828501610ab4565b91505092915050565b5f610afd82610a8d565b9050919050565b610b0d81610af3565b8114610b17575f5ffd5b50565b5f81359050610b2881610b04565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b7882610b32565b810181811067ffffffffffffffff82111715610b9757610b96610b42565b5b80604052505050565b5f610ba96109b7565b9050610bb58282610b6f565b919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115610be057610bdf610b42565b5b610be982610b32565b9050602081019050919050565b828183375f83830152505050565b5f610c16610c1184610bc6565b610ba0565b905082815260208101848484011115610c3257610c31610bc2565b5b610c3d848285610bf6565b509392505050565b5f82601f830112610c5957610c58610bbe565b5b8135610c69848260208601610c04565b91505092915050565b5f60408284031215610c8757610c86610b2e565b5b610c916040610ba0565b90505f610ca0848285016109e7565b5f83015250602082013567ffffffffffffffff811115610cc357610cc2610bba565b5b610ccf84828501610c45565b60208301525092915050565b5f67ffffffffffffffff821115610cf557610cf4610b42565b5b602082029050602081019050919050565b5f5ffd5b5f610d1c610d1784610cdb565b610ba0565b90508083825260208201905060208402830185811115610d3f57610d3e610d06565b5b835b81811015610d685780610d5488826109e7565b845260208401935050602081019050610d41565b5050509392505050565b5f82601f830112610d8657610d85610bbe565b5b8135610d96848260208601610d0a565b91505092915050565b60038110610dab575f5ffd5b50565b5f81359050610dbc81610d9f565b92915050565b5f5f5f5f60808587031215610dda57610dd96109c0565b5b5f610de787828801610b1a565b945050602085013567ffffffffffffffff811115610e0857610e076109c4565b5b610e1487828801610c72565b935050604085013567ffffffffffffffff811115610e3557610e346109c4565b5b610e4187828801610d72565b9250506060610e5287828801610dae565b91505092959194509250565b5f67ffffffffffffffff821115610e7857610e77610b42565b5b602082029050919050565b5f610e95610e9084610e5e565b610ba0565b90508060208402830185811115610eaf57610eae610d06565b5b835b81811015610ed85780610ec488826109e7565b845260208401935050602081019050610eb1565b5050509392505050565b5f82601f830112610ef657610ef5610bbe565b5b6003610f03848285610e83565b91505092915050565b5f60608284031215610f2157610f206109c0565b5b5f610f2e84828501610ee2565b91505092915050565b5f67ffffffffffffffff821115610f5157610f50610b42565b5b610f5a82610b32565b9050602081019050919050565b5f610f79610f7484610f37565b610ba0565b905082815260208101848484011115610f9557610f94610bc2565b5b610fa0848285610bf6565b509392505050565b5f82601f830112610fbc57610fbb610bbe565b5b8135610fcc848260208601610f67565b91505092915050565b5f5f60408385031215610feb57610fea6109c0565b5b5f83013567ffffffffffffffff811115611008576110076109c4565b5b61101485828601610d72565b925050602083013567ffffffffffffffff811115611035576110346109c4565b5b61104185828601610fa8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6110a482611078565b6110ae8185611082565b93506110be81856020860161108c565b80840191505092915050565b5f6110d5828461109a565b915081905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61111861111361110e846110e0565b6110f5565b6110e9565b9050919050565b611128816110fe565b82525050565b5f819050919050565b5f61115161114c6111478461112e565b6110f5565b6110e9565b9050919050565b61116181611137565b82525050565b5f60408201905061117a5f83018561111f565b6111876020830184611158565b9392505050565b5f60039050919050565b5f81905092915050565b5f819050919050565b6111b4816110e9565b82525050565b5f6111c583836111ab565b60208301905092915050565b5f602082019050919050565b6111e68161118e565b6111f08184611198565b92506111fb826111a2565b805f5b8381101561122b57815161121287826111ba565b965061121d836111d1565b9250506001810190506111fe565b505050505050565b5f6060820190506112465f8301846111dd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61127e816109c8565b82525050565b5f61128f8383611275565b60208301905092915050565b5f602082019050919050565b5f6112b18261124c565b6112bb8185611256565b93506112c683611266565b805f5b838110156112f65781516112dd8882611284565b97506112e88361129b565b9250506001810190506112c9565b5085935050505092915050565b5f82825260208201905092915050565b7f61626300000000000000000000000000000000000000000000000000000000005f82015250565b5f611347600383611303565b915061135282611313565b602082019050919050565b5f6040820190508181035f83015261137581846112a7565b905081810360208301526113888161133b565b905092915050565b61139981610a8d565b82525050565b5f82825260208201905092915050565b5f6113b982611078565b6113c3818561139f565b93506113d381856020860161108c565b6113dc81610b32565b840191505092915050565b5f604083015f8301516113fc5f860182611275565b506020830151848203602086015261141482826113af565b9150508091505092915050565b5f6080820190506114345f830187611390565b818103602083015261144681866113e7565b9050818103604083015261145a81856112a7565b9050611469606083018461111f565b95945050505050565b5f82825260208201905092915050565b5f61148d8385611472565b935061149a838584610bf6565b6114a383610b32565b840190509392505050565b5f6020820190508181035f8301526114c7818486611482565b9050939250505056fea26469706673582212201a0af96a494db96ac85b254a73e7c16d3564a4649e8d58dc3918a2a125a7262364736f6c63430008220033","sourceMap":"107:4083:70:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610086575f3560e01c80636a627842116100595780636a62784214610100578063e355b0ce1461011c578063ead6b8bd1461014c578063f0ca01de1461017c57610086565b8063038179361461008a578063046dab16146100a85780633ec37834146100c657806359ebea23146100f6575b5f5ffd5b6100926101ac565b60405161009f919061099e565b60405180910390f35b6100b0610211565b6040516100bd919061099e565b60405180910390f35b6100e060048036038101906100db9190610a30565b610238565b6040516100ed919061099e565b60405180910390f35b6100fe6102a0565b005b61011a60048036038101906101159190610ac8565b6107d6565b005b61013660048036038101906101319190610dc2565b610812565b604051610143919061099e565b60405180910390f35b61016660048036038101906101619190610f0c565b61087c565b604051610173919061099e565b60405180910390f35b61019660048036038101906101919190610fd5565b6108e3565b6040516101a3919061099e565b60405180910390f35b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb630381793660e01b6040516101e3919061099e565b60405180910390a17f038179367d802aca924f17568b786520678fa7955b6cd468a00dd90b7cfbab40905090565b5f7f6a627842f752de95745ef8f3ca67858982b5f585d752f8163e5855050041cb3c905090565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb633ec3783460e01b60405161026f919061099e565b60405180910390a17f3ec3783488bfc90ed98dc398cd67f30f42b252c8ce7d59a4dce63a149c452548905092915050565b5f600367ffffffffffffffff8111156102bc576102bb610b42565b5b6040519080825280602002602001820160405280156102ea5781602001602082028036833780820191505090505b5090506001815f815181106103025761030161104b565b5b6020026020010181815250506002816001815181106103245761032361104b565b5b6020026020010181815250506003816002815181106103465761034561104b565b5b60200260200101818152505061035a61094b565b6001815f0181815250506040518060400160405280600681526020017f307861306231000000000000000000000000000000000000000000000000000081525081602001819052505f5f3073ffffffffffffffffffffffffffffffffffffffff1663038179366040516024016040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161041491906110ca565b5f604051808303815f865af19150503d805f811461044d576040519150601f19603f3d011682016040523d82523d5f602084013e610452565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff16633ec3783460015f604051602401610489929190611167565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104d791906110ca565b5f604051808303815f865af19150503d805f8114610510576040519150601f19603f3d011682016040523d82523d5f602084013e610515565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663ead6b8bd6040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525060405160240161056f9190611233565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105bd91906110ca565b5f604051808303815f865af19150503d805f81146105f6576040519150601f19603f3d011682016040523d82523d5f602084013e6105fb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663f0ca01de8b60405160240161062f919061135d565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161067d91906110ca565b5f604051808303815f865af19150503d805f81146106b6576040519150601f19603f3d011682016040523d82523d5f602084013e6106bb565b606091505b50915091505f5f3073ffffffffffffffffffffffffffffffffffffffff1663e355b0ce739d7f74d0c41e726ec95884e0e97fa6129e3b5e998d8f600160405160240161070a9493929190611421565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161075891906110ca565b5f604051808303815f865af19150503d805f8114610791576040519150601f19603f3d011682016040523d82523d5f602084013e610796565b606091505b50915091508980156107a55750875b80156107ae5750855b80156107b75750835b80156107c05750815b6107c8575f5ffd5b505050505050505050505050565b7fafabcf2dd47e06a477a89e49c03f8ebe8e0a7e94f775b25bbb24227c9d0110b25f366040516108079291906114ae565b60405180910390a150565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63e355b0ce60e01b604051610849919061099e565b60405180910390a17fe355b0ceecdc5a85bc460808aed3b4d8eaa7935dbf79d2db6ffcf71e5c3525769050949350505050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63ead6b8bd60e01b6040516108b3919061099e565b60405180910390a17fead6b8bdece33532847146a6fe63967e794ef7c18f3b888ae6fb3aebb4ef1b959050919050565b5f7f87c76683e354abe8640b03c72d02c9175d9a00a6c0101d5bc4be081b9b8199eb63f0ca01de60e01b60405161091a919061099e565b60405180910390a17ff0ca01de95639524000d6ff4e9309b96c7f67f7961bf24b33f8b20e85f6ad977905092915050565b60405180604001604052805f8152602001606081525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61099881610964565b82525050565b5f6020820190506109b15f83018461098f565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6109da816109c8565b81146109e4575f5ffd5b50565b5f813590506109f5816109d1565b92915050565b5f8115159050919050565b610a0f816109fb565b8114610a19575f5ffd5b50565b5f81359050610a2a81610a06565b92915050565b5f5f60408385031215610a4657610a456109c0565b5b5f610a53858286016109e7565b9250506020610a6485828601610a1c565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a9782610a6e565b9050919050565b610aa781610a8d565b8114610ab1575f5ffd5b50565b5f81359050610ac281610a9e565b92915050565b5f60208284031215610add57610adc6109c0565b5b5f610aea84828501610ab4565b91505092915050565b5f610afd82610a8d565b9050919050565b610b0d81610af3565b8114610b17575f5ffd5b50565b5f81359050610b2881610b04565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b7882610b32565b810181811067ffffffffffffffff82111715610b9757610b96610b42565b5b80604052505050565b5f610ba96109b7565b9050610bb58282610b6f565b919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115610be057610bdf610b42565b5b610be982610b32565b9050602081019050919050565b828183375f83830152505050565b5f610c16610c1184610bc6565b610ba0565b905082815260208101848484011115610c3257610c31610bc2565b5b610c3d848285610bf6565b509392505050565b5f82601f830112610c5957610c58610bbe565b5b8135610c69848260208601610c04565b91505092915050565b5f60408284031215610c8757610c86610b2e565b5b610c916040610ba0565b90505f610ca0848285016109e7565b5f83015250602082013567ffffffffffffffff811115610cc357610cc2610bba565b5b610ccf84828501610c45565b60208301525092915050565b5f67ffffffffffffffff821115610cf557610cf4610b42565b5b602082029050602081019050919050565b5f5ffd5b5f610d1c610d1784610cdb565b610ba0565b90508083825260208201905060208402830185811115610d3f57610d3e610d06565b5b835b81811015610d685780610d5488826109e7565b845260208401935050602081019050610d41565b5050509392505050565b5f82601f830112610d8657610d85610bbe565b5b8135610d96848260208601610d0a565b91505092915050565b60038110610dab575f5ffd5b50565b5f81359050610dbc81610d9f565b92915050565b5f5f5f5f60808587031215610dda57610dd96109c0565b5b5f610de787828801610b1a565b945050602085013567ffffffffffffffff811115610e0857610e076109c4565b5b610e1487828801610c72565b935050604085013567ffffffffffffffff811115610e3557610e346109c4565b5b610e4187828801610d72565b9250506060610e5287828801610dae565b91505092959194509250565b5f67ffffffffffffffff821115610e7857610e77610b42565b5b602082029050919050565b5f610e95610e9084610e5e565b610ba0565b90508060208402830185811115610eaf57610eae610d06565b5b835b81811015610ed85780610ec488826109e7565b845260208401935050602081019050610eb1565b5050509392505050565b5f82601f830112610ef657610ef5610bbe565b5b6003610f03848285610e83565b91505092915050565b5f60608284031215610f2157610f206109c0565b5b5f610f2e84828501610ee2565b91505092915050565b5f67ffffffffffffffff821115610f5157610f50610b42565b5b610f5a82610b32565b9050602081019050919050565b5f610f79610f7484610f37565b610ba0565b905082815260208101848484011115610f9557610f94610bc2565b5b610fa0848285610bf6565b509392505050565b5f82601f830112610fbc57610fbb610bbe565b5b8135610fcc848260208601610f67565b91505092915050565b5f5f60408385031215610feb57610fea6109c0565b5b5f83013567ffffffffffffffff811115611008576110076109c4565b5b61101485828601610d72565b925050602083013567ffffffffffffffff811115611035576110346109c4565b5b61104185828601610fa8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6110a482611078565b6110ae8185611082565b93506110be81856020860161108c565b80840191505092915050565b5f6110d5828461109a565b915081905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61111861111361110e846110e0565b6110f5565b6110e9565b9050919050565b611128816110fe565b82525050565b5f819050919050565b5f61115161114c6111478461112e565b6110f5565b6110e9565b9050919050565b61116181611137565b82525050565b5f60408201905061117a5f83018561111f565b6111876020830184611158565b9392505050565b5f60039050919050565b5f81905092915050565b5f819050919050565b6111b4816110e9565b82525050565b5f6111c583836111ab565b60208301905092915050565b5f602082019050919050565b6111e68161118e565b6111f08184611198565b92506111fb826111a2565b805f5b8381101561122b57815161121287826111ba565b965061121d836111d1565b9250506001810190506111fe565b505050505050565b5f6060820190506112465f8301846111dd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61127e816109c8565b82525050565b5f61128f8383611275565b60208301905092915050565b5f602082019050919050565b5f6112b18261124c565b6112bb8185611256565b93506112c683611266565b805f5b838110156112f65781516112dd8882611284565b97506112e88361129b565b9250506001810190506112c9565b5085935050505092915050565b5f82825260208201905092915050565b7f61626300000000000000000000000000000000000000000000000000000000005f82015250565b5f611347600383611303565b915061135282611313565b602082019050919050565b5f6040820190508181035f83015261137581846112a7565b905081810360208301526113888161133b565b905092915050565b61139981610a8d565b82525050565b5f82825260208201905092915050565b5f6113b982611078565b6113c3818561139f565b93506113d381856020860161108c565b6113dc81610b32565b840191505092915050565b5f604083015f8301516113fc5f860182611275565b506020830151848203602086015261141482826113af565b9150508091505092915050565b5f6080820190506114345f830187611390565b818103602083015261144681866113e7565b9050818103604083015261145a81856112a7565b9050611469606083018461111f565b95945050505050565b5f82825260208201905092915050565b5f61148d8385611472565b935061149a838584610bf6565b6114a383610b32565b840190509392505050565b5f6020820190508181035f8301526114c7818486611482565b9050939250505056fea26469706673582212201a0af96a494db96ac85b254a73e7c16d3564a4649e8d58dc3918a2a125a7262364736f6c63430008220033","sourceMap":"107:4083:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;790:196;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;576:121;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1138:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2899:1289;;;:::i;:::-;;437:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1551:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1985:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;790:196;835:27;878:45;892:30;;;878:45;;;;;;:::i;:::-;;;;;;;;947:31;933:46;;790:196;:::o;576:121::-;622:16;663:26;649:41;;576:121;:::o;1138:263::-;1217:34;1267:52;1281:37;;;1267:52;;;;;;:::i;:::-;;;;;;;;1343:50;1329:65;;1138:263;;;;:::o;2899:1289::-;2980:23;3020:1;3006:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2980:42;;3044:1;3032:6;3039:1;3032:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3067:1;3055:6;3062:1;3055:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3090:1;3078:6;3085:1;3078:9;;;;;;;;:::i;:::-;;;;;;;:13;;;;;3129:16;;:::i;:::-;3166:1;3155:4;:8;;:12;;;;;3177:20;;;;;;;;;;;;;;;;;:4;:9;;:20;;;;3330:13;3345:18;3375:4;3367:18;;3409:10;3386:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:54;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3329:92;;;;3479:13;3494:18;3524:4;3516:18;;3558:10;3570:1;3573;3535:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3516:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3478:98;;;;3633:13;3648:18;3678:4;3670:18;;3712:10;3689:43;;;;;;;;3725:1;3689:43;;;;;;3727:1;3689:43;;;;;;3729:1;3689:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3670:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3632:101;;;;3793:13;3808:18;3838:4;3830:18;;3872:10;3884:6;3849:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3792:107;;;;3954:13;3969:18;3999:4;3991:18;;4033:10;4045:42;4089:4;4095:6;4103:1;4010:95;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3991:115;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:153;;;;4124:8;:20;;;;;4136:8;4124:20;:32;;;;;4148:8;4124:32;:44;;;;;4160:8;4124:44;:56;;;;;4172:8;4124:56;4116:65;;;;;;2936:1252;;;;;;;;;;;;2899:1289::o;437:73::-;490:13;494:8;;490:13;;;;;;;:::i;:::-;;;;;;;;437:73;:::o;2529:327::-;2654:31;2701:49;2715:34;;;2701:49;;;;;;:::i;:::-;;;;;;;;2774:74;2760:89;;2529:327;;;;;;:::o;1551:254::-;1626:33;1675:51;1689:36;;;1675:51;;;;;;:::i;:::-;;;;;;;;1750:47;1736:62;;1551:254;;;:::o;1985:292::-;2083:36;2135:54;2149:39;;;2135:54;;;;;;:::i;:::-;;;;;;;;2213:56;2199:71;;1985:292;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:149:139:-;43:7;83:66;76:5;72:78;61:89;;7:149;;;:::o;162:115::-;247:23;264:5;247:23;:::i;:::-;242:3;235:36;162:115;;:::o;283:218::-;374:4;412:2;401:9;397:18;389:26;;425:69;491:1;480:9;476:17;467:6;425:69;:::i;:::-;283:218;;;;:::o;507:75::-;540:6;573:2;567:9;557:19;;507:75;:::o;588:117::-;697:1;694;687:12;711:117;820:1;817;810:12;834:77;871:7;900:5;889:16;;834:77;;;:::o;917:122::-;990:24;1008:5;990:24;:::i;:::-;983:5;980:35;970:63;;1029:1;1026;1019:12;970:63;917:122;:::o;1045:139::-;1091:5;1129:6;1116:20;1107:29;;1145:33;1172:5;1145:33;:::i;:::-;1045:139;;;;:::o;1190:90::-;1224:7;1267:5;1260:13;1253:21;1242:32;;1190:90;;;:::o;1286:116::-;1356:21;1371:5;1356:21;:::i;:::-;1349:5;1346:32;1336:60;;1392:1;1389;1382:12;1336:60;1286:116;:::o;1408:133::-;1451:5;1489:6;1476:20;1467:29;;1505:30;1529:5;1505:30;:::i;:::-;1408:133;;;;:::o;1547:468::-;1612:6;1620;1669:2;1657:9;1648:7;1644:23;1640:32;1637:119;;;1675:79;;:::i;:::-;1637:119;1795:1;1820:53;1865:7;1856:6;1845:9;1841:22;1820:53;:::i;:::-;1810:63;;1766:117;1922:2;1948:50;1990:7;1981:6;1970:9;1966:22;1948:50;:::i;:::-;1938:60;;1893:115;1547:468;;;;;:::o;2021:126::-;2058:7;2098:42;2091:5;2087:54;2076:65;;2021:126;;;:::o;2153:96::-;2190:7;2219:24;2237:5;2219:24;:::i;:::-;2208:35;;2153:96;;;:::o;2255:122::-;2328:24;2346:5;2328:24;:::i;:::-;2321:5;2318:35;2308:63;;2367:1;2364;2357:12;2308:63;2255:122;:::o;2383:139::-;2429:5;2467:6;2454:20;2445:29;;2483:33;2510:5;2483:33;:::i;:::-;2383:139;;;;:::o;2528:329::-;2587:6;2636:2;2624:9;2615:7;2611:23;2607:32;2604:119;;;2642:79;;:::i;:::-;2604:119;2762:1;2787:53;2832:7;2823:6;2812:9;2808:22;2787:53;:::i;:::-;2777:63;;2733:117;2528:329;;;;:::o;2863:118::-;2922:7;2951:24;2969:5;2951:24;:::i;:::-;2940:35;;2863:118;;;:::o;2987:166::-;3082:46;3122:5;3082:46;:::i;:::-;3075:5;3072:57;3062:85;;3143:1;3140;3133:12;3062:85;2987:166;:::o;3159:183::-;3227:5;3265:6;3252:20;3243:29;;3281:55;3330:5;3281:55;:::i;:::-;3159:183;;;;:::o;3348:117::-;3457:1;3454;3447:12;3471:102;3512:6;3563:2;3559:7;3554:2;3547:5;3543:14;3539:28;3529:38;;3471:102;;;:::o;3579:180::-;3627:77;3624:1;3617:88;3724:4;3721:1;3714:15;3748:4;3745:1;3738:15;3765:281;3848:27;3870:4;3848:27;:::i;:::-;3840:6;3836:40;3978:6;3966:10;3963:22;3942:18;3930:10;3927:34;3924:62;3921:88;;;3989:18;;:::i;:::-;3921:88;4029:10;4025:2;4018:22;3808:238;3765:281;;:::o;4052:129::-;4086:6;4113:20;;:::i;:::-;4103:30;;4142:33;4170:4;4162:6;4142:33;:::i;:::-;4052:129;;;:::o;4187:117::-;4296:1;4293;4286:12;4310:117;4419:1;4416;4409:12;4433:117;4542:1;4539;4532:12;4556:307;4617:4;4707:18;4699:6;4696:30;4693:56;;;4729:18;;:::i;:::-;4693:56;4767:29;4789:6;4767:29;:::i;:::-;4759:37;;4851:4;4845;4841:15;4833:23;;4556:307;;;:::o;4869:148::-;4967:6;4962:3;4957;4944:30;5008:1;4999:6;4994:3;4990:16;4983:27;4869:148;;;:::o;5023:423::-;5100:5;5125:65;5141:48;5182:6;5141:48;:::i;:::-;5125:65;:::i;:::-;5116:74;;5213:6;5206:5;5199:21;5251:4;5244:5;5240:16;5289:3;5280:6;5275:3;5271:16;5268:25;5265:112;;;5296:79;;:::i;:::-;5265:112;5386:54;5433:6;5428:3;5423;5386:54;:::i;:::-;5106:340;5023:423;;;;;:::o;5465:338::-;5520:5;5569:3;5562:4;5554:6;5550:17;5546:27;5536:122;;5577:79;;:::i;:::-;5536:122;5694:6;5681:20;5719:78;5793:3;5785:6;5778:4;5770:6;5766:17;5719:78;:::i;:::-;5710:87;;5526:277;5465:338;;;;:::o;5837:740::-;5909:5;5953:4;5941:9;5936:3;5932:19;5928:30;5925:117;;;5961:79;;:::i;:::-;5925:117;6060:21;6076:4;6060:21;:::i;:::-;6051:30;;6139:1;6179:49;6224:3;6215:6;6204:9;6200:22;6179:49;:::i;:::-;6172:4;6165:5;6161:16;6154:75;6091:149;6327:2;6316:9;6312:18;6299:32;6358:18;6350:6;6347:30;6344:117;;;6380:79;;:::i;:::-;6344:117;6500:58;6554:3;6545:6;6534:9;6530:22;6500:58;:::i;:::-;6493:4;6486:5;6482:16;6475:84;6250:320;5837:740;;;;:::o;6583:311::-;6660:4;6750:18;6742:6;6739:30;6736:56;;;6772:18;;:::i;:::-;6736:56;6822:4;6814:6;6810:17;6802:25;;6882:4;6876;6872:15;6864:23;;6583:311;;;:::o;6900:117::-;7009:1;7006;6999:12;7040:710;7136:5;7161:81;7177:64;7234:6;7177:64;:::i;:::-;7161:81;:::i;:::-;7152:90;;7262:5;7291:6;7284:5;7277:21;7325:4;7318:5;7314:16;7307:23;;7378:4;7370:6;7366:17;7358:6;7354:30;7407:3;7399:6;7396:15;7393:122;;;7426:79;;:::i;:::-;7393:122;7541:6;7524:220;7558:6;7553:3;7550:15;7524:220;;;7633:3;7662:37;7695:3;7683:10;7662:37;:::i;:::-;7657:3;7650:50;7729:4;7724:3;7720:14;7713:21;;7600:144;7584:4;7579:3;7575:14;7568:21;;7524:220;;;7528:21;7142:608;;7040:710;;;;;:::o;7773:370::-;7844:5;7893:3;7886:4;7878:6;7874:17;7870:27;7860:122;;7901:79;;:::i;:::-;7860:122;8018:6;8005:20;8043:94;8133:3;8125:6;8118:4;8110:6;8106:17;8043:94;:::i;:::-;8034:103;;7850:293;7773:370;;;;:::o;8149:111::-;8234:1;8227:5;8224:12;8214:40;;8250:1;8247;8240:12;8214:40;8149:111;:::o;8266:163::-;8324:5;8362:6;8349:20;8340:29;;8378:45;8417:5;8378:45;:::i;:::-;8266:163;;;;:::o;8435:1249::-;8603:6;8611;8619;8627;8676:3;8664:9;8655:7;8651:23;8647:33;8644:120;;;8683:79;;:::i;:::-;8644:120;8803:1;8828:75;8895:7;8886:6;8875:9;8871:22;8828:75;:::i;:::-;8818:85;;8774:139;8980:2;8969:9;8965:18;8952:32;9011:18;9003:6;9000:30;8997:117;;;9033:79;;:::i;:::-;8997:117;9138:76;9206:7;9197:6;9186:9;9182:22;9138:76;:::i;:::-;9128:86;;8923:301;9291:2;9280:9;9276:18;9263:32;9322:18;9314:6;9311:30;9308:117;;;9344:79;;:::i;:::-;9308:117;9449:78;9519:7;9510:6;9499:9;9495:22;9449:78;:::i;:::-;9439:88;;9234:303;9576:2;9602:65;9659:7;9650:6;9639:9;9635:22;9602:65;:::i;:::-;9592:75;;9547:130;8435:1249;;;;;;;:::o;9690:249::-;9765:4;9855:18;9847:6;9844:30;9841:56;;;9877:18;;:::i;:::-;9841:56;9927:4;9919:6;9915:17;9907:25;;9690:249;;;:::o;9963:643::-;10057:5;10082:79;10098:62;10153:6;10098:62;:::i;:::-;10082:79;:::i;:::-;10073:88;;10181:5;10234:4;10226:6;10222:17;10214:6;10210:30;10263:3;10255:6;10252:15;10249:122;;;10282:79;;:::i;:::-;10249:122;10397:6;10380:220;10414:6;10409:3;10406:15;10380:220;;;10489:3;10518:37;10551:3;10539:10;10518:37;:::i;:::-;10513:3;10506:50;10585:4;10580:3;10576:14;10569:21;;10456:144;10440:4;10435:3;10431:14;10424:21;;10380:220;;;10384:21;10063:543;;9963:643;;;;;:::o;10630:339::-;10699:5;10748:3;10741:4;10733:6;10729:17;10725:27;10715:122;;10756:79;;:::i;:::-;10715:122;10860:4;10882:81;10959:3;10951:6;10943;10882:81;:::i;:::-;10873:90;;10705:264;10630:339;;;;:::o;10975:375::-;11057:6;11106:2;11094:9;11085:7;11081:23;11077:32;11074:119;;;11112:79;;:::i;:::-;11074:119;11232:1;11257:76;11325:7;11316:6;11305:9;11301:22;11257:76;:::i;:::-;11247:86;;11203:140;10975:375;;;;:::o;11356:308::-;11418:4;11508:18;11500:6;11497:30;11494:56;;;11530:18;;:::i;:::-;11494:56;11568:29;11590:6;11568:29;:::i;:::-;11560:37;;11652:4;11646;11642:15;11634:23;;11356:308;;;:::o;11670:425::-;11748:5;11773:66;11789:49;11831:6;11789:49;:::i;:::-;11773:66;:::i;:::-;11764:75;;11862:6;11855:5;11848:21;11900:4;11893:5;11889:16;11938:3;11929:6;11924:3;11920:16;11917:25;11914:112;;;11945:79;;:::i;:::-;11914:112;12035:54;12082:6;12077:3;12072;12035:54;:::i;:::-;11754:341;11670:425;;;;;:::o;12115:340::-;12171:5;12220:3;12213:4;12205:6;12201:17;12197:27;12187:122;;12228:79;;:::i;:::-;12187:122;12345:6;12332:20;12370:79;12445:3;12437:6;12430:4;12422:6;12418:17;12370:79;:::i;:::-;12361:88;;12177:278;12115:340;;;;:::o;12461:864::-;12564:6;12572;12621:2;12609:9;12600:7;12596:23;12592:32;12589:119;;;12627:79;;:::i;:::-;12589:119;12775:1;12764:9;12760:17;12747:31;12805:18;12797:6;12794:30;12791:117;;;12827:79;;:::i;:::-;12791:117;12932:78;13002:7;12993:6;12982:9;12978:22;12932:78;:::i;:::-;12922:88;;12718:302;13087:2;13076:9;13072:18;13059:32;13118:18;13110:6;13107:30;13104:117;;;13140:79;;:::i;:::-;13104:117;13245:63;13300:7;13291:6;13280:9;13276:22;13245:63;:::i;:::-;13235:73;;13030:288;12461:864;;;;;:::o;13331:180::-;13379:77;13376:1;13369:88;13476:4;13473:1;13466:15;13500:4;13497:1;13490:15;13517:98;13568:6;13602:5;13596:12;13586:22;;13517:98;;;:::o;13621:147::-;13722:11;13759:3;13744:18;;13621:147;;;;:::o;13774:139::-;13863:6;13858:3;13853;13847:23;13904:1;13895:6;13890:3;13886:16;13879:27;13774:139;;;:::o;13919:386::-;14023:3;14051:38;14083:5;14051:38;:::i;:::-;14105:88;14186:6;14181:3;14105:88;:::i;:::-;14098:95;;14202:65;14260:6;14255:3;14248:4;14241:5;14237:16;14202:65;:::i;:::-;14292:6;14287:3;14283:16;14276:23;;14027:278;13919:386;;;;:::o;14311:271::-;14441:3;14463:93;14552:3;14543:6;14463:93;:::i;:::-;14456:100;;14573:3;14566:10;;14311:271;;;;:::o;14588:85::-;14633:7;14662:5;14651:16;;14588:85;;;:::o;14679:86::-;14714:7;14754:4;14747:5;14743:16;14732:27;;14679:86;;;:::o;14771:60::-;14799:3;14820:5;14813:12;;14771:60;;;:::o;14837:154::-;14893:9;14926:59;14942:42;14951:32;14977:5;14951:32;:::i;:::-;14942:42;:::i;:::-;14926:59;:::i;:::-;14913:72;;14837:154;;;:::o;14997:143::-;15090:43;15127:5;15090:43;:::i;:::-;15085:3;15078:56;14997:143;;:::o;15146:85::-;15191:7;15220:5;15209:16;;15146:85;;;:::o;15237:154::-;15293:9;15326:59;15342:42;15351:32;15377:5;15351:32;:::i;:::-;15342:42;:::i;:::-;15326:59;:::i;:::-;15313:72;;15237:154;;;:::o;15397:143::-;15490:43;15527:5;15490:43;:::i;:::-;15485:3;15478:56;15397:143;;:::o;15546:356::-;15679:4;15717:2;15706:9;15702:18;15694:26;;15730:77;15804:1;15793:9;15789:17;15780:6;15730:77;:::i;:::-;15817:78;15891:2;15880:9;15876:18;15867:6;15817:78;:::i;:::-;15546:356;;;;;:::o;15908:102::-;15971:6;15999:4;15989:14;;15908:102;;;:::o;16016:141::-;16111:11;16148:3;16133:18;;16016:141;;;;:::o;16163:96::-;16226:4;16249:3;16241:11;;16163:96;;;:::o;16265:102::-;16338:22;16354:5;16338:22;:::i;:::-;16333:3;16326:35;16265:102;;:::o;16373:171::-;16438:10;16459:42;16497:3;16489:6;16459:42;:::i;:::-;16533:4;16528:3;16524:14;16510:28;;16373:171;;;;:::o;16550:109::-;16616:4;16648;16643:3;16639:14;16631:22;;16550:109;;;:::o;16693:678::-;16825:50;16869:5;16825:50;:::i;:::-;16891:82;16966:6;16961:3;16891:82;:::i;:::-;16884:89;;16997:52;17043:5;16997:52;:::i;:::-;17072:7;17103:1;17088:276;17113:6;17110:1;17107:13;17088:276;;;17189:6;17183:13;17216:59;17271:3;17256:13;17216:59;:::i;:::-;17209:66;;17298:56;17347:6;17298:56;:::i;:::-;17288:66;;17148:216;17135:1;17132;17128:9;17123:14;;17088:276;;;17092:14;16801:570;;;16693:678;;:::o;17377:306::-;17512:4;17550:2;17539:9;17535:18;17527:26;;17563:113;17673:1;17662:9;17658:17;17649:6;17563:113;:::i;:::-;17377:306;;;;:::o;17689:114::-;17756:6;17790:5;17784:12;17774:22;;17689:114;;;:::o;17809:184::-;17908:11;17942:6;17937:3;17930:19;17982:4;17977:3;17973:14;17958:29;;17809:184;;;;:::o;17999:132::-;18066:4;18089:3;18081:11;;18119:4;18114:3;18110:14;18102:22;;17999:132;;;:::o;18137:108::-;18214:24;18232:5;18214:24;:::i;:::-;18209:3;18202:37;18137:108;;:::o;18251:179::-;18320:10;18341:46;18383:3;18375:6;18341:46;:::i;:::-;18419:4;18414:3;18410:14;18396:28;;18251:179;;;;:::o;18436:113::-;18506:4;18538;18533:3;18529:14;18521:22;;18436:113;;;:::o;18585:732::-;18704:3;18733:54;18781:5;18733:54;:::i;:::-;18803:86;18882:6;18877:3;18803:86;:::i;:::-;18796:93;;18913:56;18963:5;18913:56;:::i;:::-;18992:7;19023:1;19008:284;19033:6;19030:1;19027:13;19008:284;;;19109:6;19103:13;19136:63;19195:3;19180:13;19136:63;:::i;:::-;19129:70;;19222:60;19275:6;19222:60;:::i;:::-;19212:70;;19068:224;19055:1;19052;19048:9;19043:14;;19008:284;;;19012:14;19308:3;19301:10;;18709:608;;;18585:732;;;;:::o;19323:169::-;19407:11;19441:6;19436:3;19429:19;19481:4;19476:3;19472:14;19457:29;;19323:169;;;;:::o;19498:153::-;19638:5;19634:1;19626:6;19622:14;19615:29;19498:153;:::o;19657:365::-;19799:3;19820:66;19884:1;19879:3;19820:66;:::i;:::-;19813:73;;19895:93;19984:3;19895:93;:::i;:::-;20013:2;20008:3;20004:12;19997:19;;19657:365;;;:::o;20028:680::-;20272:4;20310:2;20299:9;20295:18;20287:26;;20359:9;20353:4;20349:20;20345:1;20334:9;20330:17;20323:47;20387:108;20490:4;20481:6;20387:108;:::i;:::-;20379:116;;20542:9;20536:4;20532:20;20527:2;20516:9;20512:18;20505:48;20570:131;20696:4;20570:131;:::i;:::-;20562:139;;20028:680;;;;:::o;20714:118::-;20801:24;20819:5;20801:24;:::i;:::-;20796:3;20789:37;20714:118;;:::o;20838:158::-;20911:11;20945:6;20940:3;20933:19;20985:4;20980:3;20976:14;20961:29;;20838:158;;;;:::o;21002:353::-;21078:3;21106:38;21138:5;21106:38;:::i;:::-;21160:60;21213:6;21208:3;21160:60;:::i;:::-;21153:67;;21229:65;21287:6;21282:3;21275:4;21268:5;21264:16;21229:65;:::i;:::-;21319:29;21341:6;21319:29;:::i;:::-;21314:3;21310:39;21303:46;;21082:273;21002:353;;;;:::o;21413:599::-;21528:3;21564:4;21559:3;21555:14;21650:4;21643:5;21639:16;21633:23;21669:63;21726:4;21721:3;21717:14;21703:12;21669:63;:::i;:::-;21579:163;21824:4;21817:5;21813:16;21807:23;21877:3;21871:4;21867:14;21860:4;21855:3;21851:14;21844:38;21903:71;21969:4;21955:12;21903:71;:::i;:::-;21895:79;;21752:233;22002:4;21995:11;;21533:479;21413:599;;;;:::o;22018:859::-;22297:4;22335:3;22324:9;22320:19;22312:27;;22349:71;22417:1;22406:9;22402:17;22393:6;22349:71;:::i;:::-;22467:9;22461:4;22457:20;22452:2;22441:9;22437:18;22430:48;22495:104;22594:4;22585:6;22495:104;:::i;:::-;22487:112;;22646:9;22640:4;22636:20;22631:2;22620:9;22616:18;22609:48;22674:108;22777:4;22768:6;22674:108;:::i;:::-;22666:116;;22792:78;22866:2;22855:9;22851:18;22842:6;22792:78;:::i;:::-;22018:859;;;;;;;:::o;22883:168::-;22966:11;23000:6;22995:3;22988:19;23040:4;23035:3;23031:14;23016:29;;22883:168;;;;:::o;23079:314::-;23175:3;23196:70;23259:6;23254:3;23196:70;:::i;:::-;23189:77;;23276:56;23325:6;23320:3;23313:5;23276:56;:::i;:::-;23357:29;23379:6;23357:29;:::i;:::-;23352:3;23348:39;23341:46;;23079:314;;;;;:::o;23399:329::-;23520:4;23558:2;23547:9;23543:18;23535:26;;23607:9;23601:4;23597:20;23593:1;23582:9;23578:17;23571:47;23635:86;23716:4;23707:6;23699;23635:86;:::i;:::-;23627:94;;23399:329;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"callWithSignature()":"59ebea23","elementaryParamSelector(uint256,bool)":"3ec37834","fixedSizeParamSelector(uint256[3])":"ead6b8bd","mappingParamSelector(address,(uint256,bytes),uint256[],uint8)":"e355b0ce","mint(address)":"6a627842","mintSelector()":"046dab16","nonFixedSizeParamSelector(uint256[],string)":"f0ca01de","nonParamSelector()":"03817936"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"SelectorEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"callWithSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"param1\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"param2\",\"type\":\"bool\"}],\"name\":\"elementaryParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithElementaryParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"param1\",\"type\":\"uint256[3]\"}],\"name\":\"fixedSizeParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithFixedSizeParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract DemoContract\",\"name\":\"demo\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"uid\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"}],\"internalType\":\"struct Selector.User\",\"name\":\"user\",\"type\":\"tuple\"},{\"internalType\":\"uint256[]\",\"name\":\"count\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Selector.School\",\"name\":\"mySchool\",\"type\":\"uint8\"}],\"name\":\"mappingParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithMappingParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"mSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"param1\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"param2\",\"type\":\"string\"}],\"name\":\"nonFixedSizeParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithNonFixedSizeParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonParamSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"selectorWithNonParam\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/29_Selector/Selector.sol\":\"Selector\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/29_Selector/Selector.sol\":{\"keccak256\":\"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b\",\"dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4","indexed":false}],"type":"event","name":"SelectorEvent","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"callWithSignature"},{"inputs":[{"internalType":"uint256","name":"param1","type":"uint256"},{"internalType":"bool","name":"param2","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"elementaryParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithElementaryParam","type":"bytes4"}]},{"inputs":[{"internalType":"uint256[3]","name":"param1","type":"uint256[3]"}],"stateMutability":"nonpayable","type":"function","name":"fixedSizeParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithFixedSizeParam","type":"bytes4"}]},{"inputs":[{"internalType":"contract DemoContract","name":"demo","type":"address"},{"internalType":"struct Selector.User","name":"user","type":"tuple","components":[{"internalType":"uint256","name":"uid","type":"uint256"},{"internalType":"bytes","name":"name","type":"bytes"}]},{"internalType":"uint256[]","name":"count","type":"uint256[]"},{"internalType":"enum Selector.School","name":"mySchool","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"mappingParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithMappingParam","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"pure","type":"function","name":"mintSelector","outputs":[{"internalType":"bytes4","name":"mSelector","type":"bytes4"}]},{"inputs":[{"internalType":"uint256[]","name":"param1","type":"uint256[]"},{"internalType":"string","name":"param2","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"nonFixedSizeParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithNonFixedSizeParam","type":"bytes4"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"nonParamSelector","outputs":[{"internalType":"bytes4","name":"selectorWithNonParam","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/29_Selector/Selector.sol":"Selector"},"evmVersion":"prague","libraries":{}},"sources":{"src/29_Selector/Selector.sol":{"keccak256":"0x33dad3bcced4f5003163a4037269b9f619ce08e9d4741359a6d061bdbe4e1926","urls":["bzz-raw://9373bffac3457c4f21fb4d0caf1ab554a42d5814ffb5a91f74c6d95e39b6257b","dweb:/ipfs/QmR5EaLLP348F44hJzCRUoLPeQBpDYsG3c1qB1rUdvhmAR"],"license":"MIT"}},"version":1},"id":70} \ No newline at end of file diff --git a/out/SelectorClash.sol/SelectorClash.json b/out/SelectorClash.sol/SelectorClash.json index cd6f2310..39c90501 100644 --- a/out/SelectorClash.sol/SelectorClash.json +++ b/out/SelectorClash.sol/SelectorClash.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"executeCrossChainTx","inputs":[{"name":"_method","type":"bytes","internalType":"bytes"},{"name":"_bytes","type":"bytes","internalType":"bytes"},{"name":"_bytes1","type":"bytes","internalType":"bytes"},{"name":"_num","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"hackSlector","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"putCurEpochConPubKeyBytes","inputs":[{"name":"_bytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"secretSlector","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"solved","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061083f8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806320a826ba1461005957806341973cd914610089578063799320bb146100a5578063d6276ab5146100c3578063efa7897b146100e1575b5f5ffd5b610073600480360381019061006e919061044e565b6100ff565b6040516100809190610520565b60405180910390f35b6100a3600480360381019061009e9190610539565b6101db565b005b6100ad610265565b6040516100ba9190610520565b60405180910390f35b6100cb610276565b6040516100d891906105ba565b60405180910390f35b6100e961029d565b6040516100f691906105ba565b60405180910390f35b5f3073ffffffffffffffffffffffffffffffffffffffff16856040516020016101289190610679565b60405160208183030381529060405280519060200120858585604051602001610153939291906106f1565b604051602081830303815290604052604051602001610173929190610754565b60405160208183030381529060405260405161018f919061077b565b5f604051808303815f865af19150503d805f81146101c8576040519150601f19603f3d011682016040523d82523d5f602084013e6101cd565b606091505b505080915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610240906107eb565b60405180910390fd5b60015f5f6101000a81548160ff02191690831515021790555050565b5f5f9054906101000a900460ff1681565b5f7f41973cd95e41447fbb4f155da56b91d5b31daf7e54600218eb7b6c8384048c4c905090565b5f7f41973cd9ca2c3f7fa28309a71815e084e9827b0551227e684c70c7d6c9e5e031905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610323826102dd565b810181811067ffffffffffffffff82111715610342576103416102ed565b5b80604052505050565b5f6103546102c4565b9050610360828261031a565b919050565b5f67ffffffffffffffff82111561037f5761037e6102ed565b5b610388826102dd565b9050602081019050919050565b828183375f83830152505050565b5f6103b56103b084610365565b61034b565b9050828152602081018484840111156103d1576103d06102d9565b5b6103dc848285610395565b509392505050565b5f82601f8301126103f8576103f76102d5565b5b81356104088482602086016103a3565b91505092915050565b5f67ffffffffffffffff82169050919050565b61042d81610411565b8114610437575f5ffd5b50565b5f8135905061044881610424565b92915050565b5f5f5f5f60808587031215610466576104656102cd565b5b5f85013567ffffffffffffffff811115610483576104826102d1565b5b61048f878288016103e4565b945050602085013567ffffffffffffffff8111156104b0576104af6102d1565b5b6104bc878288016103e4565b935050604085013567ffffffffffffffff8111156104dd576104dc6102d1565b5b6104e9878288016103e4565b92505060606104fa8782880161043a565b91505092959194509250565b5f8115159050919050565b61051a81610506565b82525050565b5f6020820190506105335f830184610511565b92915050565b5f6020828403121561054e5761054d6102cd565b5b5f82013567ffffffffffffffff81111561056b5761056a6102d1565b5b610577848285016103e4565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6105b481610580565b82525050565b5f6020820190506105cd5f8301846105ab565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105ff826105d3565b61060981856105dd565b93506106198185602086016105e7565b80840191505092915050565b5f81905092915050565b7f2862797465732c62797465732c75696e743634290000000000000000000000005f82015250565b5f610663601483610625565b915061066e8261062f565b601482019050919050565b5f61068482846105f5565b915061068f82610657565b915081905092915050565b5f82825260208201905092915050565b5f6106b4826105d3565b6106be818561069a565b93506106ce8185602086016105e7565b6106d7816102dd565b840191505092915050565b6106eb81610411565b82525050565b5f6060820190508181035f83015261070981866106aa565b9050818103602083015261071d81856106aa565b905061072c60408301846106e2565b949350505050565b5f819050919050565b61074e61074982610580565b610734565b82525050565b5f61075f828561073d565b60048201915061076f82846105f5565b91508190509392505050565b5f61078682846105f5565b915081905092915050565b5f82825260208201905092915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f6107d5600983610791565b91506107e0826107a1565b602082019050919050565b5f6020820190508181035f830152610802816107c9565b905091905056fea2646970667358221220dca3ff3c83effbd594959254f4d8a0d8a75bb6a1230a60cbd9e88f167f6442bc64736f6c63430008220033","sourceMap":"69:814:128:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806320a826ba1461005957806341973cd914610089578063799320bb146100a5578063d6276ab5146100c3578063efa7897b146100e1575b5f5ffd5b610073600480360381019061006e919061044e565b6100ff565b6040516100809190610520565b60405180910390f35b6100a3600480360381019061009e9190610539565b6101db565b005b6100ad610265565b6040516100ba9190610520565b60405180910390f35b6100cb610276565b6040516100d891906105ba565b60405180910390f35b6100e961029d565b6040516100f691906105ba565b60405180910390f35b5f3073ffffffffffffffffffffffffffffffffffffffff16856040516020016101289190610679565b60405160208183030381529060405280519060200120858585604051602001610153939291906106f1565b604051602081830303815290604052604051602001610173929190610754565b60405160208183030381529060405260405161018f919061077b565b5f604051808303815f865af19150503d805f81146101c8576040519150601f19603f3d011682016040523d82523d5f602084013e6101cd565b606091505b505080915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610240906107eb565b60405180910390fd5b60015f5f6101000a81548160ff02191690831515021790555050565b5f5f9054906101000a900460ff1681565b5f7f41973cd95e41447fbb4f155da56b91d5b31daf7e54600218eb7b6c8384048c4c905090565b5f7f41973cd9ca2c3f7fa28309a71815e084e9827b0551227e684c70c7d6c9e5e031905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610323826102dd565b810181811067ffffffffffffffff82111715610342576103416102ed565b5b80604052505050565b5f6103546102c4565b9050610360828261031a565b919050565b5f67ffffffffffffffff82111561037f5761037e6102ed565b5b610388826102dd565b9050602081019050919050565b828183375f83830152505050565b5f6103b56103b084610365565b61034b565b9050828152602081018484840111156103d1576103d06102d9565b5b6103dc848285610395565b509392505050565b5f82601f8301126103f8576103f76102d5565b5b81356104088482602086016103a3565b91505092915050565b5f67ffffffffffffffff82169050919050565b61042d81610411565b8114610437575f5ffd5b50565b5f8135905061044881610424565b92915050565b5f5f5f5f60808587031215610466576104656102cd565b5b5f85013567ffffffffffffffff811115610483576104826102d1565b5b61048f878288016103e4565b945050602085013567ffffffffffffffff8111156104b0576104af6102d1565b5b6104bc878288016103e4565b935050604085013567ffffffffffffffff8111156104dd576104dc6102d1565b5b6104e9878288016103e4565b92505060606104fa8782880161043a565b91505092959194509250565b5f8115159050919050565b61051a81610506565b82525050565b5f6020820190506105335f830184610511565b92915050565b5f6020828403121561054e5761054d6102cd565b5b5f82013567ffffffffffffffff81111561056b5761056a6102d1565b5b610577848285016103e4565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6105b481610580565b82525050565b5f6020820190506105cd5f8301846105ab565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105ff826105d3565b61060981856105dd565b93506106198185602086016105e7565b80840191505092915050565b5f81905092915050565b7f2862797465732c62797465732c75696e743634290000000000000000000000005f82015250565b5f610663601483610625565b915061066e8261062f565b601482019050919050565b5f61068482846105f5565b915061068f82610657565b915081905092915050565b5f82825260208201905092915050565b5f6106b4826105d3565b6106be818561069a565b93506106ce8185602086016105e7565b6106d7816102dd565b840191505092915050565b6106eb81610411565b82525050565b5f6060820190508181035f83015261070981866106aa565b9050818103602083015261071d81856106aa565b905061072c60408301846106e2565b949350505050565b5f819050919050565b61074e61074982610580565b610734565b82525050565b5f61075f828561073d565b60048201915061076f82846105f5565b91508190509392505050565b5f61078682846105f5565b915081905092915050565b5f82825260208201905092915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f6107d5600983610791565b91506107e0826107a1565b602082019050919050565b5f6020820190508181035f830152610802816107c9565b905091905056fea2646970667358221220dca3ff3c83effbd594959254f4d8a0d8a75bb6a1230a60cbd9e88f167f6442bc64736f6c63430008220033","sourceMap":"69:814:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;303:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;145:152;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;98:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;753:128;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;616:131;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;303:307;425:12;470:4;462:18;;532:7;515:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;505:60;;;;;;579:6;587:7;596:4;568:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;481:121;;;;;;;;;:::i;:::-;;;;;;;;;;;;;462:141;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:155;;;;;303:307;;;;;;:::o;145:152::-;248:4;226:27;;:10;:27;;;218:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;286:4;277:6;;:13;;;;;;;;;;;;;;;;;;145:152;:::o;98:18::-;;;;;;;;;;;;;:::o;753:128::-;798:6;829:44;815:59;;753:128;:::o;616:131::-;663:6;694:45;680:60;;616:131;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:148::-;1707:6;1702:3;1697;1684:30;1748:1;1739:6;1734:3;1730:16;1723:27;1609:148;;;:::o;1763:423::-;1840:5;1865:65;1881:48;1922:6;1881:48;:::i;:::-;1865:65;:::i;:::-;1856:74;;1953:6;1946:5;1939:21;1991:4;1984:5;1980:16;2029:3;2020:6;2015:3;2011:16;2008:25;2005:112;;;2036:79;;:::i;:::-;2005:112;2126:54;2173:6;2168:3;2163;2126:54;:::i;:::-;1846:340;1763:423;;;;;:::o;2205:338::-;2260:5;2309:3;2302:4;2294:6;2290:17;2286:27;2276:122;;2317:79;;:::i;:::-;2276:122;2434:6;2421:20;2459:78;2533:3;2525:6;2518:4;2510:6;2506:17;2459:78;:::i;:::-;2450:87;;2266:277;2205:338;;;;:::o;2549:101::-;2585:7;2625:18;2618:5;2614:30;2603:41;;2549:101;;;:::o;2656:120::-;2728:23;2745:5;2728:23;:::i;:::-;2721:5;2718:34;2708:62;;2766:1;2763;2756:12;2708:62;2656:120;:::o;2782:137::-;2827:5;2865:6;2852:20;2843:29;;2881:32;2907:5;2881:32;:::i;:::-;2782:137;;;;:::o;2925:1297::-;3037:6;3045;3053;3061;3110:3;3098:9;3089:7;3085:23;3081:33;3078:120;;;3117:79;;:::i;:::-;3078:120;3265:1;3254:9;3250:17;3237:31;3295:18;3287:6;3284:30;3281:117;;;3317:79;;:::i;:::-;3281:117;3422:62;3476:7;3467:6;3456:9;3452:22;3422:62;:::i;:::-;3412:72;;3208:286;3561:2;3550:9;3546:18;3533:32;3592:18;3584:6;3581:30;3578:117;;;3614:79;;:::i;:::-;3578:117;3719:62;3773:7;3764:6;3753:9;3749:22;3719:62;:::i;:::-;3709:72;;3504:287;3858:2;3847:9;3843:18;3830:32;3889:18;3881:6;3878:30;3875:117;;;3911:79;;:::i;:::-;3875:117;4016:62;4070:7;4061:6;4050:9;4046:22;4016:62;:::i;:::-;4006:72;;3801:287;4127:2;4153:52;4197:7;4188:6;4177:9;4173:22;4153:52;:::i;:::-;4143:62;;4098:117;2925:1297;;;;;;;:::o;4228:90::-;4262:7;4305:5;4298:13;4291:21;4280:32;;4228:90;;;:::o;4324:109::-;4405:21;4420:5;4405:21;:::i;:::-;4400:3;4393:34;4324:109;;:::o;4439:210::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:65;4639:1;4628:9;4624:17;4615:6;4577:65;:::i;:::-;4439:210;;;;:::o;4655:507::-;4723:6;4772:2;4760:9;4751:7;4747:23;4743:32;4740:119;;;4778:79;;:::i;:::-;4740:119;4926:1;4915:9;4911:17;4898:31;4956:18;4948:6;4945:30;4942:117;;;4978:79;;:::i;:::-;4942:117;5083:62;5137:7;5128:6;5117:9;5113:22;5083:62;:::i;:::-;5073:72;;4869:286;4655:507;;;;:::o;5168:149::-;5204:7;5244:66;5237:5;5233:78;5222:89;;5168:149;;;:::o;5323:115::-;5408:23;5425:5;5408:23;:::i;:::-;5403:3;5396:36;5323:115;;:::o;5444:218::-;5535:4;5573:2;5562:9;5558:18;5550:26;;5586:69;5652:1;5641:9;5637:17;5628:6;5586:69;:::i;:::-;5444:218;;;;:::o;5668:98::-;5719:6;5753:5;5747:12;5737:22;;5668:98;;;:::o;5772:147::-;5873:11;5910:3;5895:18;;5772:147;;;;:::o;5925:139::-;6014:6;6009:3;6004;5998:23;6055:1;6046:6;6041:3;6037:16;6030:27;5925:139;;;:::o;6070:386::-;6174:3;6202:38;6234:5;6202:38;:::i;:::-;6256:88;6337:6;6332:3;6256:88;:::i;:::-;6249:95;;6353:65;6411:6;6406:3;6399:4;6392:5;6388:16;6353:65;:::i;:::-;6443:6;6438:3;6434:16;6427:23;;6178:278;6070:386;;;;:::o;6462:148::-;6564:11;6601:3;6586:18;;6462:148;;;;:::o;6616:170::-;6756:22;6752:1;6744:6;6740:14;6733:46;6616:170;:::o;6792:402::-;6952:3;6973:85;7055:2;7050:3;6973:85;:::i;:::-;6966:92;;7067:93;7156:3;7067:93;:::i;:::-;7185:2;7180:3;7176:12;7169:19;;6792:402;;;:::o;7200:537::-;7431:3;7453:93;7542:3;7533:6;7453:93;:::i;:::-;7446:100;;7563:148;7707:3;7563:148;:::i;:::-;7556:155;;7728:3;7721:10;;7200:537;;;;:::o;7743:168::-;7826:11;7860:6;7855:3;7848:19;7900:4;7895:3;7891:14;7876:29;;7743:168;;;;:::o;7917:373::-;8003:3;8031:38;8063:5;8031:38;:::i;:::-;8085:70;8148:6;8143:3;8085:70;:::i;:::-;8078:77;;8164:65;8222:6;8217:3;8210:4;8203:5;8199:16;8164:65;:::i;:::-;8254:29;8276:6;8254:29;:::i;:::-;8249:3;8245:39;8238:46;;8007:283;7917:373;;;;:::o;8296:115::-;8381:23;8398:5;8381:23;:::i;:::-;8376:3;8369:36;8296:115;;:::o;8417:612::-;8600:4;8638:2;8627:9;8623:18;8615:26;;8687:9;8681:4;8677:20;8673:1;8662:9;8658:17;8651:47;8715:76;8786:4;8777:6;8715:76;:::i;:::-;8707:84;;8838:9;8832:4;8828:20;8823:2;8812:9;8808:18;8801:48;8866:76;8937:4;8928:6;8866:76;:::i;:::-;8858:84;;8952:70;9018:2;9007:9;9003:18;8994:6;8952:70;:::i;:::-;8417:612;;;;;;:::o;9035:78::-;9073:7;9102:5;9091:16;;9035:78;;;:::o;9119:153::-;9222:43;9241:23;9258:5;9241:23;:::i;:::-;9222:43;:::i;:::-;9217:3;9210:56;9119:153;;:::o;9278:407::-;9434:3;9449:73;9518:3;9509:6;9449:73;:::i;:::-;9547:1;9542:3;9538:11;9531:18;;9566:93;9655:3;9646:6;9566:93;:::i;:::-;9559:100;;9676:3;9669:10;;9278:407;;;;;:::o;9691:271::-;9821:3;9843:93;9932:3;9923:6;9843:93;:::i;:::-;9836:100;;9953:3;9946:10;;9691:271;;;;:::o;9968:169::-;10052:11;10086:6;10081:3;10074:19;10126:4;10121:3;10117:14;10102:29;;9968:169;;;;:::o;10143:159::-;10283:11;10279:1;10271:6;10267:14;10260:35;10143:159;:::o;10308:365::-;10450:3;10471:66;10535:1;10530:3;10471:66;:::i;:::-;10464:73;;10546:93;10635:3;10546:93;:::i;:::-;10664:2;10659:3;10655:12;10648:19;;10308:365;;;:::o;10679:419::-;10845:4;10883:2;10872:9;10868:18;10860:26;;10932:9;10926:4;10922:20;10918:1;10907:9;10903:17;10896:47;10960:131;11086:4;10960:131;:::i;:::-;10952:139;;10679:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"executeCrossChainTx(bytes,bytes,bytes,uint64)":"20a826ba","hackSlector()":"d6276ab5","putCurEpochConPubKeyBytes(bytes)":"41973cd9","secretSlector()":"efa7897b","solved()":"799320bb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_bytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_bytes1\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_num\",\"type\":\"uint64\"}],\"name\":\"executeCrossChainTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hackSlector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_bytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"secretSlector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"solved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S02_SelectorClash/SelectorClash.sol\":\"SelectorClash\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S02_SelectorClash/SelectorClash.sol\":{\"keccak256\":\"0x957240010dcf58515fea921a13837940c6daf7c0202e0ab6ecb57062b7c0bbd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f2fafdaed758e44be5efb10d1469c61c01438c186578337eb650007552c2440\",\"dweb:/ipfs/QmUZPtXiyR6MDY44Kn7frnRjR1AshG6yHYMAiKBVzN6cWL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_method","type":"bytes"},{"internalType":"bytes","name":"_bytes","type":"bytes"},{"internalType":"bytes","name":"_bytes1","type":"bytes"},{"internalType":"uint64","name":"_num","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeCrossChainTx","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"hackSlector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes","name":"_bytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"putCurEpochConPubKeyBytes"},{"inputs":[],"stateMutability":"pure","type":"function","name":"secretSlector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"solved","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S02_SelectorClash/SelectorClash.sol":"SelectorClash"},"evmVersion":"prague","libraries":{}},"sources":{"src/S02_SelectorClash/SelectorClash.sol":{"keccak256":"0x957240010dcf58515fea921a13837940c6daf7c0202e0ab6ecb57062b7c0bbd6","urls":["bzz-raw://9f2fafdaed758e44be5efb10d1469c61c01438c186578337eb650007552c2440","dweb:/ipfs/QmUZPtXiyR6MDY44Kn7frnRjR1AshG6yHYMAiKBVzN6cWL"],"license":"MIT"}},"version":1},"id":128} \ No newline at end of file +{"abi":[{"type":"function","name":"executeCrossChainTx","inputs":[{"name":"_method","type":"bytes","internalType":"bytes"},{"name":"_bytes","type":"bytes","internalType":"bytes"},{"name":"_bytes1","type":"bytes","internalType":"bytes"},{"name":"_num","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"hackSlector","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"putCurEpochConPubKeyBytes","inputs":[{"name":"_bytes","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"secretSlector","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"pure"},{"type":"function","name":"solved","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061083f8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806320a826ba1461005957806341973cd914610089578063799320bb146100a5578063d6276ab5146100c3578063efa7897b146100e1575b5f5ffd5b610073600480360381019061006e919061044e565b6100ff565b6040516100809190610520565b60405180910390f35b6100a3600480360381019061009e9190610539565b6101db565b005b6100ad610265565b6040516100ba9190610520565b60405180910390f35b6100cb610276565b6040516100d891906105ba565b60405180910390f35b6100e961029d565b6040516100f691906105ba565b60405180910390f35b5f3073ffffffffffffffffffffffffffffffffffffffff16856040516020016101289190610679565b60405160208183030381529060405280519060200120858585604051602001610153939291906106f1565b604051602081830303815290604052604051602001610173929190610754565b60405160208183030381529060405260405161018f919061077b565b5f604051808303815f865af19150503d805f81146101c8576040519150601f19603f3d011682016040523d82523d5f602084013e6101cd565b606091505b505080915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610240906107eb565b60405180910390fd5b60015f5f6101000a81548160ff02191690831515021790555050565b5f5f9054906101000a900460ff1681565b5f7f41973cd95e41447fbb4f155da56b91d5b31daf7e54600218eb7b6c8384048c4c905090565b5f7f41973cd9ca2c3f7fa28309a71815e084e9827b0551227e684c70c7d6c9e5e031905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610323826102dd565b810181811067ffffffffffffffff82111715610342576103416102ed565b5b80604052505050565b5f6103546102c4565b9050610360828261031a565b919050565b5f67ffffffffffffffff82111561037f5761037e6102ed565b5b610388826102dd565b9050602081019050919050565b828183375f83830152505050565b5f6103b56103b084610365565b61034b565b9050828152602081018484840111156103d1576103d06102d9565b5b6103dc848285610395565b509392505050565b5f82601f8301126103f8576103f76102d5565b5b81356104088482602086016103a3565b91505092915050565b5f67ffffffffffffffff82169050919050565b61042d81610411565b8114610437575f5ffd5b50565b5f8135905061044881610424565b92915050565b5f5f5f5f60808587031215610466576104656102cd565b5b5f85013567ffffffffffffffff811115610483576104826102d1565b5b61048f878288016103e4565b945050602085013567ffffffffffffffff8111156104b0576104af6102d1565b5b6104bc878288016103e4565b935050604085013567ffffffffffffffff8111156104dd576104dc6102d1565b5b6104e9878288016103e4565b92505060606104fa8782880161043a565b91505092959194509250565b5f8115159050919050565b61051a81610506565b82525050565b5f6020820190506105335f830184610511565b92915050565b5f6020828403121561054e5761054d6102cd565b5b5f82013567ffffffffffffffff81111561056b5761056a6102d1565b5b610577848285016103e4565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6105b481610580565b82525050565b5f6020820190506105cd5f8301846105ab565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105ff826105d3565b61060981856105dd565b93506106198185602086016105e7565b80840191505092915050565b5f81905092915050565b7f2862797465732c62797465732c75696e743634290000000000000000000000005f82015250565b5f610663601483610625565b915061066e8261062f565b601482019050919050565b5f61068482846105f5565b915061068f82610657565b915081905092915050565b5f82825260208201905092915050565b5f6106b4826105d3565b6106be818561069a565b93506106ce8185602086016105e7565b6106d7816102dd565b840191505092915050565b6106eb81610411565b82525050565b5f6060820190508181035f83015261070981866106aa565b9050818103602083015261071d81856106aa565b905061072c60408301846106e2565b949350505050565b5f819050919050565b61074e61074982610580565b610734565b82525050565b5f61075f828561073d565b60048201915061076f82846105f5565b91508190509392505050565b5f61078682846105f5565b915081905092915050565b5f82825260208201905092915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f6107d5600983610791565b91506107e0826107a1565b602082019050919050565b5f6020820190508181035f830152610802816107c9565b905091905056fea2646970667358221220dca3ff3c83effbd594959254f4d8a0d8a75bb6a1230a60cbd9e88f167f6442bc64736f6c63430008220033","sourceMap":"69:814:122:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c806320a826ba1461005957806341973cd914610089578063799320bb146100a5578063d6276ab5146100c3578063efa7897b146100e1575b5f5ffd5b610073600480360381019061006e919061044e565b6100ff565b6040516100809190610520565b60405180910390f35b6100a3600480360381019061009e9190610539565b6101db565b005b6100ad610265565b6040516100ba9190610520565b60405180910390f35b6100cb610276565b6040516100d891906105ba565b60405180910390f35b6100e961029d565b6040516100f691906105ba565b60405180910390f35b5f3073ffffffffffffffffffffffffffffffffffffffff16856040516020016101289190610679565b60405160208183030381529060405280519060200120858585604051602001610153939291906106f1565b604051602081830303815290604052604051602001610173929190610754565b60405160208183030381529060405260405161018f919061077b565b5f604051808303815f865af19150503d805f81146101c8576040519150601f19603f3d011682016040523d82523d5f602084013e6101cd565b606091505b505080915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610240906107eb565b60405180910390fd5b60015f5f6101000a81548160ff02191690831515021790555050565b5f5f9054906101000a900460ff1681565b5f7f41973cd95e41447fbb4f155da56b91d5b31daf7e54600218eb7b6c8384048c4c905090565b5f7f41973cd9ca2c3f7fa28309a71815e084e9827b0551227e684c70c7d6c9e5e031905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610323826102dd565b810181811067ffffffffffffffff82111715610342576103416102ed565b5b80604052505050565b5f6103546102c4565b9050610360828261031a565b919050565b5f67ffffffffffffffff82111561037f5761037e6102ed565b5b610388826102dd565b9050602081019050919050565b828183375f83830152505050565b5f6103b56103b084610365565b61034b565b9050828152602081018484840111156103d1576103d06102d9565b5b6103dc848285610395565b509392505050565b5f82601f8301126103f8576103f76102d5565b5b81356104088482602086016103a3565b91505092915050565b5f67ffffffffffffffff82169050919050565b61042d81610411565b8114610437575f5ffd5b50565b5f8135905061044881610424565b92915050565b5f5f5f5f60808587031215610466576104656102cd565b5b5f85013567ffffffffffffffff811115610483576104826102d1565b5b61048f878288016103e4565b945050602085013567ffffffffffffffff8111156104b0576104af6102d1565b5b6104bc878288016103e4565b935050604085013567ffffffffffffffff8111156104dd576104dc6102d1565b5b6104e9878288016103e4565b92505060606104fa8782880161043a565b91505092959194509250565b5f8115159050919050565b61051a81610506565b82525050565b5f6020820190506105335f830184610511565b92915050565b5f6020828403121561054e5761054d6102cd565b5b5f82013567ffffffffffffffff81111561056b5761056a6102d1565b5b610577848285016103e4565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6105b481610580565b82525050565b5f6020820190506105cd5f8301846105ab565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6105ff826105d3565b61060981856105dd565b93506106198185602086016105e7565b80840191505092915050565b5f81905092915050565b7f2862797465732c62797465732c75696e743634290000000000000000000000005f82015250565b5f610663601483610625565b915061066e8261062f565b601482019050919050565b5f61068482846105f5565b915061068f82610657565b915081905092915050565b5f82825260208201905092915050565b5f6106b4826105d3565b6106be818561069a565b93506106ce8185602086016105e7565b6106d7816102dd565b840191505092915050565b6106eb81610411565b82525050565b5f6060820190508181035f83015261070981866106aa565b9050818103602083015261071d81856106aa565b905061072c60408301846106e2565b949350505050565b5f819050919050565b61074e61074982610580565b610734565b82525050565b5f61075f828561073d565b60048201915061076f82846105f5565b91508190509392505050565b5f61078682846105f5565b915081905092915050565b5f82825260208201905092915050565b7f4e6f74204f776e657200000000000000000000000000000000000000000000005f82015250565b5f6107d5600983610791565b91506107e0826107a1565b602082019050919050565b5f6020820190508181035f830152610802816107c9565b905091905056fea2646970667358221220dca3ff3c83effbd594959254f4d8a0d8a75bb6a1230a60cbd9e88f167f6442bc64736f6c63430008220033","sourceMap":"69:814:122:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;303:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;145:152;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;98:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;753:128;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;616:131;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;303:307;425:12;470:4;462:18;;532:7;515:49;;;;;;;;:::i;:::-;;;;;;;;;;;;;505:60;;;;;;579:6;587:7;596:4;568:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;481:121;;;;;;;;;:::i;:::-;;;;;;;;;;;;;462:141;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:155;;;;;303:307;;;;;;:::o;145:152::-;248:4;226:27;;:10;:27;;;218:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;286:4;277:6;;:13;;;;;;;;;;;;;;;;;;145:152;:::o;98:18::-;;;;;;;;;;;;;:::o;753:128::-;798:6;829:44;815:59;;753:128;:::o;616:131::-;663:6;694:45;680:60;;616:131;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:307::-;1357:4;1447:18;1439:6;1436:30;1433:56;;;1469:18;;:::i;:::-;1433:56;1507:29;1529:6;1507:29;:::i;:::-;1499:37;;1591:4;1585;1581:15;1573:23;;1296:307;;;:::o;1609:148::-;1707:6;1702:3;1697;1684:30;1748:1;1739:6;1734:3;1730:16;1723:27;1609:148;;;:::o;1763:423::-;1840:5;1865:65;1881:48;1922:6;1881:48;:::i;:::-;1865:65;:::i;:::-;1856:74;;1953:6;1946:5;1939:21;1991:4;1984:5;1980:16;2029:3;2020:6;2015:3;2011:16;2008:25;2005:112;;;2036:79;;:::i;:::-;2005:112;2126:54;2173:6;2168:3;2163;2126:54;:::i;:::-;1846:340;1763:423;;;;;:::o;2205:338::-;2260:5;2309:3;2302:4;2294:6;2290:17;2286:27;2276:122;;2317:79;;:::i;:::-;2276:122;2434:6;2421:20;2459:78;2533:3;2525:6;2518:4;2510:6;2506:17;2459:78;:::i;:::-;2450:87;;2266:277;2205:338;;;;:::o;2549:101::-;2585:7;2625:18;2618:5;2614:30;2603:41;;2549:101;;;:::o;2656:120::-;2728:23;2745:5;2728:23;:::i;:::-;2721:5;2718:34;2708:62;;2766:1;2763;2756:12;2708:62;2656:120;:::o;2782:137::-;2827:5;2865:6;2852:20;2843:29;;2881:32;2907:5;2881:32;:::i;:::-;2782:137;;;;:::o;2925:1297::-;3037:6;3045;3053;3061;3110:3;3098:9;3089:7;3085:23;3081:33;3078:120;;;3117:79;;:::i;:::-;3078:120;3265:1;3254:9;3250:17;3237:31;3295:18;3287:6;3284:30;3281:117;;;3317:79;;:::i;:::-;3281:117;3422:62;3476:7;3467:6;3456:9;3452:22;3422:62;:::i;:::-;3412:72;;3208:286;3561:2;3550:9;3546:18;3533:32;3592:18;3584:6;3581:30;3578:117;;;3614:79;;:::i;:::-;3578:117;3719:62;3773:7;3764:6;3753:9;3749:22;3719:62;:::i;:::-;3709:72;;3504:287;3858:2;3847:9;3843:18;3830:32;3889:18;3881:6;3878:30;3875:117;;;3911:79;;:::i;:::-;3875:117;4016:62;4070:7;4061:6;4050:9;4046:22;4016:62;:::i;:::-;4006:72;;3801:287;4127:2;4153:52;4197:7;4188:6;4177:9;4173:22;4153:52;:::i;:::-;4143:62;;4098:117;2925:1297;;;;;;;:::o;4228:90::-;4262:7;4305:5;4298:13;4291:21;4280:32;;4228:90;;;:::o;4324:109::-;4405:21;4420:5;4405:21;:::i;:::-;4400:3;4393:34;4324:109;;:::o;4439:210::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:65;4639:1;4628:9;4624:17;4615:6;4577:65;:::i;:::-;4439:210;;;;:::o;4655:507::-;4723:6;4772:2;4760:9;4751:7;4747:23;4743:32;4740:119;;;4778:79;;:::i;:::-;4740:119;4926:1;4915:9;4911:17;4898:31;4956:18;4948:6;4945:30;4942:117;;;4978:79;;:::i;:::-;4942:117;5083:62;5137:7;5128:6;5117:9;5113:22;5083:62;:::i;:::-;5073:72;;4869:286;4655:507;;;;:::o;5168:149::-;5204:7;5244:66;5237:5;5233:78;5222:89;;5168:149;;;:::o;5323:115::-;5408:23;5425:5;5408:23;:::i;:::-;5403:3;5396:36;5323:115;;:::o;5444:218::-;5535:4;5573:2;5562:9;5558:18;5550:26;;5586:69;5652:1;5641:9;5637:17;5628:6;5586:69;:::i;:::-;5444:218;;;;:::o;5668:98::-;5719:6;5753:5;5747:12;5737:22;;5668:98;;;:::o;5772:147::-;5873:11;5910:3;5895:18;;5772:147;;;;:::o;5925:139::-;6014:6;6009:3;6004;5998:23;6055:1;6046:6;6041:3;6037:16;6030:27;5925:139;;;:::o;6070:386::-;6174:3;6202:38;6234:5;6202:38;:::i;:::-;6256:88;6337:6;6332:3;6256:88;:::i;:::-;6249:95;;6353:65;6411:6;6406:3;6399:4;6392:5;6388:16;6353:65;:::i;:::-;6443:6;6438:3;6434:16;6427:23;;6178:278;6070:386;;;;:::o;6462:148::-;6564:11;6601:3;6586:18;;6462:148;;;;:::o;6616:170::-;6756:22;6752:1;6744:6;6740:14;6733:46;6616:170;:::o;6792:402::-;6952:3;6973:85;7055:2;7050:3;6973:85;:::i;:::-;6966:92;;7067:93;7156:3;7067:93;:::i;:::-;7185:2;7180:3;7176:12;7169:19;;6792:402;;;:::o;7200:537::-;7431:3;7453:93;7542:3;7533:6;7453:93;:::i;:::-;7446:100;;7563:148;7707:3;7563:148;:::i;:::-;7556:155;;7728:3;7721:10;;7200:537;;;;:::o;7743:168::-;7826:11;7860:6;7855:3;7848:19;7900:4;7895:3;7891:14;7876:29;;7743:168;;;;:::o;7917:373::-;8003:3;8031:38;8063:5;8031:38;:::i;:::-;8085:70;8148:6;8143:3;8085:70;:::i;:::-;8078:77;;8164:65;8222:6;8217:3;8210:4;8203:5;8199:16;8164:65;:::i;:::-;8254:29;8276:6;8254:29;:::i;:::-;8249:3;8245:39;8238:46;;8007:283;7917:373;;;;:::o;8296:115::-;8381:23;8398:5;8381:23;:::i;:::-;8376:3;8369:36;8296:115;;:::o;8417:612::-;8600:4;8638:2;8627:9;8623:18;8615:26;;8687:9;8681:4;8677:20;8673:1;8662:9;8658:17;8651:47;8715:76;8786:4;8777:6;8715:76;:::i;:::-;8707:84;;8838:9;8832:4;8828:20;8823:2;8812:9;8808:18;8801:48;8866:76;8937:4;8928:6;8866:76;:::i;:::-;8858:84;;8952:70;9018:2;9007:9;9003:18;8994:6;8952:70;:::i;:::-;8417:612;;;;;;:::o;9035:78::-;9073:7;9102:5;9091:16;;9035:78;;;:::o;9119:153::-;9222:43;9241:23;9258:5;9241:23;:::i;:::-;9222:43;:::i;:::-;9217:3;9210:56;9119:153;;:::o;9278:407::-;9434:3;9449:73;9518:3;9509:6;9449:73;:::i;:::-;9547:1;9542:3;9538:11;9531:18;;9566:93;9655:3;9646:6;9566:93;:::i;:::-;9559:100;;9676:3;9669:10;;9278:407;;;;;:::o;9691:271::-;9821:3;9843:93;9932:3;9923:6;9843:93;:::i;:::-;9836:100;;9953:3;9946:10;;9691:271;;;;:::o;9968:169::-;10052:11;10086:6;10081:3;10074:19;10126:4;10121:3;10117:14;10102:29;;9968:169;;;;:::o;10143:159::-;10283:11;10279:1;10271:6;10267:14;10260:35;10143:159;:::o;10308:365::-;10450:3;10471:66;10535:1;10530:3;10471:66;:::i;:::-;10464:73;;10546:93;10635:3;10546:93;:::i;:::-;10664:2;10659:3;10655:12;10648:19;;10308:365;;;:::o;10679:419::-;10845:4;10883:2;10872:9;10868:18;10860:26;;10932:9;10926:4;10922:20;10918:1;10907:9;10903:17;10896:47;10960:131;11086:4;10960:131;:::i;:::-;10952:139;;10679:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"executeCrossChainTx(bytes,bytes,bytes,uint64)":"20a826ba","hackSlector()":"d6276ab5","putCurEpochConPubKeyBytes(bytes)":"41973cd9","secretSlector()":"efa7897b","solved()":"799320bb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_method\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_bytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_bytes1\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_num\",\"type\":\"uint64\"}],\"name\":\"executeCrossChainTx\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hackSlector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_bytes\",\"type\":\"bytes\"}],\"name\":\"putCurEpochConPubKeyBytes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"secretSlector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"solved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S02_SelectorClash/SelectorClash.sol\":\"SelectorClash\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S02_SelectorClash/SelectorClash.sol\":{\"keccak256\":\"0x957240010dcf58515fea921a13837940c6daf7c0202e0ab6ecb57062b7c0bbd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f2fafdaed758e44be5efb10d1469c61c01438c186578337eb650007552c2440\",\"dweb:/ipfs/QmUZPtXiyR6MDY44Kn7frnRjR1AshG6yHYMAiKBVzN6cWL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_method","type":"bytes"},{"internalType":"bytes","name":"_bytes","type":"bytes"},{"internalType":"bytes","name":"_bytes1","type":"bytes"},{"internalType":"uint64","name":"_num","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"executeCrossChainTx","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"hackSlector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"bytes","name":"_bytes","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"putCurEpochConPubKeyBytes"},{"inputs":[],"stateMutability":"pure","type":"function","name":"secretSlector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"solved","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S02_SelectorClash/SelectorClash.sol":"SelectorClash"},"evmVersion":"prague","libraries":{}},"sources":{"src/S02_SelectorClash/SelectorClash.sol":{"keccak256":"0x957240010dcf58515fea921a13837940c6daf7c0202e0ab6ecb57062b7c0bbd6","urls":["bzz-raw://9f2fafdaed758e44be5efb10d1469c61c01438c186578337eb650007552c2440","dweb:/ipfs/QmUZPtXiyR6MDY44Kn7frnRjR1AshG6yHYMAiKBVzN6cWL"],"license":"MIT"}},"version":1},"id":122} \ No newline at end of file diff --git a/out/SendETH.sol/ReceiveETH.json b/out/SendETH.sol/ReceiveETH.json index f4622474..489d82b4 100644 --- a/out/SendETH.sol/ReceiveETH.json +++ b/out/SendETH.sol/ReceiveETH.json @@ -1 +1 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101118061001c5f395ff3fe608060405260043610601e575f3560e01c806312065fe014605f57605b565b36605b577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a604051605192919060a1565b60405180910390a1005b5f5ffd5b3480156069575f5ffd5b5060706084565b604051607b919060c4565b60405180910390f35b5f47905090565b5f819050919050565b609b81608b565b82525050565b5f60408201905060b25f8301856094565b60bd60208301846094565b9392505050565b5f60208201905060d55f8301846094565b9291505056fea26469706673582212204c0ae40c679c81e614ff377a940bd177e556fa3cf106576143740169653bb42c64736f6c63430008220033","sourceMap":"1228:361:66:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601e575f3560e01c806312065fe014605f57605b565b36605b577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a604051605192919060a1565b60405180910390a1005b5f5ffd5b3480156069575f5ffd5b5060706084565b604051607b919060c4565b60405180910390f35b5f47905090565b5f819050919050565b609b81608b565b82525050565b5f60408201905060b25f8301856094565b60bd60208301846094565b9392505050565b5f60208201905060d55f8301846094565b9291505056fea26469706673582212204c0ae40c679c81e614ff377a940bd177e556fa3cf106576143740169653bb42c64736f6c63430008220033","sourceMap":"1228:361:66:-:0;;;;;;;;;;;;;;;;;;;;;;;1423:25;1427:9;1438;1423:25;;;;;;;:::i;:::-;;;;;;;;1228:361;;;;;1494:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1536:4;1559:21;1552:28;;1494:93;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:332::-;335:4;373:2;362:9;358:18;350:26;;386:71;454:1;443:9;439:17;430:6;386:71;:::i;:::-;467:72;535:2;524:9;520:18;511:6;467:72;:::i;:::-;214:332;;;;;:::o;552:222::-;645:4;683:2;672:9;668:18;660:26;;696:71;764:1;753:9;749:17;740:6;696:71;:::i;:::-;552:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/20_SendETH/SendETH.sol\":\"ReceiveETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/20_SendETH/SendETH.sol\":{\"keccak256\":\"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21\",\"dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/20_SendETH/SendETH.sol":"ReceiveETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/20_SendETH/SendETH.sol":{"keccak256":"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22","urls":["bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21","dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Log","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gas","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506101118061001c5f395ff3fe608060405260043610601e575f3560e01c806312065fe014605f57605b565b36605b577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a604051605192919060a1565b60405180910390a1005b5f5ffd5b3480156069575f5ffd5b5060706084565b604051607b919060c4565b60405180910390f35b5f47905090565b5f819050919050565b609b81608b565b82525050565b5f60408201905060b25f8301856094565b60bd60208301846094565b9392505050565b5f60208201905060d55f8301846094565b9291505056fea26469706673582212204c0ae40c679c81e614ff377a940bd177e556fa3cf106576143740169653bb42c64736f6c63430008220033","sourceMap":"1228:361:62:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601e575f3560e01c806312065fe014605f57605b565b36605b577fbd0faddf87043dd749c1b9d4dca8a12589b8cb5e2106832111ce23f219b14367345a604051605192919060a1565b60405180910390a1005b5f5ffd5b3480156069575f5ffd5b5060706084565b604051607b919060c4565b60405180910390f35b5f47905090565b5f819050919050565b609b81608b565b82525050565b5f60408201905060b25f8301856094565b60bd60208301846094565b9392505050565b5f60208201905060d55f8301846094565b9291505056fea26469706673582212204c0ae40c679c81e614ff377a940bd177e556fa3cf106576143740169653bb42c64736f6c63430008220033","sourceMap":"1228:361:62:-:0;;;;;;;;;;;;;;;;;;;;;;;1423:25;1427:9;1438;1423:25;;;;;;;:::i;:::-;;;;;;;;1228:361;;;;;1494:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1536:4;1559:21;1552:28;;1494:93;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:332::-;335:4;373:2;362:9;358:18;350:26;;386:71;454:1;443:9;439:17;430:6;386:71;:::i;:::-;467:72;535:2;524:9;520:18;511:6;467:72;:::i;:::-;214:332;;;;;:::o;552:222::-;645:4;683:2;672:9;668:18;660:26;;696:71;764:1;753:9;749:17;740:6;696:71;:::i;:::-;552:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getBalance()":"12065fe0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/20_SendETH/SendETH.sol\":\"ReceiveETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/20_SendETH/SendETH.sol\":{\"keccak256\":\"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21\",\"dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"gas","type":"uint256","indexed":false}],"type":"event","name":"Log","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/20_SendETH/SendETH.sol":"ReceiveETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/20_SendETH/SendETH.sol":{"keccak256":"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22","urls":["bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21","dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj"],"license":"MIT"}},"version":1},"id":62} \ No newline at end of file diff --git a/out/SendETH.sol/SendETH.json b/out/SendETH.sol/SendETH.json index 2bafc473..81ad6f52 100644 --- a/out/SendETH.sol/SendETH.json +++ b/out/SendETH.sol/SendETH.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"callETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"transferETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"SendFailed","inputs":[]}],"bytecode":{"object":"0x608060405261033b806100115f395ff3fe608060405260043610610037575f3560e01c806364a197f3146100425780637b1a49091461005e5780638419cf501461007a5761003e565b3661003e57005b5f5ffd5b61005c60048036038101906100579190610286565b610096565b005b61007860048036038101906100739190610286565b610109565b005b610094600480360381019061008f9190610286565b610151565b005b5f8273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050905080610104576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561014c573d5f5f3e3d5ffd5b505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610176906102f1565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f0576040517f3204506f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610222826101f9565b9050919050565b61023281610218565b811461023c575f5ffd5b50565b5f8135905061024d81610229565b92915050565b5f819050919050565b61026581610253565b811461026f575f5ffd5b50565b5f813590506102808161025c565b92915050565b5f5f6040838503121561029c5761029b6101f5565b5b5f6102a98582860161023f565b92505060206102ba85828601610272565b9150509250929050565b5f81905092915050565b50565b5f6102dc5f836102c4565b91506102e7826102ce565b5f82019050919050565b5f6102fb826102d1565b915081905091905056fea2646970667358221220c43417e346b6809e690c2fa76b6e00873fd26b570ab73eae7132b56c152f48cb64736f6c63430008220033","sourceMap":"284:942:66:-:0;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806364a197f3146100425780637b1a49091461005e5780638419cf501461007a5761003e565b3661003e57005b5f5ffd5b61005c60048036038101906100579190610286565b610096565b005b61007860048036038101906100739190610286565b610109565b005b610094600480360381019061008f9190610286565b610151565b005b5f8273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050905080610104576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561014c573d5f5f3e3d5ffd5b505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610176906102f1565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f0576040517f3204506f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610222826101f9565b9050919050565b61023281610218565b811461023c575f5ffd5b50565b5f8135905061024d81610229565b92915050565b5f819050919050565b61026581610253565b811461026f575f5ffd5b50565b5f813590506102808161025c565b92915050565b5f5f6040838503121561029c5761029b6101f5565b5b5f6102a98582860161023f565b92505060206102ba85828601610272565b9150509250929050565b5f81905092915050565b50565b5f6102dc5f836102c4565b91506102e7826102ce565b5f82019050919050565b5f6102fb826102d1565b915081905091905056fea2646970667358221220c43417e346b6809e690c2fa76b6e00873fd26b570ab73eae7132b56c152f48cb64736f6c63430008220033","sourceMap":"284:942:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:264;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;513:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;946:278;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;653:264;814:12;829:3;:8;;:16;838:6;829:16;;;;;;;;;;;;;;;;;;;;;;;814:31;;859:7;855:56;;888:12;;;;;;;;;;;;;;855:56;723:194;653:264;;:::o;513:111::-;597:3;:12;;:20;610:6;597:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;513:111;;:::o;946:278::-;1108:12;1125:3;:8;;1141:6;1125:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1107:45;;;1166:7;1162:56;;1195:12;;;;;;;;;;;;;;1162:56;1016:208;946:278;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:104::-;511:7;540:24;558:5;540:24;:::i;:::-;529:35;;466:104;;;:::o;576:138::-;657:32;683:5;657:32;:::i;:::-;650:5;647:43;637:71;;704:1;701;694:12;637:71;576:138;:::o;720:155::-;774:5;812:6;799:20;790:29;;828:41;863:5;828:41;:::i;:::-;720:155;;;;:::o;881:77::-;918:7;947:5;936:16;;881:77;;;:::o;964:122::-;1037:24;1055:5;1037:24;:::i;:::-;1030:5;1027:35;1017:63;;1076:1;1073;1066:12;1017:63;964:122;:::o;1092:139::-;1138:5;1176:6;1163:20;1154:29;;1192:33;1219:5;1192:33;:::i;:::-;1092:139;;;;:::o;1237:490::-;1313:6;1321;1370:2;1358:9;1349:7;1345:23;1341:32;1338:119;;;1376:79;;:::i;:::-;1338:119;1496:1;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1467:125;1631:2;1657:53;1702:7;1693:6;1682:9;1678:22;1657:53;:::i;:::-;1647:63;;1602:118;1237:490;;;;;:::o;1733:147::-;1834:11;1871:3;1856:18;;1733:147;;;;:::o;1886:114::-;;:::o;2006:398::-;2165:3;2186:83;2267:1;2262:3;2186:83;:::i;:::-;2179:90;;2278:93;2367:3;2278:93;:::i;:::-;2396:1;2391:3;2387:11;2380:18;;2006:398;;;:::o;2410:379::-;2594:3;2616:147;2759:3;2616:147;:::i;:::-;2609:154;;2780:3;2773:10;;2410:379;;;:::o","linkReferences":{}},"methodIdentifiers":{"callETH(address,uint256)":"8419cf50","sendETH(address,uint256)":"64a197f3","transferETH(address,uint256)":"7b1a4909"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SendFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"callETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/20_SendETH/SendETH.sol\":\"SendETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/20_SendETH/SendETH.sol\":{\"keccak256\":\"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21\",\"dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"SendFailed"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callETH"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"sendETH"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferETH"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/20_SendETH/SendETH.sol":"SendETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/20_SendETH/SendETH.sol":{"keccak256":"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22","urls":["bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21","dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"callETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"transferETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"SendFailed","inputs":[]}],"bytecode":{"object":"0x608060405261033b806100115f395ff3fe608060405260043610610037575f3560e01c806364a197f3146100425780637b1a49091461005e5780638419cf501461007a5761003e565b3661003e57005b5f5ffd5b61005c60048036038101906100579190610286565b610096565b005b61007860048036038101906100739190610286565b610109565b005b610094600480360381019061008f9190610286565b610151565b005b5f8273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050905080610104576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561014c573d5f5f3e3d5ffd5b505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610176906102f1565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f0576040517f3204506f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610222826101f9565b9050919050565b61023281610218565b811461023c575f5ffd5b50565b5f8135905061024d81610229565b92915050565b5f819050919050565b61026581610253565b811461026f575f5ffd5b50565b5f813590506102808161025c565b92915050565b5f5f6040838503121561029c5761029b6101f5565b5b5f6102a98582860161023f565b92505060206102ba85828601610272565b9150509250929050565b5f81905092915050565b50565b5f6102dc5f836102c4565b91506102e7826102ce565b5f82019050919050565b5f6102fb826102d1565b915081905091905056fea2646970667358221220c43417e346b6809e690c2fa76b6e00873fd26b570ab73eae7132b56c152f48cb64736f6c63430008220033","sourceMap":"284:942:62:-:0;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c806364a197f3146100425780637b1a49091461005e5780638419cf501461007a5761003e565b3661003e57005b5f5ffd5b61005c60048036038101906100579190610286565b610096565b005b61007860048036038101906100739190610286565b610109565b005b610094600480360381019061008f9190610286565b610151565b005b5f8273ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050905080610104576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561014c573d5f5f3e3d5ffd5b505050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610176906102f1565b5f6040518083038185875af1925050503d805f81146101b0576040519150601f19603f3d011682016040523d82523d5f602084013e6101b5565b606091505b50509050806101f0576040517f3204506f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610222826101f9565b9050919050565b61023281610218565b811461023c575f5ffd5b50565b5f8135905061024d81610229565b92915050565b5f819050919050565b61026581610253565b811461026f575f5ffd5b50565b5f813590506102808161025c565b92915050565b5f5f6040838503121561029c5761029b6101f5565b5b5f6102a98582860161023f565b92505060206102ba85828601610272565b9150509250929050565b5f81905092915050565b50565b5f6102dc5f836102c4565b91506102e7826102ce565b5f82019050919050565b5f6102fb826102d1565b915081905091905056fea2646970667358221220c43417e346b6809e690c2fa76b6e00873fd26b570ab73eae7132b56c152f48cb64736f6c63430008220033","sourceMap":"284:942:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:264;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;513:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;946:278;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;653:264;814:12;829:3;:8;;:16;838:6;829:16;;;;;;;;;;;;;;;;;;;;;;;814:31;;859:7;855:56;;888:12;;;;;;;;;;;;;;855:56;723:194;653:264;;:::o;513:111::-;597:3;:12;;:20;610:6;597:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;513:111;;:::o;946:278::-;1108:12;1125:3;:8;;1141:6;1125:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1107:45;;;1166:7;1162:56;;1195:12;;;;;;;;;;;;;;1162:56;1016:208;946:278;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:104::-;511:7;540:24;558:5;540:24;:::i;:::-;529:35;;466:104;;;:::o;576:138::-;657:32;683:5;657:32;:::i;:::-;650:5;647:43;637:71;;704:1;701;694:12;637:71;576:138;:::o;720:155::-;774:5;812:6;799:20;790:29;;828:41;863:5;828:41;:::i;:::-;720:155;;;;:::o;881:77::-;918:7;947:5;936:16;;881:77;;;:::o;964:122::-;1037:24;1055:5;1037:24;:::i;:::-;1030:5;1027:35;1017:63;;1076:1;1073;1066:12;1017:63;964:122;:::o;1092:139::-;1138:5;1176:6;1163:20;1154:29;;1192:33;1219:5;1192:33;:::i;:::-;1092:139;;;;:::o;1237:490::-;1313:6;1321;1370:2;1358:9;1349:7;1345:23;1341:32;1338:119;;;1376:79;;:::i;:::-;1338:119;1496:1;1521:61;1574:7;1565:6;1554:9;1550:22;1521:61;:::i;:::-;1511:71;;1467:125;1631:2;1657:53;1702:7;1693:6;1682:9;1678:22;1657:53;:::i;:::-;1647:63;;1602:118;1237:490;;;;;:::o;1733:147::-;1834:11;1871:3;1856:18;;1733:147;;;;:::o;1886:114::-;;:::o;2006:398::-;2165:3;2186:83;2267:1;2262:3;2186:83;:::i;:::-;2179:90;;2278:93;2367:3;2278:93;:::i;:::-;2396:1;2391:3;2387:11;2380:18;;2006:398;;;:::o;2410:379::-;2594:3;2616:147;2759:3;2616:147;:::i;:::-;2609:154;;2780:3;2773:10;;2410:379;;;:::o","linkReferences":{}},"methodIdentifiers":{"callETH(address,uint256)":"8419cf50","sendETH(address,uint256)":"64a197f3","transferETH(address,uint256)":"7b1a4909"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SendFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"callETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/20_SendETH/SendETH.sol\":\"SendETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/20_SendETH/SendETH.sol\":{\"keccak256\":\"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21\",\"dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"SendFailed"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"callETH"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"sendETH"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferETH"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/20_SendETH/SendETH.sol":"SendETH"},"evmVersion":"prague","libraries":{}},"sources":{"src/20_SendETH/SendETH.sol":{"keccak256":"0x0333ecd4a97b71e2d9b1b65c3e3f6ae9d0a9b4f81ad6cea0a4fa520694d1ca22","urls":["bzz-raw://a77506530562ab78fb509d31eebe1752f175b11b71eed1ed9e952418f32c8b21","dweb:/ipfs/QmTrbjyXwA88L2NKyxHwkQyCzc2q5sqh3dnxGTCW4DctJj"],"license":"MIT"}},"version":1},"id":62} \ No newline at end of file diff --git a/out/Signature.sol/ECDSA.json b/out/Signature.sol/ECDSA.json index 33ca376b..47fcd980 100644 --- a/out/Signature.sol/ECDSA.json +++ b/out/Signature.sol/ECDSA.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"toEthSignedMessageHash","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6101f061004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063918a15cf14610038575b5f5ffd5b610052600480360381019061004d91906100ce565b610068565b60405161005f9190610108565b60405180910390f35b5f8160405160200161007a9190610195565b604051602081830303815290604052805190602001209050919050565b5f5ffd5b5f819050919050565b6100ad8161009b565b81146100b7575f5ffd5b50565b5f813590506100c8816100a4565b92915050565b5f602082840312156100e3576100e2610097565b5b5f6100f0848285016100ba565b91505092915050565b6101028161009b565b82525050565b5f60208201905061011b5f8301846100f9565b92915050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f61015f601c83610121565b915061016a8261012b565b601c82019050919050565b5f819050919050565b61018f61018a8261009b565b610175565b82525050565b5f61019f82610153565b91506101ab828461017e565b6020820191508190509291505056fea2646970667358221220cee33e9fdf492a06d84673b329df2ff2123fee66d16b9e409dced7372a5b464564736f6c63430008220033","sourceMap":"105:2143:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063918a15cf14610038575b5f5ffd5b610052600480360381019061004d91906100ce565b610068565b60405161005f9190610108565b60405180910390f35b5f8160405160200161007a9190610195565b604051602081830303815290604052805190602001209050919050565b5f5ffd5b5f819050919050565b6100ad8161009b565b81146100b7575f5ffd5b50565b5f813590506100c8816100a4565b92915050565b5f602082840312156100e3576100e2610097565b5b5f6100f0848285016100ba565b91505092915050565b6101028161009b565b82525050565b5f60208201905061011b5f8301846100f9565b92915050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f61015f601c83610121565b915061016a8261012b565b601c82019050919050565b5f819050919050565b61018f61018a8261009b565b610175565b82525050565b5f61019f82610153565b91506101ab828461017e565b6020820191508190509291505056fea2646970667358221220cee33e9fdf492a06d84673b329df2ff2123fee66d16b9e409dced7372a5b464564736f6c63430008220033","sourceMap":"105:2143:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;1983:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2050:7;2233:4;2180:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;2170:69;;;;;;2163:76;;1983:263;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1120:24;1138:5;1120:24;:::i;:::-;1115:3;1108:37;1025:126;;:::o;1157:238::-;1258:4;1296:2;1285:9;1281:18;1273:26;;1309:79;1385:1;1374:9;1370:17;1361:6;1309:79;:::i;:::-;1157:238;;;;:::o;1401:148::-;1503:11;1540:3;1525:18;;1401:148;;;;:::o;1555:214::-;1695:66;1691:1;1683:6;1679:14;1672:90;1555:214;:::o;1775:402::-;1935:3;1956:85;2038:2;2033:3;1956:85;:::i;:::-;1949:92;;2050:93;2139:3;2050:93;:::i;:::-;2168:2;2163:3;2159:12;2152:19;;1775:402;;;:::o;2183:79::-;2222:7;2251:5;2240:16;;2183:79;;;:::o;2268:157::-;2373:45;2393:24;2411:5;2393:24;:::i;:::-;2373:45;:::i;:::-;2368:3;2361:58;2268:157;;:::o;2431:522::-;2644:3;2666:148;2810:3;2666:148;:::i;:::-;2659:155;;2824:75;2895:3;2886:6;2824:75;:::i;:::-;2924:2;2919:3;2915:12;2908:19;;2944:3;2937:10;;2431:522;;;;:::o","linkReferences":{}},"methodIdentifiers":{"toEthSignedMessageHash(bytes32)":"918a15cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"toEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"toEthSignedMessageHash(bytes32)\":{\"details\":\"\\u8fd4\\u56de \\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6d88\\u606f `hash`\\uff1a\\u6d88\\u606f\\u54c8\\u5e0c \\u9075\\u4ece\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6807\\u51c6\\uff1ahttps://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] \\u4ee5\\u53ca`EIP191`:https://eips.ethereum.org/EIPS/eip-191` \\u6dfb\\u52a0\\\"\\\\x19Ethereum Signed Message:\\\\n32\\\"\\u5b57\\u6bb5\\uff0c\\u9632\\u6b62\\u7b7e\\u540d\\u7684\\u662f\\u53ef\\u6267\\u884c\\u4ea4\\u6613\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"ECDSA\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"toEthSignedMessageHash(bytes32)":{"details":"返回 以太坊签名消息 `hash`:消息哈希 遵从以太坊签名标准:https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] 以及`EIP191`:https://eips.ethereum.org/EIPS/eip-191` 添加\"\\x19Ethereum Signed Message:\\n32\"字段,防止签名的是可执行交易。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"ECDSA"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file +{"abi":[{"type":"function","name":"toEthSignedMessageHash","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6101f061004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063918a15cf14610038575b5f5ffd5b610052600480360381019061004d91906100ce565b610068565b60405161005f9190610108565b60405180910390f35b5f8160405160200161007a9190610195565b604051602081830303815290604052805190602001209050919050565b5f5ffd5b5f819050919050565b6100ad8161009b565b81146100b7575f5ffd5b50565b5f813590506100c8816100a4565b92915050565b5f602082840312156100e3576100e2610097565b5b5f6100f0848285016100ba565b91505092915050565b6101028161009b565b82525050565b5f60208201905061011b5f8301846100f9565b92915050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f61015f601c83610121565b915061016a8261012b565b601c82019050919050565b5f819050919050565b61018f61018a8261009b565b610175565b82525050565b5f61019f82610153565b91506101ab828461017e565b6020820191508190509291505056fea2646970667358221220cee33e9fdf492a06d84673b329df2ff2123fee66d16b9e409dced7372a5b464564736f6c63430008220033","sourceMap":"105:2143:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063918a15cf14610038575b5f5ffd5b610052600480360381019061004d91906100ce565b610068565b60405161005f9190610108565b60405180910390f35b5f8160405160200161007a9190610195565b604051602081830303815290604052805190602001209050919050565b5f5ffd5b5f819050919050565b6100ad8161009b565b81146100b7575f5ffd5b50565b5f813590506100c8816100a4565b92915050565b5f602082840312156100e3576100e2610097565b5b5f6100f0848285016100ba565b91505092915050565b6101028161009b565b82525050565b5f60208201905061011b5f8301846100f9565b92915050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f61015f601c83610121565b915061016a8261012b565b601c82019050919050565b5f819050919050565b61018f61018a8261009b565b610175565b82525050565b5f61019f82610153565b91506101ab828461017e565b6020820191508190509291505056fea2646970667358221220cee33e9fdf492a06d84673b329df2ff2123fee66d16b9e409dced7372a5b464564736f6c63430008220033","sourceMap":"105:2143:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;1983:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2050:7;2233:4;2180:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;2170:69;;;;;;2163:76;;1983:263;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1120:24;1138:5;1120:24;:::i;:::-;1115:3;1108:37;1025:126;;:::o;1157:238::-;1258:4;1296:2;1285:9;1281:18;1273:26;;1309:79;1385:1;1374:9;1370:17;1361:6;1309:79;:::i;:::-;1157:238;;;;:::o;1401:148::-;1503:11;1540:3;1525:18;;1401:148;;;;:::o;1555:214::-;1695:66;1691:1;1683:6;1679:14;1672:90;1555:214;:::o;1775:402::-;1935:3;1956:85;2038:2;2033:3;1956:85;:::i;:::-;1949:92;;2050:93;2139:3;2050:93;:::i;:::-;2168:2;2163:3;2159:12;2152:19;;1775:402;;;:::o;2183:79::-;2222:7;2251:5;2240:16;;2183:79;;;:::o;2268:157::-;2373:45;2393:24;2411:5;2393:24;:::i;:::-;2373:45;:::i;:::-;2368:3;2361:58;2268:157;;:::o;2431:522::-;2644:3;2666:148;2810:3;2666:148;:::i;:::-;2659:155;;2824:75;2895:3;2886:6;2824:75;:::i;:::-;2924:2;2919:3;2915:12;2908:19;;2944:3;2937:10;;2431:522;;;;:::o","linkReferences":{}},"methodIdentifiers":{"toEthSignedMessageHash(bytes32)":"918a15cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"toEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"toEthSignedMessageHash(bytes32)\":{\"details\":\"\\u8fd4\\u56de \\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6d88\\u606f `hash`\\uff1a\\u6d88\\u606f\\u54c8\\u5e0c \\u9075\\u4ece\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6807\\u51c6\\uff1ahttps://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] \\u4ee5\\u53ca`EIP191`:https://eips.ethereum.org/EIPS/eip-191` \\u6dfb\\u52a0\\\"\\\\x19Ethereum Signed Message:\\\\n32\\\"\\u5b57\\u6bb5\\uff0c\\u9632\\u6b62\\u7b7e\\u540d\\u7684\\u662f\\u53ef\\u6267\\u884c\\u4ea4\\u6613\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"ECDSA\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"toEthSignedMessageHash(bytes32)":{"details":"返回 以太坊签名消息 `hash`:消息哈希 遵从以太坊签名标准:https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] 以及`EIP191`:https://eips.ethereum.org/EIPS/eip-191` 添加\"\\x19Ethereum Signed Message:\\n32\"字段,防止签名的是可执行交易。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"ECDSA"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/out/Signature.sol/SignatureNFT.json b/out/Signature.sol/SignatureNFT.json index f22057d7..7f2dba4c 100644 --- a/out/Signature.sol/SignatureNFT.json +++ b/out/Signature.sol/SignatureNFT.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_signer","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMessageHash","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"_msgHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50604051612fa3380380612fa383398181016040528101906100319190610237565b8282815f908161004191906104e0565b50806001908161005191906104e0565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050506105af565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100ef826100a9565b810181811067ffffffffffffffff8211171561010e5761010d6100b9565b5b80604052505050565b5f610120610090565b905061012c82826100e6565b919050565b5f67ffffffffffffffff82111561014b5761014a6100b9565b5b610154826100a9565b9050602081019050919050565b8281835e5f83830152505050565b5f61018161017c84610131565b610117565b90508281526020810184848401111561019d5761019c6100a5565b5b6101a8848285610161565b509392505050565b5f82601f8301126101c4576101c36100a1565b5b81516101d484826020860161016f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610206826101dd565b9050919050565b610216816101fc565b8114610220575f5ffd5b50565b5f815190506102318161020d565b92915050565b5f5f5f6060848603121561024e5761024d610099565b5b5f84015167ffffffffffffffff81111561026b5761026a61009d565b5b610277868287016101b0565b935050602084015167ffffffffffffffff8111156102985761029761009d565b5b6102a4868287016101b0565b92505060406102b586828701610223565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061030d57607f821691505b6020821081036103205761031f6102c9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610347565b61038c8683610347565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103d06103cb6103c6846103a4565b6103ad565b6103a4565b9050919050565b5f819050919050565b6103e9836103b6565b6103fd6103f5826103d7565b848454610353565b825550505050565b5f5f905090565b610414610405565b61041f8184846103e0565b505050565b5f5b828110156104455761043a5f82840161040c565b600181019050610426565b505050565b601f82111561049857828211156104975761046481610326565b61046d83610338565b61047685610338565b6020861015610483575f90505b80830161049282840382610424565b505050505b5b505050565b5f82821c905092915050565b5f6104b85f198460080261049d565b1980831691505092915050565b5f6104d083836104a9565b9150826002028217905092915050565b6104e9826102bf565b67ffffffffffffffff811115610502576105016100b9565b5b61050c82546102f6565b61051782828561044a565b5f60209050601f831160018114610548575f8415610536578287015190505b61054085826104c5565b8655506105a7565b601f19841661055686610326565b5f5b8281101561057d57848901518255600182019150602085019450602081019050610558565b8683101561059a5784890151610596601f8916826104a9565b8355505b6001600288020188555050505b505050505050565b6080516129d56105ce5f395f81816107a5015261083701526129d55ff3fe608060405234801561000f575f5ffd5b5060043610610114575f3560e01c8063630303c6116100a057806395d89b411161006f57806395d89b4114610314578063a22cb46514610332578063b88d4fde1461034e578063c87b56dd1461036a578063e985e9c51461039a57610114565b8063630303c6146102685780636352211e1461029857806370a08231146102c857806394d008ef146102f857610114565b8063238ac933116100e7578063238ac933146101b257806323b872dd146101d0578063258ae582146101ec57806342842e0e1461021c578063512c91df1461023857610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc14610166578063095ea7b314610196575b5f5ffd5b610132600480360381019061012d9190611a1f565b6103ca565b60405161013f9190611a64565b60405180910390f35b610150610503565b60405161015d9190611aed565b60405180910390f35b610180600480360381019061017b9190611b40565b61058e565b60405161018d9190611baa565b60405180910390f35b6101b060048036038101906101ab9190611bed565b610665565b005b6101ba6107a3565b6040516101c79190611baa565b60405180910390f35b6101ea60048036038101906101e59190611c2b565b6107c7565b005b61020660048036038101906102019190611dda565b61082f565b6040516102139190611a64565b60405180910390f35b61023660048036038101906102319190611c2b565b610863565b005b610252600480360381019061024d9190611bed565b610882565b60405161025f9190611e43565b60405180910390f35b610282600480360381019061027d9190611e5c565b6108b4565b60405161028f9190611a64565b60405180910390f35b6102b260048036038101906102ad9190611b40565b6108d1565b6040516102bf9190611baa565b60405180910390f35b6102e260048036038101906102dd9190611e5c565b610978565b6040516102ef9190611e96565b60405180910390f35b610312600480360381019061030d9190611eaf565b610a2c565b005b61031c610beb565b6040516103299190611aed565b60405180910390f35b61034c60048036038101906103479190611f45565b610c77565b005b61036860048036038101906103639190611f83565b610d6f565b005b610384600480360381019061037f9190611b40565b610dd9565b6040516103919190611aed565b60405180910390f35b6103b460048036038101906103af9190612003565b610ed3565b6040516103c19190611a64565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104fc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461050f9061206e565b80601f016020809104026020016040519081016040528092919081815260200182805461053b9061206e565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906120e8565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610754575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612150565b60405180910390fd5b61079e818484610f61565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6107d1826108d1565b90506107de813384611010565b61081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906121b8565b60405180910390fd5b6108298185858561113b565b50505050565b5f61085b83837f000000000000000000000000000000000000000000000000000000000000000061137a565b905092915050565b61087d83838360405180602001604052805f815250610d6f565b505050565b5f828260405160200161089692919061223b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a906120e8565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906122b0565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a378484610882565b90505f73__$e3d8e53151ebe0b7203e2d17c613eec2e4$__63918a15cf836040518263ffffffff1660e01b8152600401610a7191906122dd565b602060405180830381865af4158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab0919061230a565b9050610abc818461082f565b610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061237f565b60405180910390fd5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906123e7565b60405180910390fd5b600160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610be485856113bc565b5050505050565b60018054610bf89061206e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c249061206e565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d639190611a64565b60405180910390a35050565b5f610d79836108d1565b9050610d86813385611010565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906121b8565b60405180910390fd5b610dd281868686866115ca565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061244f565b60405180910390fd5b5f610e826115e9565b90505f815111610ea05760405180602001604052805f815250610ecb565b80610eaa846115ff565b604051602001610ebb9291906124a7565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611132575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612514565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061257c565b60405180910390fd5b611222845f83610f61565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461126f91906125c7565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112c391906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1661139c8585611758565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612677565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906126df565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461151591906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6115d68585858561113b565b6115e28484848461180e565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611645576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611753565b5f8290505f5b5f821461167457808061165d906126fd565b915050600a8261166d9190612771565b915061164b565b5f8167ffffffffffffffff81111561168f5761168e611cb6565b5b6040519080825280601f01601f1916602001820160405280156116c15781602001600182028036833780820191505090505b5090505b5f851461174c576001826116d991906125c7565b9150600a856116e891906127a1565b60306116f491906125fa565b60f81b81838151811061170a576117096127d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856117459190612771565b94506116c5565b8093505050505b919050565b5f604182511461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612848565b60405180910390fd5b5f5f5f602085015192506040850151915060608501515f1a90506001868285856040515f81526020016040526040516117d99493929190612881565b6020604051602081039080840390855afa1580156117f9573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156119b3578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b815260040161186c9493929190612916565b6020604051808303815f875af19250505080156118a757506040513d601f19601f820116820180604052508101906118a49190612974565b60015b611928573d805f81146118d5576040519150601f19603f3d011682016040523d82523d5f602084013e6118da565b606091505b505f81510361192057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119179190611baa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119b157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119a89190611baa565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119fe816119ca565b8114611a08575f5ffd5b50565b5f81359050611a19816119f5565b92915050565b5f60208284031215611a3457611a336119c2565b5b5f611a4184828501611a0b565b91505092915050565b5f8115159050919050565b611a5e81611a4a565b82525050565b5f602082019050611a775f830184611a55565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611abf82611a7d565b611ac98185611a87565b9350611ad9818560208601611a97565b611ae281611aa5565b840191505092915050565b5f6020820190508181035f830152611b058184611ab5565b905092915050565b5f819050919050565b611b1f81611b0d565b8114611b29575f5ffd5b50565b5f81359050611b3a81611b16565b92915050565b5f60208284031215611b5557611b546119c2565b5b5f611b6284828501611b2c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9482611b6b565b9050919050565b611ba481611b8a565b82525050565b5f602082019050611bbd5f830184611b9b565b92915050565b611bcc81611b8a565b8114611bd6575f5ffd5b50565b5f81359050611be781611bc3565b92915050565b5f5f60408385031215611c0357611c026119c2565b5b5f611c1085828601611bd9565b9250506020611c2185828601611b2c565b9150509250929050565b5f5f5f60608486031215611c4257611c416119c2565b5b5f611c4f86828701611bd9565b9350506020611c6086828701611bd9565b9250506040611c7186828701611b2c565b9150509250925092565b5f819050919050565b611c8d81611c7b565b8114611c97575f5ffd5b50565b5f81359050611ca881611c84565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611cec82611aa5565b810181811067ffffffffffffffff82111715611d0b57611d0a611cb6565b5b80604052505050565b5f611d1d6119b9565b9050611d298282611ce3565b919050565b5f67ffffffffffffffff821115611d4857611d47611cb6565b5b611d5182611aa5565b9050602081019050919050565b828183375f83830152505050565b5f611d7e611d7984611d2e565b611d14565b905082815260208101848484011115611d9a57611d99611cb2565b5b611da5848285611d5e565b509392505050565b5f82601f830112611dc157611dc0611cae565b5b8135611dd1848260208601611d6c565b91505092915050565b5f5f60408385031215611df057611def6119c2565b5b5f611dfd85828601611c9a565b925050602083013567ffffffffffffffff811115611e1e57611e1d6119c6565b5b611e2a85828601611dad565b9150509250929050565b611e3d81611c7b565b82525050565b5f602082019050611e565f830184611e34565b92915050565b5f60208284031215611e7157611e706119c2565b5b5f611e7e84828501611bd9565b91505092915050565b611e9081611b0d565b82525050565b5f602082019050611ea95f830184611e87565b92915050565b5f5f5f60608486031215611ec657611ec56119c2565b5b5f611ed386828701611bd9565b9350506020611ee486828701611b2c565b925050604084013567ffffffffffffffff811115611f0557611f046119c6565b5b611f1186828701611dad565b9150509250925092565b611f2481611a4a565b8114611f2e575f5ffd5b50565b5f81359050611f3f81611f1b565b92915050565b5f5f60408385031215611f5b57611f5a6119c2565b5b5f611f6885828601611bd9565b9250506020611f7985828601611f31565b9150509250929050565b5f5f5f5f60808587031215611f9b57611f9a6119c2565b5b5f611fa887828801611bd9565b9450506020611fb987828801611bd9565b9350506040611fca87828801611b2c565b925050606085013567ffffffffffffffff811115611feb57611fea6119c6565b5b611ff787828801611dad565b91505092959194509250565b5f5f60408385031215612019576120186119c2565b5b5f61202685828601611bd9565b925050602061203785828601611bd9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208557607f821691505b60208210810361209857612097612041565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6120d2601383611a87565b91506120dd8261209e565b602082019050919050565b5f6020820190508181035f8301526120ff816120c6565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61213a601e83611a87565b915061214582612106565b602082019050919050565b5f6020820190508181035f8301526121678161212e565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6121a2601683611a87565b91506121ad8261216e565b602082019050919050565b5f6020820190508181035f8301526121cf81612196565b9050919050565b5f8160601b9050919050565b5f6121ec826121d6565b9050919050565b5f6121fd826121e2565b9050919050565b61221561221082611b8a565b6121f3565b82525050565b5f819050919050565b61223561223082611b0d565b61221b565b82525050565b5f6122468285612204565b6014820191506122568284612224565b6020820191508190509392505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f61229a601483611a87565b91506122a582612266565b602082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b6122d781611c7b565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f8151905061230481611c84565b92915050565b5f6020828403121561231f5761231e6119c2565b5b5f61232c848285016122f6565b91505092915050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f612369601183611a87565b915061237482612335565b602082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f6123d1600f83611a87565b91506123dc8261239d565b602082019050919050565b5f6020820190508181035f8301526123fe816123c5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612439600f83611a87565b915061244482612405565b602082019050919050565b5f6020820190508181035f8301526124668161242d565b9050919050565b5f81905092915050565b5f61248182611a7d565b61248b818561246d565b935061249b818560208601611a97565b80840191505092915050565b5f6124b28285612477565b91506124be8284612477565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124fe600983611a87565b9150612509826124ca565b602082019050919050565b5f6020820190508181035f83015261252b816124f2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612566601c83611a87565b915061257182612532565b602082019050919050565b5f6020820190508181035f8301526125938161255a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125d182611b0d565b91506125dc83611b0d565b92508282039050818111156125f4576125f361259a565b5b92915050565b5f61260482611b0d565b915061260f83611b0d565b92508282019050808211156126275761262661259a565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612661601483611a87565b915061266c8261262d565b602082019050919050565b5f6020820190508181035f83015261268e81612655565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6126c9601483611a87565b91506126d482612695565b602082019050919050565b5f6020820190508181035f8301526126f6816126bd565b9050919050565b5f61270782611b0d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127395761273861259a565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61277b82611b0d565b915061278683611b0d565b92508261279657612795612744565b5b828204905092915050565b5f6127ab82611b0d565b91506127b683611b0d565b9250826127c6576127c5612744565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f612832601883611a87565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f60ff82169050919050565b61287b81612866565b82525050565b5f6080820190506128945f830187611e34565b6128a16020830186612872565b6128ae6040830185611e34565b6128bb6060830184611e34565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f6128e8826128c4565b6128f281856128ce565b9350612902818560208601611a97565b61290b81611aa5565b840191505092915050565b5f6080820190506129295f830187611b9b565b6129366020830186611b9b565b6129436040830185611e87565b818103606083015261295581846128de565b905095945050505050565b5f8151905061296e816119f5565b92915050565b5f60208284031215612989576129886119c2565b5b5f61299684828501612960565b9150509291505056fea2646970667358221220fea806b4d99ed734e06294ec7a872e1624962d92800f3f23b30d68f1728f2d2f64736f6c63430008220033","sourceMap":"2250:1719:93:-:0;;;2498:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2582:5;2589:7;1078:5:84;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;2621:7:93::1;2612:16;;;;;;;;::::0;::::1;2498:137:::0;;;2250:1719;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:126::-;2607:7;2647:42;2640:5;2636:54;2625:65;;2570:126;;;:::o;2702:96::-;2739:7;2768:24;2786:5;2768:24;:::i;:::-;2757:35;;2702:96;;;:::o;2804:122::-;2877:24;2895:5;2877:24;:::i;:::-;2870:5;2867:35;2857:63;;2916:1;2913;2906:12;2857:63;2804:122;:::o;2932:143::-;2989:5;3020:6;3014:13;3005:22;;3036:33;3063:5;3036:33;:::i;:::-;2932:143;;;;:::o;3081:1009::-;3189:6;3197;3205;3254:2;3242:9;3233:7;3229:23;3225:32;3222:119;;;3260:79;;:::i;:::-;3222:119;3401:1;3390:9;3386:17;3380:24;3431:18;3423:6;3420:30;3417:117;;;3453:79;;:::i;:::-;3417:117;3558:74;3624:7;3615:6;3604:9;3600:22;3558:74;:::i;:::-;3548:84;;3351:291;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3983:2;4009:64;4065:7;4056:6;4045:9;4041:22;4009:64;:::i;:::-;3999:74;;3954:129;3081:1009;;;;;:::o;4096:99::-;4148:6;4182:5;4176:12;4166:22;;4096:99;;;:::o;4201:180::-;4249:77;4246:1;4239:88;4346:4;4343:1;4336:15;4370:4;4367:1;4360:15;4387:320;4431:6;4468:1;4462:4;4458:12;4448:22;;4515:1;4509:4;4505:12;4536:18;4526:81;;4592:4;4584:6;4580:17;4570:27;;4526:81;4654:2;4646:6;4643:14;4623:18;4620:38;4617:84;;4673:18;;:::i;:::-;4617:84;4438:269;4387:320;;;:::o;4713:141::-;4762:4;4785:3;4777:11;;4808:3;4805:1;4798:14;4842:4;4839:1;4829:18;4821:26;;4713:141;;;:::o;4860:93::-;4897:6;4944:2;4939;4932:5;4928:14;4924:23;4914:33;;4860:93;;;:::o;4959:107::-;5003:8;5053:5;5047:4;5043:16;5022:37;;4959:107;;;;:::o;5072:393::-;5141:6;5191:1;5179:10;5175:18;5214:97;5244:66;5233:9;5214:97;:::i;:::-;5332:39;5362:8;5351:9;5332:39;:::i;:::-;5320:51;;5404:4;5400:9;5393:5;5389:21;5380:30;;5453:4;5443:8;5439:19;5432:5;5429:30;5419:40;;5148:317;;5072:393;;;;;:::o;5471:77::-;5508:7;5537:5;5526:16;;5471:77;;;:::o;5554:60::-;5582:3;5603:5;5596:12;;5554:60;;;:::o;5620:142::-;5670:9;5703:53;5721:34;5730:24;5748:5;5730:24;:::i;:::-;5721:34;:::i;:::-;5703:53;:::i;:::-;5690:66;;5620:142;;;:::o;5768:75::-;5811:3;5832:5;5825:12;;5768:75;;;:::o;5849:269::-;5959:39;5990:7;5959:39;:::i;:::-;6020:91;6069:41;6093:16;6069:41;:::i;:::-;6061:6;6054:4;6048:11;6020:91;:::i;:::-;6014:4;6007:105;5925:193;5849:269;;;:::o;6124:73::-;6169:3;6190:1;6183:8;;6124:73;:::o;6203:189::-;6280:32;;:::i;:::-;6321:65;6379:6;6371;6365:4;6321:65;:::i;:::-;6256:136;6203:189;;:::o;6398:214::-;6483:1;6468:138;6493:9;6490:1;6487:16;6468:138;;;6545:51;6594:1;6590;6579:9;6575:17;6545:51;:::i;:::-;6518:1;6515;6511:9;6506:14;;6468:138;;;6472:14;6398:214;;:::o;6618:746::-;6719:2;6714:3;6711:11;6708:649;;;6748:10;6743:3;6740:19;6737:610;;;6794:38;6826:5;6794:38;:::i;:::-;6869:22;6887:3;6869:22;:::i;:::-;6928:29;6946:10;6928:29;:::i;:::-;7118:2;7106:10;7103:18;7100:79;;;7160:1;7144:17;;7100:79;7229:12;7219:8;7215:27;7259:74;7319:12;7305;7301:31;7288:11;7259:74;:::i;:::-;6760:587;;;;6737:610;6708:649;6618:746;;;:::o;7370:117::-;7424:8;7474:5;7468:4;7464:16;7443:37;;7370:117;;;;:::o;7493:169::-;7537:6;7570:51;7618:1;7614:6;7606:5;7603:1;7599:13;7570:51;:::i;:::-;7566:56;7651:4;7645;7641:15;7631:25;;7544:118;7493:169;;;;:::o;7667:295::-;7743:4;7889:29;7914:3;7908:4;7889:29;:::i;:::-;7881:37;;7951:3;7948:1;7944:11;7938:4;7935:21;7927:29;;7667:295;;;;:::o;7967:1395::-;8084:37;8117:3;8084:37;:::i;:::-;8186:18;8178:6;8175:30;8172:56;;;8208:18;;:::i;:::-;8172:56;8252:38;8284:4;8278:11;8252:38;:::i;:::-;8337:67;8397:6;8389;8383:4;8337:67;:::i;:::-;8431:1;8455:4;8442:17;;8487:2;8479:6;8476:14;8504:1;8499:618;;;;9161:1;9178:6;9175:77;;;9227:9;9222:3;9218:19;9212:26;9203:35;;9175:77;9278:67;9338:6;9331:5;9278:67;:::i;:::-;9272:4;9265:81;9134:222;8469:887;;8499:618;8551:4;8547:9;8539:6;8535:22;8585:37;8617:4;8585:37;:::i;:::-;8644:1;8658:208;8672:7;8669:1;8666:14;8658:208;;;8751:9;8746:3;8742:19;8736:26;8728:6;8721:42;8802:1;8794:6;8790:14;8780:24;;8849:2;8838:9;8834:18;8821:31;;8695:4;8692:1;8688:12;8683:17;;8658:208;;;8894:6;8885:7;8882:19;8879:179;;;8952:9;8947:3;8943:19;8937:26;8995:48;9037:4;9029:6;9025:17;9014:9;8995:48;:::i;:::-;8987:6;8980:64;8902:156;8879:179;9104:1;9100;9092:6;9088:14;9084:22;9078:4;9071:36;8506:611;;;8469:887;;8059:1303;;;7967:1395;;:::o;2250:1719:93:-;;;;;;;;;;;;;;;;;;","linkReferences":{"src/37_Signature/Signature.sol":{"ECDSA":[{"start":4106,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610114575f3560e01c8063630303c6116100a057806395d89b411161006f57806395d89b4114610314578063a22cb46514610332578063b88d4fde1461034e578063c87b56dd1461036a578063e985e9c51461039a57610114565b8063630303c6146102685780636352211e1461029857806370a08231146102c857806394d008ef146102f857610114565b8063238ac933116100e7578063238ac933146101b257806323b872dd146101d0578063258ae582146101ec57806342842e0e1461021c578063512c91df1461023857610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc14610166578063095ea7b314610196575b5f5ffd5b610132600480360381019061012d9190611a1f565b6103ca565b60405161013f9190611a64565b60405180910390f35b610150610503565b60405161015d9190611aed565b60405180910390f35b610180600480360381019061017b9190611b40565b61058e565b60405161018d9190611baa565b60405180910390f35b6101b060048036038101906101ab9190611bed565b610665565b005b6101ba6107a3565b6040516101c79190611baa565b60405180910390f35b6101ea60048036038101906101e59190611c2b565b6107c7565b005b61020660048036038101906102019190611dda565b61082f565b6040516102139190611a64565b60405180910390f35b61023660048036038101906102319190611c2b565b610863565b005b610252600480360381019061024d9190611bed565b610882565b60405161025f9190611e43565b60405180910390f35b610282600480360381019061027d9190611e5c565b6108b4565b60405161028f9190611a64565b60405180910390f35b6102b260048036038101906102ad9190611b40565b6108d1565b6040516102bf9190611baa565b60405180910390f35b6102e260048036038101906102dd9190611e5c565b610978565b6040516102ef9190611e96565b60405180910390f35b610312600480360381019061030d9190611eaf565b610a2c565b005b61031c610beb565b6040516103299190611aed565b60405180910390f35b61034c60048036038101906103479190611f45565b610c77565b005b61036860048036038101906103639190611f83565b610d6f565b005b610384600480360381019061037f9190611b40565b610dd9565b6040516103919190611aed565b60405180910390f35b6103b460048036038101906103af9190612003565b610ed3565b6040516103c19190611a64565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104fc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461050f9061206e565b80601f016020809104026020016040519081016040528092919081815260200182805461053b9061206e565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906120e8565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610754575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612150565b60405180910390fd5b61079e818484610f61565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6107d1826108d1565b90506107de813384611010565b61081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906121b8565b60405180910390fd5b6108298185858561113b565b50505050565b5f61085b83837f000000000000000000000000000000000000000000000000000000000000000061137a565b905092915050565b61087d83838360405180602001604052805f815250610d6f565b505050565b5f828260405160200161089692919061223b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a906120e8565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906122b0565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a378484610882565b90505f73__$e3d8e53151ebe0b7203e2d17c613eec2e4$__63918a15cf836040518263ffffffff1660e01b8152600401610a7191906122dd565b602060405180830381865af4158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab0919061230a565b9050610abc818461082f565b610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061237f565b60405180910390fd5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906123e7565b60405180910390fd5b600160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610be485856113bc565b5050505050565b60018054610bf89061206e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c249061206e565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d639190611a64565b60405180910390a35050565b5f610d79836108d1565b9050610d86813385611010565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906121b8565b60405180910390fd5b610dd281868686866115ca565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061244f565b60405180910390fd5b5f610e826115e9565b90505f815111610ea05760405180602001604052805f815250610ecb565b80610eaa846115ff565b604051602001610ebb9291906124a7565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611132575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612514565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061257c565b60405180910390fd5b611222845f83610f61565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461126f91906125c7565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112c391906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1661139c8585611758565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612677565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906126df565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461151591906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6115d68585858561113b565b6115e28484848461180e565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611645576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611753565b5f8290505f5b5f821461167457808061165d906126fd565b915050600a8261166d9190612771565b915061164b565b5f8167ffffffffffffffff81111561168f5761168e611cb6565b5b6040519080825280601f01601f1916602001820160405280156116c15781602001600182028036833780820191505090505b5090505b5f851461174c576001826116d991906125c7565b9150600a856116e891906127a1565b60306116f491906125fa565b60f81b81838151811061170a576117096127d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856117459190612771565b94506116c5565b8093505050505b919050565b5f604182511461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612848565b60405180910390fd5b5f5f5f602085015192506040850151915060608501515f1a90506001868285856040515f81526020016040526040516117d99493929190612881565b6020604051602081039080840390855afa1580156117f9573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156119b3578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b815260040161186c9493929190612916565b6020604051808303815f875af19250505080156118a757506040513d601f19601f820116820180604052508101906118a49190612974565b60015b611928573d805f81146118d5576040519150601f19603f3d011682016040523d82523d5f602084013e6118da565b606091505b505f81510361192057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119179190611baa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119b157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119a89190611baa565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119fe816119ca565b8114611a08575f5ffd5b50565b5f81359050611a19816119f5565b92915050565b5f60208284031215611a3457611a336119c2565b5b5f611a4184828501611a0b565b91505092915050565b5f8115159050919050565b611a5e81611a4a565b82525050565b5f602082019050611a775f830184611a55565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611abf82611a7d565b611ac98185611a87565b9350611ad9818560208601611a97565b611ae281611aa5565b840191505092915050565b5f6020820190508181035f830152611b058184611ab5565b905092915050565b5f819050919050565b611b1f81611b0d565b8114611b29575f5ffd5b50565b5f81359050611b3a81611b16565b92915050565b5f60208284031215611b5557611b546119c2565b5b5f611b6284828501611b2c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9482611b6b565b9050919050565b611ba481611b8a565b82525050565b5f602082019050611bbd5f830184611b9b565b92915050565b611bcc81611b8a565b8114611bd6575f5ffd5b50565b5f81359050611be781611bc3565b92915050565b5f5f60408385031215611c0357611c026119c2565b5b5f611c1085828601611bd9565b9250506020611c2185828601611b2c565b9150509250929050565b5f5f5f60608486031215611c4257611c416119c2565b5b5f611c4f86828701611bd9565b9350506020611c6086828701611bd9565b9250506040611c7186828701611b2c565b9150509250925092565b5f819050919050565b611c8d81611c7b565b8114611c97575f5ffd5b50565b5f81359050611ca881611c84565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611cec82611aa5565b810181811067ffffffffffffffff82111715611d0b57611d0a611cb6565b5b80604052505050565b5f611d1d6119b9565b9050611d298282611ce3565b919050565b5f67ffffffffffffffff821115611d4857611d47611cb6565b5b611d5182611aa5565b9050602081019050919050565b828183375f83830152505050565b5f611d7e611d7984611d2e565b611d14565b905082815260208101848484011115611d9a57611d99611cb2565b5b611da5848285611d5e565b509392505050565b5f82601f830112611dc157611dc0611cae565b5b8135611dd1848260208601611d6c565b91505092915050565b5f5f60408385031215611df057611def6119c2565b5b5f611dfd85828601611c9a565b925050602083013567ffffffffffffffff811115611e1e57611e1d6119c6565b5b611e2a85828601611dad565b9150509250929050565b611e3d81611c7b565b82525050565b5f602082019050611e565f830184611e34565b92915050565b5f60208284031215611e7157611e706119c2565b5b5f611e7e84828501611bd9565b91505092915050565b611e9081611b0d565b82525050565b5f602082019050611ea95f830184611e87565b92915050565b5f5f5f60608486031215611ec657611ec56119c2565b5b5f611ed386828701611bd9565b9350506020611ee486828701611b2c565b925050604084013567ffffffffffffffff811115611f0557611f046119c6565b5b611f1186828701611dad565b9150509250925092565b611f2481611a4a565b8114611f2e575f5ffd5b50565b5f81359050611f3f81611f1b565b92915050565b5f5f60408385031215611f5b57611f5a6119c2565b5b5f611f6885828601611bd9565b9250506020611f7985828601611f31565b9150509250929050565b5f5f5f5f60808587031215611f9b57611f9a6119c2565b5b5f611fa887828801611bd9565b9450506020611fb987828801611bd9565b9350506040611fca87828801611b2c565b925050606085013567ffffffffffffffff811115611feb57611fea6119c6565b5b611ff787828801611dad565b91505092959194509250565b5f5f60408385031215612019576120186119c2565b5b5f61202685828601611bd9565b925050602061203785828601611bd9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208557607f821691505b60208210810361209857612097612041565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6120d2601383611a87565b91506120dd8261209e565b602082019050919050565b5f6020820190508181035f8301526120ff816120c6565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61213a601e83611a87565b915061214582612106565b602082019050919050565b5f6020820190508181035f8301526121678161212e565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6121a2601683611a87565b91506121ad8261216e565b602082019050919050565b5f6020820190508181035f8301526121cf81612196565b9050919050565b5f8160601b9050919050565b5f6121ec826121d6565b9050919050565b5f6121fd826121e2565b9050919050565b61221561221082611b8a565b6121f3565b82525050565b5f819050919050565b61223561223082611b0d565b61221b565b82525050565b5f6122468285612204565b6014820191506122568284612224565b6020820191508190509392505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f61229a601483611a87565b91506122a582612266565b602082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b6122d781611c7b565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f8151905061230481611c84565b92915050565b5f6020828403121561231f5761231e6119c2565b5b5f61232c848285016122f6565b91505092915050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f612369601183611a87565b915061237482612335565b602082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f6123d1600f83611a87565b91506123dc8261239d565b602082019050919050565b5f6020820190508181035f8301526123fe816123c5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612439600f83611a87565b915061244482612405565b602082019050919050565b5f6020820190508181035f8301526124668161242d565b9050919050565b5f81905092915050565b5f61248182611a7d565b61248b818561246d565b935061249b818560208601611a97565b80840191505092915050565b5f6124b28285612477565b91506124be8284612477565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124fe600983611a87565b9150612509826124ca565b602082019050919050565b5f6020820190508181035f83015261252b816124f2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612566601c83611a87565b915061257182612532565b602082019050919050565b5f6020820190508181035f8301526125938161255a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125d182611b0d565b91506125dc83611b0d565b92508282039050818111156125f4576125f361259a565b5b92915050565b5f61260482611b0d565b915061260f83611b0d565b92508282019050808211156126275761262661259a565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612661601483611a87565b915061266c8261262d565b602082019050919050565b5f6020820190508181035f83015261268e81612655565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6126c9601483611a87565b91506126d482612695565b602082019050919050565b5f6020820190508181035f8301526126f6816126bd565b9050919050565b5f61270782611b0d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127395761273861259a565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61277b82611b0d565b915061278683611b0d565b92508261279657612795612744565b5b828204905092915050565b5f6127ab82611b0d565b91506127b683611b0d565b9250826127c6576127c5612744565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f612832601883611a87565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f60ff82169050919050565b61287b81612866565b82525050565b5f6080820190506128945f830187611e34565b6128a16020830186612872565b6128ae6040830185611e34565b6128bb6060830184611e34565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f6128e8826128c4565b6128f281856128ce565b9350612902818560208601611a97565b61290b81611aa5565b840191505092915050565b5f6080820190506129295f830187611b9b565b6129366020830186611b9b565b6129436040830185611e87565b818103606083015261295581846128de565b905095945050505050565b5f8151905061296e816119f5565b92915050565b5f60208284031215612989576129886119c2565b5b5f61299684828501612960565b9150509291505056fea2646970667358221220fea806b4d99ed734e06294ec7a872e1624962d92800f3f23b30d68f1728f2d2f64736f6c63430008220033","sourceMap":"2250:1719:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2288:31:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4874:329:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3807:160:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6437:170:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3589:159:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2341:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2679:624:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;380:29:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;2288:31:93:-;;;:::o;4874:329:84:-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;3807:160:93:-;3891:4;3918:42;3931:8;3941:10;3953:6;3918:12;:42::i;:::-;3911:49;;3807:160;;;;:::o;6437:170:84:-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;3589:159:93:-;3669:7;3721:8;3731;3704:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3694:47;;;;;;3687:54;;3589:159;;;;:::o;2341:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;1833:178:84:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;2679:624:93:-;2781:16;2800:34;2815:8;2825;2800:14;:34::i;:::-;2781:53;;2882:29;2914:5;:28;2943:8;2914:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2882:70;;3001:41;3008:21;3031:10;3001:6;:41::i;:::-;2993:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3104:13;:23;3118:8;3104:23;;;;;;;;;;;;;;;;;;;;;;;;;3103:24;3095:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3223:4;3197:13;:23;3211:8;3197:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;3263:25;3269:8;3279;3263:5;:25::i;:::-;2771:532;;2679:624;;;:::o;380:29:84:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;314:175:93:-;413:4;475:7;436:46;;:35;450:8;460:10;436:13;:35::i;:::-;:46;;;429:53;;314:175;;;;;:::o;7051:306:84:-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;559:1084:93:-;648:7;759:2;738:10;:17;:23;730:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;800:9;819;838:7;1309:4;1297:10;1293:21;1287:28;1282:33;;1394:4;1382:10;1378:21;1372:28;1367:33;;1486:4;1474:10;1470:21;1464:28;1461:1;1456:37;1451:42;;1608:28;1618:8;1628:1;1631;1634;1608:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1601:35;;;;;559:1084;;;;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:77::-;5445:7;5474:5;5463:16;;5408:77;;;:::o;5491:122::-;5564:24;5582:5;5564:24;:::i;:::-;5557:5;5554:35;5544:63;;5603:1;5600;5593:12;5544:63;5491:122;:::o;5619:139::-;5665:5;5703:6;5690:20;5681:29;;5719:33;5746:5;5719:33;:::i;:::-;5619:139;;;;:::o;5764:117::-;5873:1;5870;5863:12;5887:117;5996:1;5993;5986:12;6010:180;6058:77;6055:1;6048:88;6155:4;6152:1;6145:15;6179:4;6176:1;6169:15;6196:281;6279:27;6301:4;6279:27;:::i;:::-;6271:6;6267:40;6409:6;6397:10;6394:22;6373:18;6361:10;6358:34;6355:62;6352:88;;;6420:18;;:::i;:::-;6352:88;6460:10;6456:2;6449:22;6239:238;6196:281;;:::o;6483:129::-;6517:6;6544:20;;:::i;:::-;6534:30;;6573:33;6601:4;6593:6;6573:33;:::i;:::-;6483:129;;;:::o;6618:307::-;6679:4;6769:18;6761:6;6758:30;6755:56;;;6791:18;;:::i;:::-;6755:56;6829:29;6851:6;6829:29;:::i;:::-;6821:37;;6913:4;6907;6903:15;6895:23;;6618:307;;;:::o;6931:148::-;7029:6;7024:3;7019;7006:30;7070:1;7061:6;7056:3;7052:16;7045:27;6931:148;;;:::o;7085:423::-;7162:5;7187:65;7203:48;7244:6;7203:48;:::i;:::-;7187:65;:::i;:::-;7178:74;;7275:6;7268:5;7261:21;7313:4;7306:5;7302:16;7351:3;7342:6;7337:3;7333:16;7330:25;7327:112;;;7358:79;;:::i;:::-;7327:112;7448:54;7495:6;7490:3;7485;7448:54;:::i;:::-;7168:340;7085:423;;;;;:::o;7527:338::-;7582:5;7631:3;7624:4;7616:6;7612:17;7608:27;7598:122;;7639:79;;:::i;:::-;7598:122;7756:6;7743:20;7781:78;7855:3;7847:6;7840:4;7832:6;7828:17;7781:78;:::i;:::-;7772:87;;7588:277;7527:338;;;;:::o;7871:652::-;7948:6;7956;8005:2;7993:9;7984:7;7980:23;7976:32;7973:119;;;8011:79;;:::i;:::-;7973:119;8131:1;8156:53;8201:7;8192:6;8181:9;8177:22;8156:53;:::i;:::-;8146:63;;8102:117;8286:2;8275:9;8271:18;8258:32;8317:18;8309:6;8306:30;8303:117;;;8339:79;;:::i;:::-;8303:117;8444:62;8498:7;8489:6;8478:9;8474:22;8444:62;:::i;:::-;8434:72;;8229:287;7871:652;;;;;:::o;8529:118::-;8616:24;8634:5;8616:24;:::i;:::-;8611:3;8604:37;8529:118;;:::o;8653:222::-;8746:4;8784:2;8773:9;8769:18;8761:26;;8797:71;8865:1;8854:9;8850:17;8841:6;8797:71;:::i;:::-;8653:222;;;;:::o;8881:329::-;8940:6;8989:2;8977:9;8968:7;8964:23;8960:32;8957:119;;;8995:79;;:::i;:::-;8957:119;9115:1;9140:53;9185:7;9176:6;9165:9;9161:22;9140:53;:::i;:::-;9130:63;;9086:117;8881:329;;;;:::o;9216:118::-;9303:24;9321:5;9303:24;:::i;:::-;9298:3;9291:37;9216:118;;:::o;9340:222::-;9433:4;9471:2;9460:9;9456:18;9448:26;;9484:71;9552:1;9541:9;9537:17;9528:6;9484:71;:::i;:::-;9340:222;;;;:::o;9568:797::-;9654:6;9662;9670;9719:2;9707:9;9698:7;9694:23;9690:32;9687:119;;;9725:79;;:::i;:::-;9687:119;9845:1;9870:53;9915:7;9906:6;9895:9;9891:22;9870:53;:::i;:::-;9860:63;;9816:117;9972:2;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9943:118;10128:2;10117:9;10113:18;10100:32;10159:18;10151:6;10148:30;10145:117;;;10181:79;;:::i;:::-;10145:117;10286:62;10340:7;10331:6;10320:9;10316:22;10286:62;:::i;:::-;10276:72;;10071:287;9568:797;;;;;:::o;10371:116::-;10441:21;10456:5;10441:21;:::i;:::-;10434:5;10431:32;10421:60;;10477:1;10474;10467:12;10421:60;10371:116;:::o;10493:133::-;10536:5;10574:6;10561:20;10552:29;;10590:30;10614:5;10590:30;:::i;:::-;10493:133;;;;:::o;10632:468::-;10697:6;10705;10754:2;10742:9;10733:7;10729:23;10725:32;10722:119;;;10760:79;;:::i;:::-;10722:119;10880:1;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10851:117;11007:2;11033:50;11075:7;11066:6;11055:9;11051:22;11033:50;:::i;:::-;11023:60;;10978:115;10632:468;;;;;:::o;11106:943::-;11201:6;11209;11217;11225;11274:3;11262:9;11253:7;11249:23;11245:33;11242:120;;;11281:79;;:::i;:::-;11242:120;11401:1;11426:53;11471:7;11462:6;11451:9;11447:22;11426:53;:::i;:::-;11416:63;;11372:117;11528:2;11554:53;11599:7;11590:6;11579:9;11575:22;11554:53;:::i;:::-;11544:63;;11499:118;11656:2;11682:53;11727:7;11718:6;11707:9;11703:22;11682:53;:::i;:::-;11672:63;;11627:118;11812:2;11801:9;11797:18;11784:32;11843:18;11835:6;11832:30;11829:117;;;11865:79;;:::i;:::-;11829:117;11970:62;12024:7;12015:6;12004:9;12000:22;11970:62;:::i;:::-;11960:72;;11755:287;11106:943;;;;;;;:::o;12055:474::-;12123:6;12131;12180:2;12168:9;12159:7;12155:23;12151:32;12148:119;;;12186:79;;:::i;:::-;12148:119;12306:1;12331:53;12376:7;12367:6;12356:9;12352:22;12331:53;:::i;:::-;12321:63;;12277:117;12433:2;12459:53;12504:7;12495:6;12484:9;12480:22;12459:53;:::i;:::-;12449:63;;12404:118;12055:474;;;;;:::o;12535:180::-;12583:77;12580:1;12573:88;12680:4;12677:1;12670:15;12704:4;12701:1;12694:15;12721:320;12765:6;12802:1;12796:4;12792:12;12782:22;;12849:1;12843:4;12839:12;12870:18;12860:81;;12926:4;12918:6;12914:17;12904:27;;12860:81;12988:2;12980:6;12977:14;12957:18;12954:38;12951:84;;13007:18;;:::i;:::-;12951:84;12772:269;12721:320;;;:::o;13047:169::-;13187:21;13183:1;13175:6;13171:14;13164:45;13047:169;:::o;13222:366::-;13364:3;13385:67;13449:2;13444:3;13385:67;:::i;:::-;13378:74;;13461:93;13550:3;13461:93;:::i;:::-;13579:2;13574:3;13570:12;13563:19;;13222:366;;;:::o;13594:419::-;13760:4;13798:2;13787:9;13783:18;13775:26;;13847:9;13841:4;13837:20;13833:1;13822:9;13818:17;13811:47;13875:131;14001:4;13875:131;:::i;:::-;13867:139;;13594:419;;;:::o;14019:180::-;14159:32;14155:1;14147:6;14143:14;14136:56;14019:180;:::o;14205:366::-;14347:3;14368:67;14432:2;14427:3;14368:67;:::i;:::-;14361:74;;14444:93;14533:3;14444:93;:::i;:::-;14562:2;14557:3;14553:12;14546:19;;14205:366;;;:::o;14577:419::-;14743:4;14781:2;14770:9;14766:18;14758:26;;14830:9;14824:4;14820:20;14816:1;14805:9;14801:17;14794:47;14858:131;14984:4;14858:131;:::i;:::-;14850:139;;14577:419;;;:::o;15002:172::-;15142:24;15138:1;15130:6;15126:14;15119:48;15002:172;:::o;15180:366::-;15322:3;15343:67;15407:2;15402:3;15343:67;:::i;:::-;15336:74;;15419:93;15508:3;15419:93;:::i;:::-;15537:2;15532:3;15528:12;15521:19;;15180:366;;;:::o;15552:419::-;15718:4;15756:2;15745:9;15741:18;15733:26;;15805:9;15799:4;15795:20;15791:1;15780:9;15776:17;15769:47;15833:131;15959:4;15833:131;:::i;:::-;15825:139;;15552:419;;;:::o;15977:94::-;16010:8;16058:5;16054:2;16050:14;16029:35;;15977:94;;;:::o;16077:::-;16116:7;16145:20;16159:5;16145:20;:::i;:::-;16134:31;;16077:94;;;:::o;16177:100::-;16216:7;16245:26;16265:5;16245:26;:::i;:::-;16234:37;;16177:100;;;:::o;16283:157::-;16388:45;16408:24;16426:5;16408:24;:::i;:::-;16388:45;:::i;:::-;16383:3;16376:58;16283:157;;:::o;16446:79::-;16485:7;16514:5;16503:16;;16446:79;;;:::o;16531:157::-;16636:45;16656:24;16674:5;16656:24;:::i;:::-;16636:45;:::i;:::-;16631:3;16624:58;16531:157;;:::o;16694:397::-;16834:3;16849:75;16920:3;16911:6;16849:75;:::i;:::-;16949:2;16944:3;16940:12;16933:19;;16962:75;17033:3;17024:6;16962:75;:::i;:::-;17062:2;17057:3;17053:12;17046:19;;17082:3;17075:10;;16694:397;;;;;:::o;17097:170::-;17237:22;17233:1;17225:6;17221:14;17214:46;17097:170;:::o;17273:366::-;17415:3;17436:67;17500:2;17495:3;17436:67;:::i;:::-;17429:74;;17512:93;17601:3;17512:93;:::i;:::-;17630:2;17625:3;17621:12;17614:19;;17273:366;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17645:419;;;:::o;18070:126::-;18165:24;18183:5;18165:24;:::i;:::-;18160:3;18153:37;18070:126;;:::o;18202:238::-;18303:4;18341:2;18330:9;18326:18;18318:26;;18354:79;18430:1;18419:9;18415:17;18406:6;18354:79;:::i;:::-;18202:238;;;;:::o;18446:143::-;18503:5;18534:6;18528:13;18519:22;;18550:33;18577:5;18550:33;:::i;:::-;18446:143;;;;:::o;18595:351::-;18665:6;18714:2;18702:9;18693:7;18689:23;18685:32;18682:119;;;18720:79;;:::i;:::-;18682:119;18840:1;18865:64;18921:7;18912:6;18901:9;18897:22;18865:64;:::i;:::-;18855:74;;18811:128;18595:351;;;;:::o;18952:167::-;19092:19;19088:1;19080:6;19076:14;19069:43;18952:167;:::o;19125:366::-;19267:3;19288:67;19352:2;19347:3;19288:67;:::i;:::-;19281:74;;19364:93;19453:3;19364:93;:::i;:::-;19482:2;19477:3;19473:12;19466:19;;19125:366;;;:::o;19497:419::-;19663:4;19701:2;19690:9;19686:18;19678:26;;19750:9;19744:4;19740:20;19736:1;19725:9;19721:17;19714:47;19778:131;19904:4;19778:131;:::i;:::-;19770:139;;19497:419;;;:::o;19922:165::-;20062:17;20058:1;20050:6;20046:14;20039:41;19922:165;:::o;20093:366::-;20235:3;20256:67;20320:2;20315:3;20256:67;:::i;:::-;20249:74;;20332:93;20421:3;20332:93;:::i;:::-;20450:2;20445:3;20441:12;20434:19;;20093:366;;;:::o;20465:419::-;20631:4;20669:2;20658:9;20654:18;20646:26;;20718:9;20712:4;20708:20;20704:1;20693:9;20689:17;20682:47;20746:131;20872:4;20746:131;:::i;:::-;20738:139;;20465:419;;;:::o;20890:165::-;21030:17;21026:1;21018:6;21014:14;21007:41;20890:165;:::o;21061:366::-;21203:3;21224:67;21288:2;21283:3;21224:67;:::i;:::-;21217:74;;21300:93;21389:3;21300:93;:::i;:::-;21418:2;21413:3;21409:12;21402:19;;21061:366;;;:::o;21433:419::-;21599:4;21637:2;21626:9;21622:18;21614:26;;21686:9;21680:4;21676:20;21672:1;21661:9;21657:17;21650:47;21714:131;21840:4;21714:131;:::i;:::-;21706:139;;21433:419;;;:::o;21858:148::-;21960:11;21997:3;21982:18;;21858:148;;;;:::o;22012:390::-;22118:3;22146:39;22179:5;22146:39;:::i;:::-;22201:89;22283:6;22278:3;22201:89;:::i;:::-;22194:96;;22299:65;22357:6;22352:3;22345:4;22338:5;22334:16;22299:65;:::i;:::-;22389:6;22384:3;22380:16;22373:23;;22122:280;22012:390;;;;:::o;22408:435::-;22588:3;22610:95;22701:3;22692:6;22610:95;:::i;:::-;22603:102;;22722:95;22813:3;22804:6;22722:95;:::i;:::-;22715:102;;22834:3;22827:10;;22408:435;;;;;:::o;22849:159::-;22989:11;22985:1;22977:6;22973:14;22966:35;22849:159;:::o;23014:365::-;23156:3;23177:66;23241:1;23236:3;23177:66;:::i;:::-;23170:73;;23252:93;23341:3;23252:93;:::i;:::-;23370:2;23365:3;23361:12;23354:19;;23014:365;;;:::o;23385:419::-;23551:4;23589:2;23578:9;23574:18;23566:26;;23638:9;23632:4;23628:20;23624:1;23613:9;23609:17;23602:47;23666:131;23792:4;23666:131;:::i;:::-;23658:139;;23385:419;;;:::o;23810:178::-;23950:30;23946:1;23938:6;23934:14;23927:54;23810:178;:::o;23994:366::-;24136:3;24157:67;24221:2;24216:3;24157:67;:::i;:::-;24150:74;;24233:93;24322:3;24233:93;:::i;:::-;24351:2;24346:3;24342:12;24335:19;;23994:366;;;:::o;24366:419::-;24532:4;24570:2;24559:9;24555:18;24547:26;;24619:9;24613:4;24609:20;24605:1;24594:9;24590:17;24583:47;24647:131;24773:4;24647:131;:::i;:::-;24639:139;;24366:419;;;:::o;24791:180::-;24839:77;24836:1;24829:88;24936:4;24933:1;24926:15;24960:4;24957:1;24950:15;24977:194;25017:4;25037:20;25055:1;25037:20;:::i;:::-;25032:25;;25071:20;25089:1;25071:20;:::i;:::-;25066:25;;25115:1;25112;25108:9;25100:17;;25139:1;25133:4;25130:11;25127:37;;;25144:18;;:::i;:::-;25127:37;24977:194;;;;:::o;25177:191::-;25217:3;25236:20;25254:1;25236:20;:::i;:::-;25231:25;;25270:20;25288:1;25270:20;:::i;:::-;25265:25;;25313:1;25310;25306:9;25299:16;;25334:3;25331:1;25328:10;25325:36;;;25341:18;;:::i;:::-;25325:36;25177:191;;;;:::o;25374:170::-;25514:22;25510:1;25502:6;25498:14;25491:46;25374:170;:::o;25550:366::-;25692:3;25713:67;25777:2;25772:3;25713:67;:::i;:::-;25706:74;;25789:93;25878:3;25789:93;:::i;:::-;25907:2;25902:3;25898:12;25891:19;;25550:366;;;:::o;25922:419::-;26088:4;26126:2;26115:9;26111:18;26103:26;;26175:9;26169:4;26165:20;26161:1;26150:9;26146:17;26139:47;26203:131;26329:4;26203:131;:::i;:::-;26195:139;;25922:419;;;:::o;26347:170::-;26487:22;26483:1;26475:6;26471:14;26464:46;26347:170;:::o;26523:366::-;26665:3;26686:67;26750:2;26745:3;26686:67;:::i;:::-;26679:74;;26762:93;26851:3;26762:93;:::i;:::-;26880:2;26875:3;26871:12;26864:19;;26523:366;;;:::o;26895:419::-;27061:4;27099:2;27088:9;27084:18;27076:26;;27148:9;27142:4;27138:20;27134:1;27123:9;27119:17;27112:47;27176:131;27302:4;27176:131;:::i;:::-;27168:139;;26895:419;;;:::o;27320:233::-;27359:3;27382:24;27400:5;27382:24;:::i;:::-;27373:33;;27428:66;27421:5;27418:77;27415:103;;27498:18;;:::i;:::-;27415:103;27545:1;27538:5;27534:13;27527:20;;27320:233;;;:::o;27559:180::-;27607:77;27604:1;27597:88;27704:4;27701:1;27694:15;27728:4;27725:1;27718:15;27745:185;27785:1;27802:20;27820:1;27802:20;:::i;:::-;27797:25;;27836:20;27854:1;27836:20;:::i;:::-;27831:25;;27875:1;27865:35;;27880:18;;:::i;:::-;27865:35;27922:1;27919;27915:9;27910:14;;27745:185;;;;:::o;27936:176::-;27968:1;27985:20;28003:1;27985:20;:::i;:::-;27980:25;;28019:20;28037:1;28019:20;:::i;:::-;28014:25;;28058:1;28048:35;;28063:18;;:::i;:::-;28048:35;28104:1;28101;28097:9;28092:14;;27936:176;;;;:::o;28118:180::-;28166:77;28163:1;28156:88;28263:4;28260:1;28253:15;28287:4;28284:1;28277:15;28304:174;28444:26;28440:1;28432:6;28428:14;28421:50;28304:174;:::o;28484:366::-;28626:3;28647:67;28711:2;28706:3;28647:67;:::i;:::-;28640:74;;28723:93;28812:3;28723:93;:::i;:::-;28841:2;28836:3;28832:12;28825:19;;28484:366;;;:::o;28856:419::-;29022:4;29060:2;29049:9;29045:18;29037:26;;29109:9;29103:4;29099:20;29095:1;29084:9;29080:17;29073:47;29137:131;29263:4;29137:131;:::i;:::-;29129:139;;28856:419;;;:::o;29281:86::-;29316:7;29356:4;29349:5;29345:16;29334:27;;29281:86;;;:::o;29373:112::-;29456:22;29472:5;29456:22;:::i;:::-;29451:3;29444:35;29373:112;;:::o;29491:545::-;29664:4;29702:3;29691:9;29687:19;29679:27;;29716:71;29784:1;29773:9;29769:17;29760:6;29716:71;:::i;:::-;29797:68;29861:2;29850:9;29846:18;29837:6;29797:68;:::i;:::-;29875:72;29943:2;29932:9;29928:18;29919:6;29875:72;:::i;:::-;29957;30025:2;30014:9;30010:18;30001:6;29957:72;:::i;:::-;29491:545;;;;;;;:::o;30042:98::-;30093:6;30127:5;30121:12;30111:22;;30042:98;;;:::o;30146:168::-;30229:11;30263:6;30258:3;30251:19;30303:4;30298:3;30294:14;30279:29;;30146:168;;;;:::o;30320:373::-;30406:3;30434:38;30466:5;30434:38;:::i;:::-;30488:70;30551:6;30546:3;30488:70;:::i;:::-;30481:77;;30567:65;30625:6;30620:3;30613:4;30606:5;30602:16;30567:65;:::i;:::-;30657:29;30679:6;30657:29;:::i;:::-;30652:3;30648:39;30641:46;;30410:283;30320:373;;;;:::o;30699:640::-;30894:4;30932:3;30921:9;30917:19;30909:27;;30946:71;31014:1;31003:9;30999:17;30990:6;30946:71;:::i;:::-;31027:72;31095:2;31084:9;31080:18;31071:6;31027:72;:::i;:::-;31109;31177:2;31166:9;31162:18;31153:6;31109:72;:::i;:::-;31228:9;31222:4;31218:20;31213:2;31202:9;31198:18;31191:48;31256:76;31327:4;31318:6;31256:76;:::i;:::-;31248:84;;30699:640;;;;;;;:::o;31345:141::-;31401:5;31432:6;31426:13;31417:22;;31448:32;31474:5;31448:32;:::i;:::-;31345:141;;;;:::o;31492:349::-;31561:6;31610:2;31598:9;31589:7;31585:23;31581:32;31578:119;;;31616:79;;:::i;:::-;31578:119;31736:1;31761:63;31816:7;31807:6;31796:9;31792:22;31761:63;:::i;:::-;31751:73;;31707:127;31492:349;;;;:::o","linkReferences":{"src/37_Signature/Signature.sol":{"ECDSA":[{"start":2620,"length":20}]}},"immutableReferences":{"55976":[{"start":1957,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","getMessageHash(address,uint256)":"512c91df","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,bytes)":"94d008ef","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","signer()":"238ac933","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","verify(bytes32,bytes)":"258ae582"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"SignatureNFT\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[],"stateMutability":"view","type":"function","name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"bytes32","name":"_msgHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"SignatureNFT"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_signer","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMessageHash","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_account","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"_msgHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50604051612fa3380380612fa383398181016040528101906100319190610237565b8282815f908161004191906104e0565b50806001908161005191906104e0565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050506105af565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100ef826100a9565b810181811067ffffffffffffffff8211171561010e5761010d6100b9565b5b80604052505050565b5f610120610090565b905061012c82826100e6565b919050565b5f67ffffffffffffffff82111561014b5761014a6100b9565b5b610154826100a9565b9050602081019050919050565b8281835e5f83830152505050565b5f61018161017c84610131565b610117565b90508281526020810184848401111561019d5761019c6100a5565b5b6101a8848285610161565b509392505050565b5f82601f8301126101c4576101c36100a1565b5b81516101d484826020860161016f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610206826101dd565b9050919050565b610216816101fc565b8114610220575f5ffd5b50565b5f815190506102318161020d565b92915050565b5f5f5f6060848603121561024e5761024d610099565b5b5f84015167ffffffffffffffff81111561026b5761026a61009d565b5b610277868287016101b0565b935050602084015167ffffffffffffffff8111156102985761029761009d565b5b6102a4868287016101b0565b92505060406102b586828701610223565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061030d57607f821691505b6020821081036103205761031f6102c9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610347565b61038c8683610347565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103d06103cb6103c6846103a4565b6103ad565b6103a4565b9050919050565b5f819050919050565b6103e9836103b6565b6103fd6103f5826103d7565b848454610353565b825550505050565b5f5f905090565b610414610405565b61041f8184846103e0565b505050565b5f5b828110156104455761043a5f82840161040c565b600181019050610426565b505050565b601f82111561049857828211156104975761046481610326565b61046d83610338565b61047685610338565b6020861015610483575f90505b80830161049282840382610424565b505050505b5b505050565b5f82821c905092915050565b5f6104b85f198460080261049d565b1980831691505092915050565b5f6104d083836104a9565b9150826002028217905092915050565b6104e9826102bf565b67ffffffffffffffff811115610502576105016100b9565b5b61050c82546102f6565b61051782828561044a565b5f60209050601f831160018114610548575f8415610536578287015190505b61054085826104c5565b8655506105a7565b601f19841661055686610326565b5f5b8281101561057d57848901518255600182019150602085019450602081019050610558565b8683101561059a5784890151610596601f8916826104a9565b8355505b6001600288020188555050505b505050505050565b6080516129d56105ce5f395f81816107a5015261083701526129d55ff3fe608060405234801561000f575f5ffd5b5060043610610114575f3560e01c8063630303c6116100a057806395d89b411161006f57806395d89b4114610314578063a22cb46514610332578063b88d4fde1461034e578063c87b56dd1461036a578063e985e9c51461039a57610114565b8063630303c6146102685780636352211e1461029857806370a08231146102c857806394d008ef146102f857610114565b8063238ac933116100e7578063238ac933146101b257806323b872dd146101d0578063258ae582146101ec57806342842e0e1461021c578063512c91df1461023857610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc14610166578063095ea7b314610196575b5f5ffd5b610132600480360381019061012d9190611a1f565b6103ca565b60405161013f9190611a64565b60405180910390f35b610150610503565b60405161015d9190611aed565b60405180910390f35b610180600480360381019061017b9190611b40565b61058e565b60405161018d9190611baa565b60405180910390f35b6101b060048036038101906101ab9190611bed565b610665565b005b6101ba6107a3565b6040516101c79190611baa565b60405180910390f35b6101ea60048036038101906101e59190611c2b565b6107c7565b005b61020660048036038101906102019190611dda565b61082f565b6040516102139190611a64565b60405180910390f35b61023660048036038101906102319190611c2b565b610863565b005b610252600480360381019061024d9190611bed565b610882565b60405161025f9190611e43565b60405180910390f35b610282600480360381019061027d9190611e5c565b6108b4565b60405161028f9190611a64565b60405180910390f35b6102b260048036038101906102ad9190611b40565b6108d1565b6040516102bf9190611baa565b60405180910390f35b6102e260048036038101906102dd9190611e5c565b610978565b6040516102ef9190611e96565b60405180910390f35b610312600480360381019061030d9190611eaf565b610a2c565b005b61031c610beb565b6040516103299190611aed565b60405180910390f35b61034c60048036038101906103479190611f45565b610c77565b005b61036860048036038101906103639190611f83565b610d6f565b005b610384600480360381019061037f9190611b40565b610dd9565b6040516103919190611aed565b60405180910390f35b6103b460048036038101906103af9190612003565b610ed3565b6040516103c19190611a64565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104fc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461050f9061206e565b80601f016020809104026020016040519081016040528092919081815260200182805461053b9061206e565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906120e8565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610754575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612150565b60405180910390fd5b61079e818484610f61565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6107d1826108d1565b90506107de813384611010565b61081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906121b8565b60405180910390fd5b6108298185858561113b565b50505050565b5f61085b83837f000000000000000000000000000000000000000000000000000000000000000061137a565b905092915050565b61087d83838360405180602001604052805f815250610d6f565b505050565b5f828260405160200161089692919061223b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a906120e8565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906122b0565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a378484610882565b90505f73__$e3d8e53151ebe0b7203e2d17c613eec2e4$__63918a15cf836040518263ffffffff1660e01b8152600401610a7191906122dd565b602060405180830381865af4158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab0919061230a565b9050610abc818461082f565b610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061237f565b60405180910390fd5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906123e7565b60405180910390fd5b600160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610be485856113bc565b5050505050565b60018054610bf89061206e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c249061206e565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d639190611a64565b60405180910390a35050565b5f610d79836108d1565b9050610d86813385611010565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906121b8565b60405180910390fd5b610dd281868686866115ca565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061244f565b60405180910390fd5b5f610e826115e9565b90505f815111610ea05760405180602001604052805f815250610ecb565b80610eaa846115ff565b604051602001610ebb9291906124a7565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611132575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612514565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061257c565b60405180910390fd5b611222845f83610f61565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461126f91906125c7565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112c391906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1661139c8585611758565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612677565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906126df565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461151591906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6115d68585858561113b565b6115e28484848461180e565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611645576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611753565b5f8290505f5b5f821461167457808061165d906126fd565b915050600a8261166d9190612771565b915061164b565b5f8167ffffffffffffffff81111561168f5761168e611cb6565b5b6040519080825280601f01601f1916602001820160405280156116c15781602001600182028036833780820191505090505b5090505b5f851461174c576001826116d991906125c7565b9150600a856116e891906127a1565b60306116f491906125fa565b60f81b81838151811061170a576117096127d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856117459190612771565b94506116c5565b8093505050505b919050565b5f604182511461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612848565b60405180910390fd5b5f5f5f602085015192506040850151915060608501515f1a90506001868285856040515f81526020016040526040516117d99493929190612881565b6020604051602081039080840390855afa1580156117f9573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156119b3578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b815260040161186c9493929190612916565b6020604051808303815f875af19250505080156118a757506040513d601f19601f820116820180604052508101906118a49190612974565b60015b611928573d805f81146118d5576040519150601f19603f3d011682016040523d82523d5f602084013e6118da565b606091505b505f81510361192057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119179190611baa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119b157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119a89190611baa565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119fe816119ca565b8114611a08575f5ffd5b50565b5f81359050611a19816119f5565b92915050565b5f60208284031215611a3457611a336119c2565b5b5f611a4184828501611a0b565b91505092915050565b5f8115159050919050565b611a5e81611a4a565b82525050565b5f602082019050611a775f830184611a55565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611abf82611a7d565b611ac98185611a87565b9350611ad9818560208601611a97565b611ae281611aa5565b840191505092915050565b5f6020820190508181035f830152611b058184611ab5565b905092915050565b5f819050919050565b611b1f81611b0d565b8114611b29575f5ffd5b50565b5f81359050611b3a81611b16565b92915050565b5f60208284031215611b5557611b546119c2565b5b5f611b6284828501611b2c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9482611b6b565b9050919050565b611ba481611b8a565b82525050565b5f602082019050611bbd5f830184611b9b565b92915050565b611bcc81611b8a565b8114611bd6575f5ffd5b50565b5f81359050611be781611bc3565b92915050565b5f5f60408385031215611c0357611c026119c2565b5b5f611c1085828601611bd9565b9250506020611c2185828601611b2c565b9150509250929050565b5f5f5f60608486031215611c4257611c416119c2565b5b5f611c4f86828701611bd9565b9350506020611c6086828701611bd9565b9250506040611c7186828701611b2c565b9150509250925092565b5f819050919050565b611c8d81611c7b565b8114611c97575f5ffd5b50565b5f81359050611ca881611c84565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611cec82611aa5565b810181811067ffffffffffffffff82111715611d0b57611d0a611cb6565b5b80604052505050565b5f611d1d6119b9565b9050611d298282611ce3565b919050565b5f67ffffffffffffffff821115611d4857611d47611cb6565b5b611d5182611aa5565b9050602081019050919050565b828183375f83830152505050565b5f611d7e611d7984611d2e565b611d14565b905082815260208101848484011115611d9a57611d99611cb2565b5b611da5848285611d5e565b509392505050565b5f82601f830112611dc157611dc0611cae565b5b8135611dd1848260208601611d6c565b91505092915050565b5f5f60408385031215611df057611def6119c2565b5b5f611dfd85828601611c9a565b925050602083013567ffffffffffffffff811115611e1e57611e1d6119c6565b5b611e2a85828601611dad565b9150509250929050565b611e3d81611c7b565b82525050565b5f602082019050611e565f830184611e34565b92915050565b5f60208284031215611e7157611e706119c2565b5b5f611e7e84828501611bd9565b91505092915050565b611e9081611b0d565b82525050565b5f602082019050611ea95f830184611e87565b92915050565b5f5f5f60608486031215611ec657611ec56119c2565b5b5f611ed386828701611bd9565b9350506020611ee486828701611b2c565b925050604084013567ffffffffffffffff811115611f0557611f046119c6565b5b611f1186828701611dad565b9150509250925092565b611f2481611a4a565b8114611f2e575f5ffd5b50565b5f81359050611f3f81611f1b565b92915050565b5f5f60408385031215611f5b57611f5a6119c2565b5b5f611f6885828601611bd9565b9250506020611f7985828601611f31565b9150509250929050565b5f5f5f5f60808587031215611f9b57611f9a6119c2565b5b5f611fa887828801611bd9565b9450506020611fb987828801611bd9565b9350506040611fca87828801611b2c565b925050606085013567ffffffffffffffff811115611feb57611fea6119c6565b5b611ff787828801611dad565b91505092959194509250565b5f5f60408385031215612019576120186119c2565b5b5f61202685828601611bd9565b925050602061203785828601611bd9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208557607f821691505b60208210810361209857612097612041565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6120d2601383611a87565b91506120dd8261209e565b602082019050919050565b5f6020820190508181035f8301526120ff816120c6565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61213a601e83611a87565b915061214582612106565b602082019050919050565b5f6020820190508181035f8301526121678161212e565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6121a2601683611a87565b91506121ad8261216e565b602082019050919050565b5f6020820190508181035f8301526121cf81612196565b9050919050565b5f8160601b9050919050565b5f6121ec826121d6565b9050919050565b5f6121fd826121e2565b9050919050565b61221561221082611b8a565b6121f3565b82525050565b5f819050919050565b61223561223082611b0d565b61221b565b82525050565b5f6122468285612204565b6014820191506122568284612224565b6020820191508190509392505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f61229a601483611a87565b91506122a582612266565b602082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b6122d781611c7b565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f8151905061230481611c84565b92915050565b5f6020828403121561231f5761231e6119c2565b5b5f61232c848285016122f6565b91505092915050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f612369601183611a87565b915061237482612335565b602082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f6123d1600f83611a87565b91506123dc8261239d565b602082019050919050565b5f6020820190508181035f8301526123fe816123c5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612439600f83611a87565b915061244482612405565b602082019050919050565b5f6020820190508181035f8301526124668161242d565b9050919050565b5f81905092915050565b5f61248182611a7d565b61248b818561246d565b935061249b818560208601611a97565b80840191505092915050565b5f6124b28285612477565b91506124be8284612477565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124fe600983611a87565b9150612509826124ca565b602082019050919050565b5f6020820190508181035f83015261252b816124f2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612566601c83611a87565b915061257182612532565b602082019050919050565b5f6020820190508181035f8301526125938161255a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125d182611b0d565b91506125dc83611b0d565b92508282039050818111156125f4576125f361259a565b5b92915050565b5f61260482611b0d565b915061260f83611b0d565b92508282019050808211156126275761262661259a565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612661601483611a87565b915061266c8261262d565b602082019050919050565b5f6020820190508181035f83015261268e81612655565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6126c9601483611a87565b91506126d482612695565b602082019050919050565b5f6020820190508181035f8301526126f6816126bd565b9050919050565b5f61270782611b0d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127395761273861259a565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61277b82611b0d565b915061278683611b0d565b92508261279657612795612744565b5b828204905092915050565b5f6127ab82611b0d565b91506127b683611b0d565b9250826127c6576127c5612744565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f612832601883611a87565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f60ff82169050919050565b61287b81612866565b82525050565b5f6080820190506128945f830187611e34565b6128a16020830186612872565b6128ae6040830185611e34565b6128bb6060830184611e34565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f6128e8826128c4565b6128f281856128ce565b9350612902818560208601611a97565b61290b81611aa5565b840191505092915050565b5f6080820190506129295f830187611b9b565b6129366020830186611b9b565b6129436040830185611e87565b818103606083015261295581846128de565b905095945050505050565b5f8151905061296e816119f5565b92915050565b5f60208284031215612989576129886119c2565b5b5f61299684828501612960565b9150509291505056fea2646970667358221220fea806b4d99ed734e06294ec7a872e1624962d92800f3f23b30d68f1728f2d2f64736f6c63430008220033","sourceMap":"2250:1719:87:-:0;;;2498:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2582:5;2589:7;1078:5:78;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;2621:7:87::1;2612:16;;;;;;;;::::0;::::1;2498:137:::0;;;2250:1719;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:126::-;2607:7;2647:42;2640:5;2636:54;2625:65;;2570:126;;;:::o;2702:96::-;2739:7;2768:24;2786:5;2768:24;:::i;:::-;2757:35;;2702:96;;;:::o;2804:122::-;2877:24;2895:5;2877:24;:::i;:::-;2870:5;2867:35;2857:63;;2916:1;2913;2906:12;2857:63;2804:122;:::o;2932:143::-;2989:5;3020:6;3014:13;3005:22;;3036:33;3063:5;3036:33;:::i;:::-;2932:143;;;;:::o;3081:1009::-;3189:6;3197;3205;3254:2;3242:9;3233:7;3229:23;3225:32;3222:119;;;3260:79;;:::i;:::-;3222:119;3401:1;3390:9;3386:17;3380:24;3431:18;3423:6;3420:30;3417:117;;;3453:79;;:::i;:::-;3417:117;3558:74;3624:7;3615:6;3604:9;3600:22;3558:74;:::i;:::-;3548:84;;3351:291;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3983:2;4009:64;4065:7;4056:6;4045:9;4041:22;4009:64;:::i;:::-;3999:74;;3954:129;3081:1009;;;;;:::o;4096:99::-;4148:6;4182:5;4176:12;4166:22;;4096:99;;;:::o;4201:180::-;4249:77;4246:1;4239:88;4346:4;4343:1;4336:15;4370:4;4367:1;4360:15;4387:320;4431:6;4468:1;4462:4;4458:12;4448:22;;4515:1;4509:4;4505:12;4536:18;4526:81;;4592:4;4584:6;4580:17;4570:27;;4526:81;4654:2;4646:6;4643:14;4623:18;4620:38;4617:84;;4673:18;;:::i;:::-;4617:84;4438:269;4387:320;;;:::o;4713:141::-;4762:4;4785:3;4777:11;;4808:3;4805:1;4798:14;4842:4;4839:1;4829:18;4821:26;;4713:141;;;:::o;4860:93::-;4897:6;4944:2;4939;4932:5;4928:14;4924:23;4914:33;;4860:93;;;:::o;4959:107::-;5003:8;5053:5;5047:4;5043:16;5022:37;;4959:107;;;;:::o;5072:393::-;5141:6;5191:1;5179:10;5175:18;5214:97;5244:66;5233:9;5214:97;:::i;:::-;5332:39;5362:8;5351:9;5332:39;:::i;:::-;5320:51;;5404:4;5400:9;5393:5;5389:21;5380:30;;5453:4;5443:8;5439:19;5432:5;5429:30;5419:40;;5148:317;;5072:393;;;;;:::o;5471:77::-;5508:7;5537:5;5526:16;;5471:77;;;:::o;5554:60::-;5582:3;5603:5;5596:12;;5554:60;;;:::o;5620:142::-;5670:9;5703:53;5721:34;5730:24;5748:5;5730:24;:::i;:::-;5721:34;:::i;:::-;5703:53;:::i;:::-;5690:66;;5620:142;;;:::o;5768:75::-;5811:3;5832:5;5825:12;;5768:75;;;:::o;5849:269::-;5959:39;5990:7;5959:39;:::i;:::-;6020:91;6069:41;6093:16;6069:41;:::i;:::-;6061:6;6054:4;6048:11;6020:91;:::i;:::-;6014:4;6007:105;5925:193;5849:269;;;:::o;6124:73::-;6169:3;6190:1;6183:8;;6124:73;:::o;6203:189::-;6280:32;;:::i;:::-;6321:65;6379:6;6371;6365:4;6321:65;:::i;:::-;6256:136;6203:189;;:::o;6398:214::-;6483:1;6468:138;6493:9;6490:1;6487:16;6468:138;;;6545:51;6594:1;6590;6579:9;6575:17;6545:51;:::i;:::-;6518:1;6515;6511:9;6506:14;;6468:138;;;6472:14;6398:214;;:::o;6618:746::-;6719:2;6714:3;6711:11;6708:649;;;6748:10;6743:3;6740:19;6737:610;;;6794:38;6826:5;6794:38;:::i;:::-;6869:22;6887:3;6869:22;:::i;:::-;6928:29;6946:10;6928:29;:::i;:::-;7118:2;7106:10;7103:18;7100:79;;;7160:1;7144:17;;7100:79;7229:12;7219:8;7215:27;7259:74;7319:12;7305;7301:31;7288:11;7259:74;:::i;:::-;6760:587;;;;6737:610;6708:649;6618:746;;;:::o;7370:117::-;7424:8;7474:5;7468:4;7464:16;7443:37;;7370:117;;;;:::o;7493:169::-;7537:6;7570:51;7618:1;7614:6;7606:5;7603:1;7599:13;7570:51;:::i;:::-;7566:56;7651:4;7645;7641:15;7631:25;;7544:118;7493:169;;;;:::o;7667:295::-;7743:4;7889:29;7914:3;7908:4;7889:29;:::i;:::-;7881:37;;7951:3;7948:1;7944:11;7938:4;7935:21;7927:29;;7667:295;;;;:::o;7967:1395::-;8084:37;8117:3;8084:37;:::i;:::-;8186:18;8178:6;8175:30;8172:56;;;8208:18;;:::i;:::-;8172:56;8252:38;8284:4;8278:11;8252:38;:::i;:::-;8337:67;8397:6;8389;8383:4;8337:67;:::i;:::-;8431:1;8455:4;8442:17;;8487:2;8479:6;8476:14;8504:1;8499:618;;;;9161:1;9178:6;9175:77;;;9227:9;9222:3;9218:19;9212:26;9203:35;;9175:77;9278:67;9338:6;9331:5;9278:67;:::i;:::-;9272:4;9265:81;9134:222;8469:887;;8499:618;8551:4;8547:9;8539:6;8535:22;8585:37;8617:4;8585:37;:::i;:::-;8644:1;8658:208;8672:7;8669:1;8666:14;8658:208;;;8751:9;8746:3;8742:19;8736:26;8728:6;8721:42;8802:1;8794:6;8790:14;8780:24;;8849:2;8838:9;8834:18;8821:31;;8695:4;8692:1;8688:12;8683:17;;8658:208;;;8894:6;8885:7;8882:19;8879:179;;;8952:9;8947:3;8943:19;8937:26;8995:48;9037:4;9029:6;9025:17;9014:9;8995:48;:::i;:::-;8987:6;8980:64;8902:156;8879:179;9104:1;9100;9092:6;9088:14;9084:22;9078:4;9071:36;8506:611;;;8469:887;;8059:1303;;;7967:1395;;:::o;2250:1719:87:-;;;;;;;;;;;;;;;;;;","linkReferences":{"src/37_Signature/Signature.sol":{"ECDSA":[{"start":4106,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610114575f3560e01c8063630303c6116100a057806395d89b411161006f57806395d89b4114610314578063a22cb46514610332578063b88d4fde1461034e578063c87b56dd1461036a578063e985e9c51461039a57610114565b8063630303c6146102685780636352211e1461029857806370a08231146102c857806394d008ef146102f857610114565b8063238ac933116100e7578063238ac933146101b257806323b872dd146101d0578063258ae582146101ec57806342842e0e1461021c578063512c91df1461023857610114565b806301ffc9a71461011857806306fdde0314610148578063081812fc14610166578063095ea7b314610196575b5f5ffd5b610132600480360381019061012d9190611a1f565b6103ca565b60405161013f9190611a64565b60405180910390f35b610150610503565b60405161015d9190611aed565b60405180910390f35b610180600480360381019061017b9190611b40565b61058e565b60405161018d9190611baa565b60405180910390f35b6101b060048036038101906101ab9190611bed565b610665565b005b6101ba6107a3565b6040516101c79190611baa565b60405180910390f35b6101ea60048036038101906101e59190611c2b565b6107c7565b005b61020660048036038101906102019190611dda565b61082f565b6040516102139190611a64565b60405180910390f35b61023660048036038101906102319190611c2b565b610863565b005b610252600480360381019061024d9190611bed565b610882565b60405161025f9190611e43565b60405180910390f35b610282600480360381019061027d9190611e5c565b6108b4565b60405161028f9190611a64565b60405180910390f35b6102b260048036038101906102ad9190611b40565b6108d1565b6040516102bf9190611baa565b60405180910390f35b6102e260048036038101906102dd9190611e5c565b610978565b6040516102ef9190611e96565b60405180910390f35b610312600480360381019061030d9190611eaf565b610a2c565b005b61031c610beb565b6040516103299190611aed565b60405180910390f35b61034c60048036038101906103479190611f45565b610c77565b005b61036860048036038101906103639190611f83565b610d6f565b005b610384600480360381019061037f9190611b40565b610dd9565b6040516103919190611aed565b60405180910390f35b6103b460048036038101906103af9190612003565b610ed3565b6040516103c19190611a64565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104fc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461050f9061206e565b80601f016020809104026020016040519081016040528092919081815260200182805461053b9061206e565b80156105865780601f1061055d57610100808354040283529160200191610586565b820191905f5260205f20905b81548152906001019060200180831161056957829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906120e8565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610754575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a90612150565b60405180910390fd5b61079e818484610f61565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f6107d1826108d1565b90506107de813384611010565b61081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906121b8565b60405180910390fd5b6108298185858561113b565b50505050565b5f61085b83837f000000000000000000000000000000000000000000000000000000000000000061137a565b905092915050565b61087d83838360405180602001604052805f815250610d6f565b505050565b5f828260405160200161089692919061223b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a906120e8565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906122b0565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a378484610882565b90505f73__$e3d8e53151ebe0b7203e2d17c613eec2e4$__63918a15cf836040518263ffffffff1660e01b8152600401610a7191906122dd565b602060405180830381865af4158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab0919061230a565b9050610abc818461082f565b610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061237f565b60405180910390fd5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c906123e7565b60405180910390fd5b600160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610be485856113bc565b5050505050565b60018054610bf89061206e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c249061206e565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d639190611a64565b60405180910390a35050565b5f610d79836108d1565b9050610d86813385611010565b610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc906121b8565b60405180910390fd5b610dd281868686866115ca565b5050505050565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e709061244f565b60405180910390fd5b5f610e826115e9565b90505f815111610ea05760405180602001604052805f815250610ecb565b80610eaa846115ff565b604051602001610ebb9291906124a7565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806110a657508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611132575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a090612514565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e9061257c565b60405180910390fd5b611222845f83610f61565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461126f91906125c7565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112c391906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f8173ffffffffffffffffffffffffffffffffffffffff1661139c8585611758565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190612677565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906126df565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461151591906125fa565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6115d68585858561113b565b6115e28484848461180e565b5050505050565b606060405180602001604052805f815250905090565b60605f8203611645576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611753565b5f8290505f5b5f821461167457808061165d906126fd565b915050600a8261166d9190612771565b915061164b565b5f8167ffffffffffffffff81111561168f5761168e611cb6565b5b6040519080825280601f01601f1916602001820160405280156116c15781602001600182028036833780820191505090505b5090505b5f851461174c576001826116d991906125c7565b9150600a856116e891906127a1565b60306116f491906125fa565b60f81b81838151811061170a576117096127d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a856117459190612771565b94506116c5565b8093505050505b919050565b5f604182511461179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179490612848565b60405180910390fd5b5f5f5f602085015192506040850151915060608501515f1a90506001868285856040515f81526020016040526040516117d99493929190612881565b6020604051602081039080840390855afa1580156117f9573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156119b3578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b815260040161186c9493929190612916565b6020604051808303815f875af19250505080156118a757506040513d601f19601f820116820180604052508101906118a49190612974565b60015b611928573d805f81146118d5576040519150601f19603f3d011682016040523d82523d5f602084013e6118da565b606091505b505f81510361192057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119179190611baa565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119b157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119a89190611baa565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119fe816119ca565b8114611a08575f5ffd5b50565b5f81359050611a19816119f5565b92915050565b5f60208284031215611a3457611a336119c2565b5b5f611a4184828501611a0b565b91505092915050565b5f8115159050919050565b611a5e81611a4a565b82525050565b5f602082019050611a775f830184611a55565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611abf82611a7d565b611ac98185611a87565b9350611ad9818560208601611a97565b611ae281611aa5565b840191505092915050565b5f6020820190508181035f830152611b058184611ab5565b905092915050565b5f819050919050565b611b1f81611b0d565b8114611b29575f5ffd5b50565b5f81359050611b3a81611b16565b92915050565b5f60208284031215611b5557611b546119c2565b5b5f611b6284828501611b2c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9482611b6b565b9050919050565b611ba481611b8a565b82525050565b5f602082019050611bbd5f830184611b9b565b92915050565b611bcc81611b8a565b8114611bd6575f5ffd5b50565b5f81359050611be781611bc3565b92915050565b5f5f60408385031215611c0357611c026119c2565b5b5f611c1085828601611bd9565b9250506020611c2185828601611b2c565b9150509250929050565b5f5f5f60608486031215611c4257611c416119c2565b5b5f611c4f86828701611bd9565b9350506020611c6086828701611bd9565b9250506040611c7186828701611b2c565b9150509250925092565b5f819050919050565b611c8d81611c7b565b8114611c97575f5ffd5b50565b5f81359050611ca881611c84565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611cec82611aa5565b810181811067ffffffffffffffff82111715611d0b57611d0a611cb6565b5b80604052505050565b5f611d1d6119b9565b9050611d298282611ce3565b919050565b5f67ffffffffffffffff821115611d4857611d47611cb6565b5b611d5182611aa5565b9050602081019050919050565b828183375f83830152505050565b5f611d7e611d7984611d2e565b611d14565b905082815260208101848484011115611d9a57611d99611cb2565b5b611da5848285611d5e565b509392505050565b5f82601f830112611dc157611dc0611cae565b5b8135611dd1848260208601611d6c565b91505092915050565b5f5f60408385031215611df057611def6119c2565b5b5f611dfd85828601611c9a565b925050602083013567ffffffffffffffff811115611e1e57611e1d6119c6565b5b611e2a85828601611dad565b9150509250929050565b611e3d81611c7b565b82525050565b5f602082019050611e565f830184611e34565b92915050565b5f60208284031215611e7157611e706119c2565b5b5f611e7e84828501611bd9565b91505092915050565b611e9081611b0d565b82525050565b5f602082019050611ea95f830184611e87565b92915050565b5f5f5f60608486031215611ec657611ec56119c2565b5b5f611ed386828701611bd9565b9350506020611ee486828701611b2c565b925050604084013567ffffffffffffffff811115611f0557611f046119c6565b5b611f1186828701611dad565b9150509250925092565b611f2481611a4a565b8114611f2e575f5ffd5b50565b5f81359050611f3f81611f1b565b92915050565b5f5f60408385031215611f5b57611f5a6119c2565b5b5f611f6885828601611bd9565b9250506020611f7985828601611f31565b9150509250929050565b5f5f5f5f60808587031215611f9b57611f9a6119c2565b5b5f611fa887828801611bd9565b9450506020611fb987828801611bd9565b9350506040611fca87828801611b2c565b925050606085013567ffffffffffffffff811115611feb57611fea6119c6565b5b611ff787828801611dad565b91505092959194509250565b5f5f60408385031215612019576120186119c2565b5b5f61202685828601611bd9565b925050602061203785828601611bd9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061208557607f821691505b60208210810361209857612097612041565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f6120d2601383611a87565b91506120dd8261209e565b602082019050919050565b5f6020820190508181035f8301526120ff816120c6565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f61213a601e83611a87565b915061214582612106565b602082019050919050565b5f6020820190508181035f8301526121678161212e565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f6121a2601683611a87565b91506121ad8261216e565b602082019050919050565b5f6020820190508181035f8301526121cf81612196565b9050919050565b5f8160601b9050919050565b5f6121ec826121d6565b9050919050565b5f6121fd826121e2565b9050919050565b61221561221082611b8a565b6121f3565b82525050565b5f819050919050565b61223561223082611b0d565b61221b565b82525050565b5f6122468285612204565b6014820191506122568284612224565b6020820191508190509392505050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f61229a601483611a87565b91506122a582612266565b602082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b6122d781611c7b565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b5f8151905061230481611c84565b92915050565b5f6020828403121561231f5761231e6119c2565b5b5f61232c848285016122f6565b91505092915050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f612369601183611a87565b915061237482612335565b602082019050919050565b5f6020820190508181035f8301526123968161235d565b9050919050565b7f416c7265616479206d696e7465642100000000000000000000000000000000005f82015250565b5f6123d1600f83611a87565b91506123dc8261239d565b602082019050919050565b5f6020820190508181035f8301526123fe816123c5565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f612439600f83611a87565b915061244482612405565b602082019050919050565b5f6020820190508181035f8301526124668161242d565b9050919050565b5f81905092915050565b5f61248182611a7d565b61248b818561246d565b935061249b818560208601611a97565b80840191505092915050565b5f6124b28285612477565b91506124be8284612477565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124fe600983611a87565b9150612509826124ca565b602082019050919050565b5f6020820190508181035f83015261252b816124f2565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f612566601c83611a87565b915061257182612532565b602082019050919050565b5f6020820190508181035f8301526125938161255a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125d182611b0d565b91506125dc83611b0d565b92508282039050818111156125f4576125f361259a565b5b92915050565b5f61260482611b0d565b915061260f83611b0d565b92508282019050808211156126275761262661259a565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f612661601483611a87565b915061266c8261262d565b602082019050919050565b5f6020820190508181035f83015261268e81612655565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6126c9601483611a87565b91506126d482612695565b602082019050919050565b5f6020820190508181035f8301526126f6816126bd565b9050919050565b5f61270782611b0d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127395761273861259a565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61277b82611b0d565b915061278683611b0d565b92508261279657612795612744565b5b828204905092915050565b5f6127ab82611b0d565b91506127b683611b0d565b9250826127c6576127c5612744565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f612832601883611a87565b915061283d826127fe565b602082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f60ff82169050919050565b61287b81612866565b82525050565b5f6080820190506128945f830187611e34565b6128a16020830186612872565b6128ae6040830185611e34565b6128bb6060830184611e34565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f6128e8826128c4565b6128f281856128ce565b9350612902818560208601611a97565b61290b81611aa5565b840191505092915050565b5f6080820190506129295f830187611b9b565b6129366020830186611b9b565b6129436040830185611e87565b818103606083015261295581846128de565b905095945050505050565b5f8151905061296e816119f5565b92915050565b5f60208284031215612989576129886119c2565b5b5f61299684828501612960565b9150509291505056fea2646970667358221220fea806b4d99ed734e06294ec7a872e1624962d92800f3f23b30d68f1728f2d2f64736f6c63430008220033","sourceMap":"2250:1719:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2288:31:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4874:329:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3807:160:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6437:170:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3589:159:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2341:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1833:178:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2679:624:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;380:29:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;2288:31:87:-;;;:::o;4874:329:78:-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;3807:160:87:-;3891:4;3918:42;3931:8;3941:10;3953:6;3918:12;:42::i;:::-;3911:49;;3807:160;;;;:::o;6437:170:78:-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;3589:159:87:-;3669:7;3721:8;3731;3704:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3694:47;;;;;;3687:54;;3589:159;;;;:::o;2341:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;1833:178:78:-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;2679:624:87:-;2781:16;2800:34;2815:8;2825;2800:14;:34::i;:::-;2781:53;;2882:29;2914:5;:28;2943:8;2914:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2882:70;;3001:41;3008:21;3031:10;3001:6;:41::i;:::-;2993:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3104:13;:23;3118:8;3104:23;;;;;;;;;;;;;;;;;;;;;;;;;3103:24;3095:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3223:4;3197:13;:23;3211:8;3197:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;3263:25;3269:8;3279;3263:5;:25::i;:::-;2771:532;;2679:624;;;:::o;380:29:78:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;8844:311::-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;314:175:87:-;413:4;475:7;436:46;;:35;450:8;460:10;436:13;:35::i;:::-;:46;;;429:53;;314:175;;;;;:::o;7051:306:78:-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;9367:92::-;9418:13;9443:9;;;;;;;;;;;;;;9367:92;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;559:1084:87:-;648:7;759:2;738:10;:17;:23;730:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;800:9;819;838:7;1309:4;1297:10;1293:21;1287:28;1282:33;;1394:4;1382:10;1378:21;1372:28;1367:33;;1486:4;1474:10;1470:21;1464:28;1461:1;1456:37;1451:42;;1608:28;1618:8;1628:1;1631;1634;1608:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1601:35;;;;;559:1084;;;;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:77::-;5445:7;5474:5;5463:16;;5408:77;;;:::o;5491:122::-;5564:24;5582:5;5564:24;:::i;:::-;5557:5;5554:35;5544:63;;5603:1;5600;5593:12;5544:63;5491:122;:::o;5619:139::-;5665:5;5703:6;5690:20;5681:29;;5719:33;5746:5;5719:33;:::i;:::-;5619:139;;;;:::o;5764:117::-;5873:1;5870;5863:12;5887:117;5996:1;5993;5986:12;6010:180;6058:77;6055:1;6048:88;6155:4;6152:1;6145:15;6179:4;6176:1;6169:15;6196:281;6279:27;6301:4;6279:27;:::i;:::-;6271:6;6267:40;6409:6;6397:10;6394:22;6373:18;6361:10;6358:34;6355:62;6352:88;;;6420:18;;:::i;:::-;6352:88;6460:10;6456:2;6449:22;6239:238;6196:281;;:::o;6483:129::-;6517:6;6544:20;;:::i;:::-;6534:30;;6573:33;6601:4;6593:6;6573:33;:::i;:::-;6483:129;;;:::o;6618:307::-;6679:4;6769:18;6761:6;6758:30;6755:56;;;6791:18;;:::i;:::-;6755:56;6829:29;6851:6;6829:29;:::i;:::-;6821:37;;6913:4;6907;6903:15;6895:23;;6618:307;;;:::o;6931:148::-;7029:6;7024:3;7019;7006:30;7070:1;7061:6;7056:3;7052:16;7045:27;6931:148;;;:::o;7085:423::-;7162:5;7187:65;7203:48;7244:6;7203:48;:::i;:::-;7187:65;:::i;:::-;7178:74;;7275:6;7268:5;7261:21;7313:4;7306:5;7302:16;7351:3;7342:6;7337:3;7333:16;7330:25;7327:112;;;7358:79;;:::i;:::-;7327:112;7448:54;7495:6;7490:3;7485;7448:54;:::i;:::-;7168:340;7085:423;;;;;:::o;7527:338::-;7582:5;7631:3;7624:4;7616:6;7612:17;7608:27;7598:122;;7639:79;;:::i;:::-;7598:122;7756:6;7743:20;7781:78;7855:3;7847:6;7840:4;7832:6;7828:17;7781:78;:::i;:::-;7772:87;;7588:277;7527:338;;;;:::o;7871:652::-;7948:6;7956;8005:2;7993:9;7984:7;7980:23;7976:32;7973:119;;;8011:79;;:::i;:::-;7973:119;8131:1;8156:53;8201:7;8192:6;8181:9;8177:22;8156:53;:::i;:::-;8146:63;;8102:117;8286:2;8275:9;8271:18;8258:32;8317:18;8309:6;8306:30;8303:117;;;8339:79;;:::i;:::-;8303:117;8444:62;8498:7;8489:6;8478:9;8474:22;8444:62;:::i;:::-;8434:72;;8229:287;7871:652;;;;;:::o;8529:118::-;8616:24;8634:5;8616:24;:::i;:::-;8611:3;8604:37;8529:118;;:::o;8653:222::-;8746:4;8784:2;8773:9;8769:18;8761:26;;8797:71;8865:1;8854:9;8850:17;8841:6;8797:71;:::i;:::-;8653:222;;;;:::o;8881:329::-;8940:6;8989:2;8977:9;8968:7;8964:23;8960:32;8957:119;;;8995:79;;:::i;:::-;8957:119;9115:1;9140:53;9185:7;9176:6;9165:9;9161:22;9140:53;:::i;:::-;9130:63;;9086:117;8881:329;;;;:::o;9216:118::-;9303:24;9321:5;9303:24;:::i;:::-;9298:3;9291:37;9216:118;;:::o;9340:222::-;9433:4;9471:2;9460:9;9456:18;9448:26;;9484:71;9552:1;9541:9;9537:17;9528:6;9484:71;:::i;:::-;9340:222;;;;:::o;9568:797::-;9654:6;9662;9670;9719:2;9707:9;9698:7;9694:23;9690:32;9687:119;;;9725:79;;:::i;:::-;9687:119;9845:1;9870:53;9915:7;9906:6;9895:9;9891:22;9870:53;:::i;:::-;9860:63;;9816:117;9972:2;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9943:118;10128:2;10117:9;10113:18;10100:32;10159:18;10151:6;10148:30;10145:117;;;10181:79;;:::i;:::-;10145:117;10286:62;10340:7;10331:6;10320:9;10316:22;10286:62;:::i;:::-;10276:72;;10071:287;9568:797;;;;;:::o;10371:116::-;10441:21;10456:5;10441:21;:::i;:::-;10434:5;10431:32;10421:60;;10477:1;10474;10467:12;10421:60;10371:116;:::o;10493:133::-;10536:5;10574:6;10561:20;10552:29;;10590:30;10614:5;10590:30;:::i;:::-;10493:133;;;;:::o;10632:468::-;10697:6;10705;10754:2;10742:9;10733:7;10729:23;10725:32;10722:119;;;10760:79;;:::i;:::-;10722:119;10880:1;10905:53;10950:7;10941:6;10930:9;10926:22;10905:53;:::i;:::-;10895:63;;10851:117;11007:2;11033:50;11075:7;11066:6;11055:9;11051:22;11033:50;:::i;:::-;11023:60;;10978:115;10632:468;;;;;:::o;11106:943::-;11201:6;11209;11217;11225;11274:3;11262:9;11253:7;11249:23;11245:33;11242:120;;;11281:79;;:::i;:::-;11242:120;11401:1;11426:53;11471:7;11462:6;11451:9;11447:22;11426:53;:::i;:::-;11416:63;;11372:117;11528:2;11554:53;11599:7;11590:6;11579:9;11575:22;11554:53;:::i;:::-;11544:63;;11499:118;11656:2;11682:53;11727:7;11718:6;11707:9;11703:22;11682:53;:::i;:::-;11672:63;;11627:118;11812:2;11801:9;11797:18;11784:32;11843:18;11835:6;11832:30;11829:117;;;11865:79;;:::i;:::-;11829:117;11970:62;12024:7;12015:6;12004:9;12000:22;11970:62;:::i;:::-;11960:72;;11755:287;11106:943;;;;;;;:::o;12055:474::-;12123:6;12131;12180:2;12168:9;12159:7;12155:23;12151:32;12148:119;;;12186:79;;:::i;:::-;12148:119;12306:1;12331:53;12376:7;12367:6;12356:9;12352:22;12331:53;:::i;:::-;12321:63;;12277:117;12433:2;12459:53;12504:7;12495:6;12484:9;12480:22;12459:53;:::i;:::-;12449:63;;12404:118;12055:474;;;;;:::o;12535:180::-;12583:77;12580:1;12573:88;12680:4;12677:1;12670:15;12704:4;12701:1;12694:15;12721:320;12765:6;12802:1;12796:4;12792:12;12782:22;;12849:1;12843:4;12839:12;12870:18;12860:81;;12926:4;12918:6;12914:17;12904:27;;12860:81;12988:2;12980:6;12977:14;12957:18;12954:38;12951:84;;13007:18;;:::i;:::-;12951:84;12772:269;12721:320;;;:::o;13047:169::-;13187:21;13183:1;13175:6;13171:14;13164:45;13047:169;:::o;13222:366::-;13364:3;13385:67;13449:2;13444:3;13385:67;:::i;:::-;13378:74;;13461:93;13550:3;13461:93;:::i;:::-;13579:2;13574:3;13570:12;13563:19;;13222:366;;;:::o;13594:419::-;13760:4;13798:2;13787:9;13783:18;13775:26;;13847:9;13841:4;13837:20;13833:1;13822:9;13818:17;13811:47;13875:131;14001:4;13875:131;:::i;:::-;13867:139;;13594:419;;;:::o;14019:180::-;14159:32;14155:1;14147:6;14143:14;14136:56;14019:180;:::o;14205:366::-;14347:3;14368:67;14432:2;14427:3;14368:67;:::i;:::-;14361:74;;14444:93;14533:3;14444:93;:::i;:::-;14562:2;14557:3;14553:12;14546:19;;14205:366;;;:::o;14577:419::-;14743:4;14781:2;14770:9;14766:18;14758:26;;14830:9;14824:4;14820:20;14816:1;14805:9;14801:17;14794:47;14858:131;14984:4;14858:131;:::i;:::-;14850:139;;14577:419;;;:::o;15002:172::-;15142:24;15138:1;15130:6;15126:14;15119:48;15002:172;:::o;15180:366::-;15322:3;15343:67;15407:2;15402:3;15343:67;:::i;:::-;15336:74;;15419:93;15508:3;15419:93;:::i;:::-;15537:2;15532:3;15528:12;15521:19;;15180:366;;;:::o;15552:419::-;15718:4;15756:2;15745:9;15741:18;15733:26;;15805:9;15799:4;15795:20;15791:1;15780:9;15776:17;15769:47;15833:131;15959:4;15833:131;:::i;:::-;15825:139;;15552:419;;;:::o;15977:94::-;16010:8;16058:5;16054:2;16050:14;16029:35;;15977:94;;;:::o;16077:::-;16116:7;16145:20;16159:5;16145:20;:::i;:::-;16134:31;;16077:94;;;:::o;16177:100::-;16216:7;16245:26;16265:5;16245:26;:::i;:::-;16234:37;;16177:100;;;:::o;16283:157::-;16388:45;16408:24;16426:5;16408:24;:::i;:::-;16388:45;:::i;:::-;16383:3;16376:58;16283:157;;:::o;16446:79::-;16485:7;16514:5;16503:16;;16446:79;;;:::o;16531:157::-;16636:45;16656:24;16674:5;16656:24;:::i;:::-;16636:45;:::i;:::-;16631:3;16624:58;16531:157;;:::o;16694:397::-;16834:3;16849:75;16920:3;16911:6;16849:75;:::i;:::-;16949:2;16944:3;16940:12;16933:19;;16962:75;17033:3;17024:6;16962:75;:::i;:::-;17062:2;17057:3;17053:12;17046:19;;17082:3;17075:10;;16694:397;;;;;:::o;17097:170::-;17237:22;17233:1;17225:6;17221:14;17214:46;17097:170;:::o;17273:366::-;17415:3;17436:67;17500:2;17495:3;17436:67;:::i;:::-;17429:74;;17512:93;17601:3;17512:93;:::i;:::-;17630:2;17625:3;17621:12;17614:19;;17273:366;;;:::o;17645:419::-;17811:4;17849:2;17838:9;17834:18;17826:26;;17898:9;17892:4;17888:20;17884:1;17873:9;17869:17;17862:47;17926:131;18052:4;17926:131;:::i;:::-;17918:139;;17645:419;;;:::o;18070:126::-;18165:24;18183:5;18165:24;:::i;:::-;18160:3;18153:37;18070:126;;:::o;18202:238::-;18303:4;18341:2;18330:9;18326:18;18318:26;;18354:79;18430:1;18419:9;18415:17;18406:6;18354:79;:::i;:::-;18202:238;;;;:::o;18446:143::-;18503:5;18534:6;18528:13;18519:22;;18550:33;18577:5;18550:33;:::i;:::-;18446:143;;;;:::o;18595:351::-;18665:6;18714:2;18702:9;18693:7;18689:23;18685:32;18682:119;;;18720:79;;:::i;:::-;18682:119;18840:1;18865:64;18921:7;18912:6;18901:9;18897:22;18865:64;:::i;:::-;18855:74;;18811:128;18595:351;;;;:::o;18952:167::-;19092:19;19088:1;19080:6;19076:14;19069:43;18952:167;:::o;19125:366::-;19267:3;19288:67;19352:2;19347:3;19288:67;:::i;:::-;19281:74;;19364:93;19453:3;19364:93;:::i;:::-;19482:2;19477:3;19473:12;19466:19;;19125:366;;;:::o;19497:419::-;19663:4;19701:2;19690:9;19686:18;19678:26;;19750:9;19744:4;19740:20;19736:1;19725:9;19721:17;19714:47;19778:131;19904:4;19778:131;:::i;:::-;19770:139;;19497:419;;;:::o;19922:165::-;20062:17;20058:1;20050:6;20046:14;20039:41;19922:165;:::o;20093:366::-;20235:3;20256:67;20320:2;20315:3;20256:67;:::i;:::-;20249:74;;20332:93;20421:3;20332:93;:::i;:::-;20450:2;20445:3;20441:12;20434:19;;20093:366;;;:::o;20465:419::-;20631:4;20669:2;20658:9;20654:18;20646:26;;20718:9;20712:4;20708:20;20704:1;20693:9;20689:17;20682:47;20746:131;20872:4;20746:131;:::i;:::-;20738:139;;20465:419;;;:::o;20890:165::-;21030:17;21026:1;21018:6;21014:14;21007:41;20890:165;:::o;21061:366::-;21203:3;21224:67;21288:2;21283:3;21224:67;:::i;:::-;21217:74;;21300:93;21389:3;21300:93;:::i;:::-;21418:2;21413:3;21409:12;21402:19;;21061:366;;;:::o;21433:419::-;21599:4;21637:2;21626:9;21622:18;21614:26;;21686:9;21680:4;21676:20;21672:1;21661:9;21657:17;21650:47;21714:131;21840:4;21714:131;:::i;:::-;21706:139;;21433:419;;;:::o;21858:148::-;21960:11;21997:3;21982:18;;21858:148;;;;:::o;22012:390::-;22118:3;22146:39;22179:5;22146:39;:::i;:::-;22201:89;22283:6;22278:3;22201:89;:::i;:::-;22194:96;;22299:65;22357:6;22352:3;22345:4;22338:5;22334:16;22299:65;:::i;:::-;22389:6;22384:3;22380:16;22373:23;;22122:280;22012:390;;;;:::o;22408:435::-;22588:3;22610:95;22701:3;22692:6;22610:95;:::i;:::-;22603:102;;22722:95;22813:3;22804:6;22722:95;:::i;:::-;22715:102;;22834:3;22827:10;;22408:435;;;;;:::o;22849:159::-;22989:11;22985:1;22977:6;22973:14;22966:35;22849:159;:::o;23014:365::-;23156:3;23177:66;23241:1;23236:3;23177:66;:::i;:::-;23170:73;;23252:93;23341:3;23252:93;:::i;:::-;23370:2;23365:3;23361:12;23354:19;;23014:365;;;:::o;23385:419::-;23551:4;23589:2;23578:9;23574:18;23566:26;;23638:9;23632:4;23628:20;23624:1;23613:9;23609:17;23602:47;23666:131;23792:4;23666:131;:::i;:::-;23658:139;;23385:419;;;:::o;23810:178::-;23950:30;23946:1;23938:6;23934:14;23927:54;23810:178;:::o;23994:366::-;24136:3;24157:67;24221:2;24216:3;24157:67;:::i;:::-;24150:74;;24233:93;24322:3;24233:93;:::i;:::-;24351:2;24346:3;24342:12;24335:19;;23994:366;;;:::o;24366:419::-;24532:4;24570:2;24559:9;24555:18;24547:26;;24619:9;24613:4;24609:20;24605:1;24594:9;24590:17;24583:47;24647:131;24773:4;24647:131;:::i;:::-;24639:139;;24366:419;;;:::o;24791:180::-;24839:77;24836:1;24829:88;24936:4;24933:1;24926:15;24960:4;24957:1;24950:15;24977:194;25017:4;25037:20;25055:1;25037:20;:::i;:::-;25032:25;;25071:20;25089:1;25071:20;:::i;:::-;25066:25;;25115:1;25112;25108:9;25100:17;;25139:1;25133:4;25130:11;25127:37;;;25144:18;;:::i;:::-;25127:37;24977:194;;;;:::o;25177:191::-;25217:3;25236:20;25254:1;25236:20;:::i;:::-;25231:25;;25270:20;25288:1;25270:20;:::i;:::-;25265:25;;25313:1;25310;25306:9;25299:16;;25334:3;25331:1;25328:10;25325:36;;;25341:18;;:::i;:::-;25325:36;25177:191;;;;:::o;25374:170::-;25514:22;25510:1;25502:6;25498:14;25491:46;25374:170;:::o;25550:366::-;25692:3;25713:67;25777:2;25772:3;25713:67;:::i;:::-;25706:74;;25789:93;25878:3;25789:93;:::i;:::-;25907:2;25902:3;25898:12;25891:19;;25550:366;;;:::o;25922:419::-;26088:4;26126:2;26115:9;26111:18;26103:26;;26175:9;26169:4;26165:20;26161:1;26150:9;26146:17;26139:47;26203:131;26329:4;26203:131;:::i;:::-;26195:139;;25922:419;;;:::o;26347:170::-;26487:22;26483:1;26475:6;26471:14;26464:46;26347:170;:::o;26523:366::-;26665:3;26686:67;26750:2;26745:3;26686:67;:::i;:::-;26679:74;;26762:93;26851:3;26762:93;:::i;:::-;26880:2;26875:3;26871:12;26864:19;;26523:366;;;:::o;26895:419::-;27061:4;27099:2;27088:9;27084:18;27076:26;;27148:9;27142:4;27138:20;27134:1;27123:9;27119:17;27112:47;27176:131;27302:4;27176:131;:::i;:::-;27168:139;;26895:419;;;:::o;27320:233::-;27359:3;27382:24;27400:5;27382:24;:::i;:::-;27373:33;;27428:66;27421:5;27418:77;27415:103;;27498:18;;:::i;:::-;27415:103;27545:1;27538:5;27534:13;27527:20;;27320:233;;;:::o;27559:180::-;27607:77;27604:1;27597:88;27704:4;27701:1;27694:15;27728:4;27725:1;27718:15;27745:185;27785:1;27802:20;27820:1;27802:20;:::i;:::-;27797:25;;27836:20;27854:1;27836:20;:::i;:::-;27831:25;;27875:1;27865:35;;27880:18;;:::i;:::-;27865:35;27922:1;27919;27915:9;27910:14;;27745:185;;;;:::o;27936:176::-;27968:1;27985:20;28003:1;27985:20;:::i;:::-;27980:25;;28019:20;28037:1;28019:20;:::i;:::-;28014:25;;28058:1;28048:35;;28063:18;;:::i;:::-;28048:35;28104:1;28101;28097:9;28092:14;;27936:176;;;;:::o;28118:180::-;28166:77;28163:1;28156:88;28263:4;28260:1;28253:15;28287:4;28284:1;28277:15;28304:174;28444:26;28440:1;28432:6;28428:14;28421:50;28304:174;:::o;28484:366::-;28626:3;28647:67;28711:2;28706:3;28647:67;:::i;:::-;28640:74;;28723:93;28812:3;28723:93;:::i;:::-;28841:2;28836:3;28832:12;28825:19;;28484:366;;;:::o;28856:419::-;29022:4;29060:2;29049:9;29045:18;29037:26;;29109:9;29103:4;29099:20;29095:1;29084:9;29080:17;29073:47;29137:131;29263:4;29137:131;:::i;:::-;29129:139;;28856:419;;;:::o;29281:86::-;29316:7;29356:4;29349:5;29345:16;29334:27;;29281:86;;;:::o;29373:112::-;29456:22;29472:5;29456:22;:::i;:::-;29451:3;29444:35;29373:112;;:::o;29491:545::-;29664:4;29702:3;29691:9;29687:19;29679:27;;29716:71;29784:1;29773:9;29769:17;29760:6;29716:71;:::i;:::-;29797:68;29861:2;29850:9;29846:18;29837:6;29797:68;:::i;:::-;29875:72;29943:2;29932:9;29928:18;29919:6;29875:72;:::i;:::-;29957;30025:2;30014:9;30010:18;30001:6;29957:72;:::i;:::-;29491:545;;;;;;;:::o;30042:98::-;30093:6;30127:5;30121:12;30111:22;;30042:98;;;:::o;30146:168::-;30229:11;30263:6;30258:3;30251:19;30303:4;30298:3;30294:14;30279:29;;30146:168;;;;:::o;30320:373::-;30406:3;30434:38;30466:5;30434:38;:::i;:::-;30488:70;30551:6;30546:3;30488:70;:::i;:::-;30481:77;;30567:65;30625:6;30620:3;30613:4;30606:5;30602:16;30567:65;:::i;:::-;30657:29;30679:6;30657:29;:::i;:::-;30652:3;30648:39;30641:46;;30410:283;30320:373;;;;:::o;30699:640::-;30894:4;30932:3;30921:9;30917:19;30909:27;;30946:71;31014:1;31003:9;30999:17;30990:6;30946:71;:::i;:::-;31027:72;31095:2;31084:9;31080:18;31071:6;31027:72;:::i;:::-;31109;31177:2;31166:9;31162:18;31153:6;31109:72;:::i;:::-;31228:9;31222:4;31218:20;31213:2;31202:9;31198:18;31191:48;31256:76;31327:4;31318:6;31256:76;:::i;:::-;31248:84;;30699:640;;;;;;;:::o;31345:141::-;31401:5;31432:6;31426:13;31417:22;;31448:32;31474:5;31448:32;:::i;:::-;31345:141;;;;:::o;31492:349::-;31561:6;31610:2;31598:9;31589:7;31585:23;31581:32;31578:119;;;31616:79;;:::i;:::-;31578:119;31736:1;31761:63;31816:7;31807:6;31796:9;31792:22;31761:63;:::i;:::-;31751:73;;31707:127;31492:349;;;;:::o","linkReferences":{"src/37_Signature/Signature.sol":{"ECDSA":[{"start":2620,"length":20}]}},"immutableReferences":{"55068":[{"start":1957,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","getMessageHash(address,uint256)":"512c91df","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,bytes)":"94d008ef","mintedAddress(address)":"630303c6","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","signer()":"238ac933","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","verify(bytes32,bytes)":"258ae582"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"SignatureNFT\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[],"stateMutability":"view","type":"function","name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"bytes32","name":"_msgHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"SignatureNFT"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/out/Signature.sol/VerifySignature.json b/out/Signature.sol/VerifySignature.json index 8e2aa9d2..d3e7354a 100644 --- a/out/Signature.sol/VerifySignature.json +++ b/out/Signature.sol/VerifySignature.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getEthSignedMessageHash","inputs":[{"name":"_messageHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getMessageHash","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"recoverSigner","inputs":[{"name":"_ethSignedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"splitSignature","inputs":[{"name":"sig","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"verify","inputs":[{"name":"_signer","type":"address","internalType":"address"},{"name":"_addr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061095d8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063512c91df1461005957806393e9f8fc1461008957806397aba7f9146100b9578063a7bb5803146100e9578063fa5408011461011b575b5f5ffd5b610073600480360381019061006e9190610377565b61014b565b60405161008091906103cd565b60405180910390f35b6100a3600480360381019061009e9190610522565b61017d565b6040516100b091906105bc565b60405180910390f35b6100d360048036038101906100ce91906105ff565b6101db565b6040516100e09190610668565b60405180910390f35b61010360048036038101906100fe9190610681565b610245565b604051610112939291906106e3565b60405180910390f35b61013560048036038101906101309190610718565b6102aa565b60405161014291906103cd565b60405180910390f35b5f828260405160200161015f9291906107a8565b60405160208183030381529060405280519060200120905092915050565b5f5f610189858561014b565b90505f610195826102aa565b90508673ffffffffffffffffffffffffffffffffffffffff166101b882866101db565b73ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b5f5f5f5f6101e885610245565b9250925092506001868285856040515f815260200160405260405161021094939291906107d3565b6020604051602081039080840390855afa158015610230573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f5f5f604184511461028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390610870565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b5f816040516020016102bc9190610902565b604051602081830303815290604052805190602001209050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610313826102ea565b9050919050565b61032381610309565b811461032d575f5ffd5b50565b5f8135905061033e8161031a565b92915050565b5f819050919050565b61035681610344565b8114610360575f5ffd5b50565b5f813590506103718161034d565b92915050565b5f5f6040838503121561038d5761038c6102e2565b5b5f61039a85828601610330565b92505060206103ab85828601610363565b9150509250929050565b5f819050919050565b6103c7816103b5565b82525050565b5f6020820190506103e05f8301846103be565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610434826103ee565b810181811067ffffffffffffffff82111715610453576104526103fe565b5b80604052505050565b5f6104656102d9565b9050610471828261042b565b919050565b5f67ffffffffffffffff8211156104905761048f6103fe565b5b610499826103ee565b9050602081019050919050565b828183375f83830152505050565b5f6104c66104c184610476565b61045c565b9050828152602081018484840111156104e2576104e16103ea565b5b6104ed8482856104a6565b509392505050565b5f82601f830112610509576105086103e6565b5b81356105198482602086016104b4565b91505092915050565b5f5f5f5f6080858703121561053a576105396102e2565b5b5f61054787828801610330565b945050602061055887828801610330565b935050604061056987828801610363565b925050606085013567ffffffffffffffff81111561058a576105896102e6565b5b610596878288016104f5565b91505092959194509250565b5f8115159050919050565b6105b6816105a2565b82525050565b5f6020820190506105cf5f8301846105ad565b92915050565b6105de816103b5565b81146105e8575f5ffd5b50565b5f813590506105f9816105d5565b92915050565b5f5f60408385031215610615576106146102e2565b5b5f610622858286016105eb565b925050602083013567ffffffffffffffff811115610643576106426102e6565b5b61064f858286016104f5565b9150509250929050565b61066281610309565b82525050565b5f60208201905061067b5f830184610659565b92915050565b5f60208284031215610696576106956102e2565b5b5f82013567ffffffffffffffff8111156106b3576106b26102e6565b5b6106bf848285016104f5565b91505092915050565b5f60ff82169050919050565b6106dd816106c8565b82525050565b5f6060820190506106f65f8301866103be565b61070360208301856103be565b61071060408301846106d4565b949350505050565b5f6020828403121561072d5761072c6102e2565b5b5f61073a848285016105eb565b91505092915050565b5f8160601b9050919050565b5f61075982610743565b9050919050565b5f61076a8261074f565b9050919050565b61078261077d82610309565b610760565b82525050565b5f819050919050565b6107a261079d82610344565b610788565b82525050565b5f6107b38285610771565b6014820191506107c38284610791565b6020820191508190509392505050565b5f6080820190506107e65f8301876103be565b6107f360208301866106d4565b61080060408301856103be565b61080d60608301846103be565b95945050505050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f61085a601883610816565b915061086582610826565b602082019050919050565b5f6020820190508181035f8301526108878161084e565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f6108cc601c8361088e565b91506108d782610898565b601c82019050919050565b5f819050919050565b6108fc6108f7826103b5565b6108e2565b82525050565b5f61090c826108c0565b915061091882846108eb565b6020820191508190509291505056fea26469706673582212206103b0ffb7395183469f1287b34d19b041647c988f26d746c057c061e1637d2764736f6c63430008220033","sourceMap":"4284:3388:93:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063512c91df1461005957806393e9f8fc1461008957806397aba7f9146100b9578063a7bb5803146100e9578063fa5408011461011b575b5f5ffd5b610073600480360381019061006e9190610377565b61014b565b60405161008091906103cd565b60405180910390f35b6100a3600480360381019061009e9190610522565b61017d565b6040516100b091906105bc565b60405180910390f35b6100d360048036038101906100ce91906105ff565b6101db565b6040516100e09190610668565b60405180910390f35b61010360048036038101906100fe9190610681565b610245565b604051610112939291906106e3565b60405180910390f35b61013560048036038101906101309190610718565b6102aa565b60405161014291906103cd565b60405180910390f35b5f828260405160200161015f9291906107a8565b60405160208183030381529060405280519060200120905092915050565b5f5f610189858561014b565b90505f610195826102aa565b90508673ffffffffffffffffffffffffffffffffffffffff166101b882866101db565b73ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b5f5f5f5f6101e885610245565b9250925092506001868285856040515f815260200160405260405161021094939291906107d3565b6020604051602081039080840390855afa158015610230573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f5f5f604184511461028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390610870565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b5f816040516020016102bc9190610902565b604051602081830303815290604052805190602001209050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610313826102ea565b9050919050565b61032381610309565b811461032d575f5ffd5b50565b5f8135905061033e8161031a565b92915050565b5f819050919050565b61035681610344565b8114610360575f5ffd5b50565b5f813590506103718161034d565b92915050565b5f5f6040838503121561038d5761038c6102e2565b5b5f61039a85828601610330565b92505060206103ab85828601610363565b9150509250929050565b5f819050919050565b6103c7816103b5565b82525050565b5f6020820190506103e05f8301846103be565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610434826103ee565b810181811067ffffffffffffffff82111715610453576104526103fe565b5b80604052505050565b5f6104656102d9565b9050610471828261042b565b919050565b5f67ffffffffffffffff8211156104905761048f6103fe565b5b610499826103ee565b9050602081019050919050565b828183375f83830152505050565b5f6104c66104c184610476565b61045c565b9050828152602081018484840111156104e2576104e16103ea565b5b6104ed8482856104a6565b509392505050565b5f82601f830112610509576105086103e6565b5b81356105198482602086016104b4565b91505092915050565b5f5f5f5f6080858703121561053a576105396102e2565b5b5f61054787828801610330565b945050602061055887828801610330565b935050604061056987828801610363565b925050606085013567ffffffffffffffff81111561058a576105896102e6565b5b610596878288016104f5565b91505092959194509250565b5f8115159050919050565b6105b6816105a2565b82525050565b5f6020820190506105cf5f8301846105ad565b92915050565b6105de816103b5565b81146105e8575f5ffd5b50565b5f813590506105f9816105d5565b92915050565b5f5f60408385031215610615576106146102e2565b5b5f610622858286016105eb565b925050602083013567ffffffffffffffff811115610643576106426102e6565b5b61064f858286016104f5565b9150509250929050565b61066281610309565b82525050565b5f60208201905061067b5f830184610659565b92915050565b5f60208284031215610696576106956102e2565b5b5f82013567ffffffffffffffff8111156106b3576106b26102e6565b5b6106bf848285016104f5565b91505092915050565b5f60ff82169050919050565b6106dd816106c8565b82525050565b5f6060820190506106f65f8301866103be565b61070360208301856103be565b61071060408301846106d4565b949350505050565b5f6020828403121561072d5761072c6102e2565b5b5f61073a848285016105eb565b91505092915050565b5f8160601b9050919050565b5f61075982610743565b9050919050565b5f61076a8261074f565b9050919050565b61078261077d82610309565b610760565b82525050565b5f819050919050565b6107a261079d82610344565b610788565b82525050565b5f6107b38285610771565b6014820191506107c38284610791565b6020820191508190509392505050565b5f6080820190506107e65f8301876103be565b6107f360208301866106d4565b61080060408301856103be565b61080d60608301846103be565b95945050505050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f61085a601883610816565b915061086582610826565b602082019050919050565b5f6020820190508181035f8301526108878161084e565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f6108cc601c8361088e565b91506108d782610898565b601c82019050919050565b5f819050919050565b6108fc6108f7826103b5565b6108e2565b82525050565b5f61090c826108c0565b915061091882846108eb565b6020820191508190509291505056fea26469706673582212206103b0ffb7395183469f1287b34d19b041647c988f26d746c057c061e1637d2764736f6c63430008220033","sourceMap":"4284:3388:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4632:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:374;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6460:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6739:931;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5290:420;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:177;4732:7;4785:5;4792:8;4768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4758:44;;;;;;4751:51;;4632:177;;;;:::o;6080:374::-;6226:4;6242:19;6264:31;6279:5;6286:8;6264:14;:31::i;:::-;6242:53;;6305:28;6336:36;6360:11;6336:23;:36::i;:::-;6305:67;;6440:7;6390:57;;:46;6404:20;6426:9;6390:13;:46::i;:::-;:57;;;6383:64;;;;6080:374;;;;;;:::o;6460:273::-;6584:7;6608:9;6619;6630:7;6641:26;6656:10;6641:14;:26::i;:::-;6607:60;;;;;;6685:41;6695:21;6718:1;6721;6724;6685:41;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6678:48;;;;;6460:273;;;;:::o;6739:931::-;6839:9;6862;6885:7;7003:2;6989:3;:10;:16;6981:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7430:4;7425:3;7421:14;7415:21;7410:26;;7500:4;7495:3;7491:14;7485:21;7480:26;;7607:4;7602:3;7598:14;7592:21;7589:1;7584:30;7579:35;;6739:931;;;;;:::o;5290:420::-;5390:7;5676:12;5623:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;5596:107;;;;;;5577:126;;5290:420;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:77::-;1714:7;1743:5;1732:16;;1677:77;;;:::o;1760:118::-;1847:24;1865:5;1847:24;:::i;:::-;1842:3;1835:37;1760:118;;:::o;1884:222::-;1977:4;2015:2;2004:9;2000:18;1992:26;;2028:71;2096:1;2085:9;2081:17;2072:6;2028:71;:::i;:::-;1884:222;;;;:::o;2112:117::-;2221:1;2218;2211:12;2235:117;2344:1;2341;2334:12;2358:102;2399:6;2450:2;2446:7;2441:2;2434:5;2430:14;2426:28;2416:38;;2358:102;;;:::o;2466:180::-;2514:77;2511:1;2504:88;2611:4;2608:1;2601:15;2635:4;2632:1;2625:15;2652:281;2735:27;2757:4;2735:27;:::i;:::-;2727:6;2723:40;2865:6;2853:10;2850:22;2829:18;2817:10;2814:34;2811:62;2808:88;;;2876:18;;:::i;:::-;2808:88;2916:10;2912:2;2905:22;2695:238;2652:281;;:::o;2939:129::-;2973:6;3000:20;;:::i;:::-;2990:30;;3029:33;3057:4;3049:6;3029:33;:::i;:::-;2939:129;;;:::o;3074:307::-;3135:4;3225:18;3217:6;3214:30;3211:56;;;3247:18;;:::i;:::-;3211:56;3285:29;3307:6;3285:29;:::i;:::-;3277:37;;3369:4;3363;3359:15;3351:23;;3074:307;;;:::o;3387:148::-;3485:6;3480:3;3475;3462:30;3526:1;3517:6;3512:3;3508:16;3501:27;3387:148;;;:::o;3541:423::-;3618:5;3643:65;3659:48;3700:6;3659:48;:::i;:::-;3643:65;:::i;:::-;3634:74;;3731:6;3724:5;3717:21;3769:4;3762:5;3758:16;3807:3;3798:6;3793:3;3789:16;3786:25;3783:112;;;3814:79;;:::i;:::-;3783:112;3904:54;3951:6;3946:3;3941;3904:54;:::i;:::-;3624:340;3541:423;;;;;:::o;3983:338::-;4038:5;4087:3;4080:4;4072:6;4068:17;4064:27;4054:122;;4095:79;;:::i;:::-;4054:122;4212:6;4199:20;4237:78;4311:3;4303:6;4296:4;4288:6;4284:17;4237:78;:::i;:::-;4228:87;;4044:277;3983:338;;;;:::o;4327:943::-;4422:6;4430;4438;4446;4495:3;4483:9;4474:7;4470:23;4466:33;4463:120;;;4502:79;;:::i;:::-;4463:120;4622:1;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4593:117;4749:2;4775:53;4820:7;4811:6;4800:9;4796:22;4775:53;:::i;:::-;4765:63;;4720:118;4877:2;4903:53;4948:7;4939:6;4928:9;4924:22;4903:53;:::i;:::-;4893:63;;4848:118;5033:2;5022:9;5018:18;5005:32;5064:18;5056:6;5053:30;5050:117;;;5086:79;;:::i;:::-;5050:117;5191:62;5245:7;5236:6;5225:9;5221:22;5191:62;:::i;:::-;5181:72;;4976:287;4327:943;;;;;;;:::o;5276:90::-;5310:7;5353:5;5346:13;5339:21;5328:32;;5276:90;;;:::o;5372:109::-;5453:21;5468:5;5453:21;:::i;:::-;5448:3;5441:34;5372:109;;:::o;5487:210::-;5574:4;5612:2;5601:9;5597:18;5589:26;;5625:65;5687:1;5676:9;5672:17;5663:6;5625:65;:::i;:::-;5487:210;;;;:::o;5703:122::-;5776:24;5794:5;5776:24;:::i;:::-;5769:5;5766:35;5756:63;;5815:1;5812;5805:12;5756:63;5703:122;:::o;5831:139::-;5877:5;5915:6;5902:20;5893:29;;5931:33;5958:5;5931:33;:::i;:::-;5831:139;;;;:::o;5976:652::-;6053:6;6061;6110:2;6098:9;6089:7;6085:23;6081:32;6078:119;;;6116:79;;:::i;:::-;6078:119;6236:1;6261:53;6306:7;6297:6;6286:9;6282:22;6261:53;:::i;:::-;6251:63;;6207:117;6391:2;6380:9;6376:18;6363:32;6422:18;6414:6;6411:30;6408:117;;;6444:79;;:::i;:::-;6408:117;6549:62;6603:7;6594:6;6583:9;6579:22;6549:62;:::i;:::-;6539:72;;6334:287;5976:652;;;;;:::o;6634:118::-;6721:24;6739:5;6721:24;:::i;:::-;6716:3;6709:37;6634:118;;:::o;6758:222::-;6851:4;6889:2;6878:9;6874:18;6866:26;;6902:71;6970:1;6959:9;6955:17;6946:6;6902:71;:::i;:::-;6758:222;;;;:::o;6986:507::-;7054:6;7103:2;7091:9;7082:7;7078:23;7074:32;7071:119;;;7109:79;;:::i;:::-;7071:119;7257:1;7246:9;7242:17;7229:31;7287:18;7279:6;7276:30;7273:117;;;7309:79;;:::i;:::-;7273:117;7414:62;7468:7;7459:6;7448:9;7444:22;7414:62;:::i;:::-;7404:72;;7200:286;6986:507;;;;:::o;7499:86::-;7534:7;7574:4;7567:5;7563:16;7552:27;;7499:86;;;:::o;7591:112::-;7674:22;7690:5;7674:22;:::i;:::-;7669:3;7662:35;7591:112;;:::o;7709:434::-;7854:4;7892:2;7881:9;7877:18;7869:26;;7905:71;7973:1;7962:9;7958:17;7949:6;7905:71;:::i;:::-;7986:72;8054:2;8043:9;8039:18;8030:6;7986:72;:::i;:::-;8068:68;8132:2;8121:9;8117:18;8108:6;8068:68;:::i;:::-;7709:434;;;;;;:::o;8149:329::-;8208:6;8257:2;8245:9;8236:7;8232:23;8228:32;8225:119;;;8263:79;;:::i;:::-;8225:119;8383:1;8408:53;8453:7;8444:6;8433:9;8429:22;8408:53;:::i;:::-;8398:63;;8354:117;8149:329;;;;:::o;8484:94::-;8517:8;8565:5;8561:2;8557:14;8536:35;;8484:94;;;:::o;8584:::-;8623:7;8652:20;8666:5;8652:20;:::i;:::-;8641:31;;8584:94;;;:::o;8684:100::-;8723:7;8752:26;8772:5;8752:26;:::i;:::-;8741:37;;8684:100;;;:::o;8790:157::-;8895:45;8915:24;8933:5;8915:24;:::i;:::-;8895:45;:::i;:::-;8890:3;8883:58;8790:157;;:::o;8953:79::-;8992:7;9021:5;9010:16;;8953:79;;;:::o;9038:157::-;9143:45;9163:24;9181:5;9163:24;:::i;:::-;9143:45;:::i;:::-;9138:3;9131:58;9038:157;;:::o;9201:397::-;9341:3;9356:75;9427:3;9418:6;9356:75;:::i;:::-;9456:2;9451:3;9447:12;9440:19;;9469:75;9540:3;9531:6;9469:75;:::i;:::-;9569:2;9564:3;9560:12;9553:19;;9589:3;9582:10;;9201:397;;;;;:::o;9604:545::-;9777:4;9815:3;9804:9;9800:19;9792:27;;9829:71;9897:1;9886:9;9882:17;9873:6;9829:71;:::i;:::-;9910:68;9974:2;9963:9;9959:18;9950:6;9910:68;:::i;:::-;9988:72;10056:2;10045:9;10041:18;10032:6;9988:72;:::i;:::-;10070;10138:2;10127:9;10123:18;10114:6;10070:72;:::i;:::-;9604:545;;;;;;;:::o;10155:169::-;10239:11;10273:6;10268:3;10261:19;10313:4;10308:3;10304:14;10289:29;;10155:169;;;;:::o;10330:174::-;10470:26;10466:1;10458:6;10454:14;10447:50;10330:174;:::o;10510:366::-;10652:3;10673:67;10737:2;10732:3;10673:67;:::i;:::-;10666:74;;10749:93;10838:3;10749:93;:::i;:::-;10867:2;10862:3;10858:12;10851:19;;10510:366;;;:::o;10882:419::-;11048:4;11086:2;11075:9;11071:18;11063:26;;11135:9;11129:4;11125:20;11121:1;11110:9;11106:17;11099:47;11163:131;11289:4;11163:131;:::i;:::-;11155:139;;10882:419;;;:::o;11307:148::-;11409:11;11446:3;11431:18;;11307:148;;;;:::o;11461:214::-;11601:66;11597:1;11589:6;11585:14;11578:90;11461:214;:::o;11681:402::-;11841:3;11862:85;11944:2;11939:3;11862:85;:::i;:::-;11855:92;;11956:93;12045:3;11956:93;:::i;:::-;12074:2;12069:3;12065:12;12058:19;;11681:402;;;:::o;12089:79::-;12128:7;12157:5;12146:16;;12089:79;;;:::o;12174:157::-;12279:45;12299:24;12317:5;12299:24;:::i;:::-;12279:45;:::i;:::-;12274:3;12267:58;12174:157;;:::o;12337:522::-;12550:3;12572:148;12716:3;12572:148;:::i;:::-;12565:155;;12730:75;12801:3;12792:6;12730:75;:::i;:::-;12830:2;12825:3;12821:12;12814:19;;12850:3;12843:10;;12337:522;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getEthSignedMessageHash(bytes32)":"fa540801","getMessageHash(address,uint256)":"512c91df","recoverSigner(bytes32,bytes)":"97aba7f9","splitSignature(bytes)":"a7bb5803","verify(address,address,uint256,bytes)":"93e9f8fc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageHash\",\"type\":\"bytes32\"}],\"name\":\"getEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"recoverSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"name\":\"splitSignature\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"VerifySignature\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"stateMutability":"pure","type":"function","name":"splitSignature","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"VerifySignature"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":93} \ No newline at end of file +{"abi":[{"type":"function","name":"getEthSignedMessageHash","inputs":[{"name":"_messageHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getMessageHash","inputs":[{"name":"_addr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"recoverSigner","inputs":[{"name":"_ethSignedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"splitSignature","inputs":[{"name":"sig","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"verify","inputs":[{"name":"_signer","type":"address","internalType":"address"},{"name":"_addr","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5061095d8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063512c91df1461005957806393e9f8fc1461008957806397aba7f9146100b9578063a7bb5803146100e9578063fa5408011461011b575b5f5ffd5b610073600480360381019061006e9190610377565b61014b565b60405161008091906103cd565b60405180910390f35b6100a3600480360381019061009e9190610522565b61017d565b6040516100b091906105bc565b60405180910390f35b6100d360048036038101906100ce91906105ff565b6101db565b6040516100e09190610668565b60405180910390f35b61010360048036038101906100fe9190610681565b610245565b604051610112939291906106e3565b60405180910390f35b61013560048036038101906101309190610718565b6102aa565b60405161014291906103cd565b60405180910390f35b5f828260405160200161015f9291906107a8565b60405160208183030381529060405280519060200120905092915050565b5f5f610189858561014b565b90505f610195826102aa565b90508673ffffffffffffffffffffffffffffffffffffffff166101b882866101db565b73ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b5f5f5f5f6101e885610245565b9250925092506001868285856040515f815260200160405260405161021094939291906107d3565b6020604051602081039080840390855afa158015610230573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f5f5f604184511461028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390610870565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b5f816040516020016102bc9190610902565b604051602081830303815290604052805190602001209050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610313826102ea565b9050919050565b61032381610309565b811461032d575f5ffd5b50565b5f8135905061033e8161031a565b92915050565b5f819050919050565b61035681610344565b8114610360575f5ffd5b50565b5f813590506103718161034d565b92915050565b5f5f6040838503121561038d5761038c6102e2565b5b5f61039a85828601610330565b92505060206103ab85828601610363565b9150509250929050565b5f819050919050565b6103c7816103b5565b82525050565b5f6020820190506103e05f8301846103be565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610434826103ee565b810181811067ffffffffffffffff82111715610453576104526103fe565b5b80604052505050565b5f6104656102d9565b9050610471828261042b565b919050565b5f67ffffffffffffffff8211156104905761048f6103fe565b5b610499826103ee565b9050602081019050919050565b828183375f83830152505050565b5f6104c66104c184610476565b61045c565b9050828152602081018484840111156104e2576104e16103ea565b5b6104ed8482856104a6565b509392505050565b5f82601f830112610509576105086103e6565b5b81356105198482602086016104b4565b91505092915050565b5f5f5f5f6080858703121561053a576105396102e2565b5b5f61054787828801610330565b945050602061055887828801610330565b935050604061056987828801610363565b925050606085013567ffffffffffffffff81111561058a576105896102e6565b5b610596878288016104f5565b91505092959194509250565b5f8115159050919050565b6105b6816105a2565b82525050565b5f6020820190506105cf5f8301846105ad565b92915050565b6105de816103b5565b81146105e8575f5ffd5b50565b5f813590506105f9816105d5565b92915050565b5f5f60408385031215610615576106146102e2565b5b5f610622858286016105eb565b925050602083013567ffffffffffffffff811115610643576106426102e6565b5b61064f858286016104f5565b9150509250929050565b61066281610309565b82525050565b5f60208201905061067b5f830184610659565b92915050565b5f60208284031215610696576106956102e2565b5b5f82013567ffffffffffffffff8111156106b3576106b26102e6565b5b6106bf848285016104f5565b91505092915050565b5f60ff82169050919050565b6106dd816106c8565b82525050565b5f6060820190506106f65f8301866103be565b61070360208301856103be565b61071060408301846106d4565b949350505050565b5f6020828403121561072d5761072c6102e2565b5b5f61073a848285016105eb565b91505092915050565b5f8160601b9050919050565b5f61075982610743565b9050919050565b5f61076a8261074f565b9050919050565b61078261077d82610309565b610760565b82525050565b5f819050919050565b6107a261079d82610344565b610788565b82525050565b5f6107b38285610771565b6014820191506107c38284610791565b6020820191508190509392505050565b5f6080820190506107e65f8301876103be565b6107f360208301866106d4565b61080060408301856103be565b61080d60608301846103be565b95945050505050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f61085a601883610816565b915061086582610826565b602082019050919050565b5f6020820190508181035f8301526108878161084e565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f6108cc601c8361088e565b91506108d782610898565b601c82019050919050565b5f819050919050565b6108fc6108f7826103b5565b6108e2565b82525050565b5f61090c826108c0565b915061091882846108eb565b6020820191508190509291505056fea26469706673582212206103b0ffb7395183469f1287b34d19b041647c988f26d746c057c061e1637d2764736f6c63430008220033","sourceMap":"4284:3388:87:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063512c91df1461005957806393e9f8fc1461008957806397aba7f9146100b9578063a7bb5803146100e9578063fa5408011461011b575b5f5ffd5b610073600480360381019061006e9190610377565b61014b565b60405161008091906103cd565b60405180910390f35b6100a3600480360381019061009e9190610522565b61017d565b6040516100b091906105bc565b60405180910390f35b6100d360048036038101906100ce91906105ff565b6101db565b6040516100e09190610668565b60405180910390f35b61010360048036038101906100fe9190610681565b610245565b604051610112939291906106e3565b60405180910390f35b61013560048036038101906101309190610718565b6102aa565b60405161014291906103cd565b60405180910390f35b5f828260405160200161015f9291906107a8565b60405160208183030381529060405280519060200120905092915050565b5f5f610189858561014b565b90505f610195826102aa565b90508673ffffffffffffffffffffffffffffffffffffffff166101b882866101db565b73ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b5f5f5f5f6101e885610245565b9250925092506001868285856040515f815260200160405260405161021094939291906107d3565b6020604051602081039080840390855afa158015610230573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f5f5f604184511461028c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028390610870565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b5f816040516020016102bc9190610902565b604051602081830303815290604052805190602001209050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610313826102ea565b9050919050565b61032381610309565b811461032d575f5ffd5b50565b5f8135905061033e8161031a565b92915050565b5f819050919050565b61035681610344565b8114610360575f5ffd5b50565b5f813590506103718161034d565b92915050565b5f5f6040838503121561038d5761038c6102e2565b5b5f61039a85828601610330565b92505060206103ab85828601610363565b9150509250929050565b5f819050919050565b6103c7816103b5565b82525050565b5f6020820190506103e05f8301846103be565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610434826103ee565b810181811067ffffffffffffffff82111715610453576104526103fe565b5b80604052505050565b5f6104656102d9565b9050610471828261042b565b919050565b5f67ffffffffffffffff8211156104905761048f6103fe565b5b610499826103ee565b9050602081019050919050565b828183375f83830152505050565b5f6104c66104c184610476565b61045c565b9050828152602081018484840111156104e2576104e16103ea565b5b6104ed8482856104a6565b509392505050565b5f82601f830112610509576105086103e6565b5b81356105198482602086016104b4565b91505092915050565b5f5f5f5f6080858703121561053a576105396102e2565b5b5f61054787828801610330565b945050602061055887828801610330565b935050604061056987828801610363565b925050606085013567ffffffffffffffff81111561058a576105896102e6565b5b610596878288016104f5565b91505092959194509250565b5f8115159050919050565b6105b6816105a2565b82525050565b5f6020820190506105cf5f8301846105ad565b92915050565b6105de816103b5565b81146105e8575f5ffd5b50565b5f813590506105f9816105d5565b92915050565b5f5f60408385031215610615576106146102e2565b5b5f610622858286016105eb565b925050602083013567ffffffffffffffff811115610643576106426102e6565b5b61064f858286016104f5565b9150509250929050565b61066281610309565b82525050565b5f60208201905061067b5f830184610659565b92915050565b5f60208284031215610696576106956102e2565b5b5f82013567ffffffffffffffff8111156106b3576106b26102e6565b5b6106bf848285016104f5565b91505092915050565b5f60ff82169050919050565b6106dd816106c8565b82525050565b5f6060820190506106f65f8301866103be565b61070360208301856103be565b61071060408301846106d4565b949350505050565b5f6020828403121561072d5761072c6102e2565b5b5f61073a848285016105eb565b91505092915050565b5f8160601b9050919050565b5f61075982610743565b9050919050565b5f61076a8261074f565b9050919050565b61078261077d82610309565b610760565b82525050565b5f819050919050565b6107a261079d82610344565b610788565b82525050565b5f6107b38285610771565b6014820191506107c38284610791565b6020820191508190509392505050565b5f6080820190506107e65f8301876103be565b6107f360208301866106d4565b61080060408301856103be565b61080d60608301846103be565b95945050505050565b5f82825260208201905092915050565b7f696e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f61085a601883610816565b915061086582610826565b602082019050919050565b5f6020820190508181035f8301526108878161084e565b9050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f6108cc601c8361088e565b91506108d782610898565b601c82019050919050565b5f819050919050565b6108fc6108f7826103b5565b6108e2565b82525050565b5f61090c826108c0565b915061091882846108eb565b6020820191508190509291505056fea26469706673582212206103b0ffb7395183469f1287b34d19b041647c988f26d746c057c061e1637d2764736f6c63430008220033","sourceMap":"4284:3388:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4632:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:374;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6460:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6739:931;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5290:420;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:177;4732:7;4785:5;4792:8;4768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4758:44;;;;;;4751:51;;4632:177;;;;:::o;6080:374::-;6226:4;6242:19;6264:31;6279:5;6286:8;6264:14;:31::i;:::-;6242:53;;6305:28;6336:36;6360:11;6336:23;:36::i;:::-;6305:67;;6440:7;6390:57;;:46;6404:20;6426:9;6390:13;:46::i;:::-;:57;;;6383:64;;;;6080:374;;;;;;:::o;6460:273::-;6584:7;6608:9;6619;6630:7;6641:26;6656:10;6641:14;:26::i;:::-;6607:60;;;;;;6685:41;6695:21;6718:1;6721;6724;6685:41;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6678:48;;;;;6460:273;;;;:::o;6739:931::-;6839:9;6862;6885:7;7003:2;6989:3;:10;:16;6981:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;7430:4;7425:3;7421:14;7415:21;7410:26;;7500:4;7495:3;7491:14;7485:21;7480:26;;7607:4;7602:3;7598:14;7592:21;7589:1;7584:30;7579:35;;6739:931;;;;;:::o;5290:420::-;5390:7;5676:12;5623:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;5596:107;;;;;;5577:126;;5290:420;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:77::-;1714:7;1743:5;1732:16;;1677:77;;;:::o;1760:118::-;1847:24;1865:5;1847:24;:::i;:::-;1842:3;1835:37;1760:118;;:::o;1884:222::-;1977:4;2015:2;2004:9;2000:18;1992:26;;2028:71;2096:1;2085:9;2081:17;2072:6;2028:71;:::i;:::-;1884:222;;;;:::o;2112:117::-;2221:1;2218;2211:12;2235:117;2344:1;2341;2334:12;2358:102;2399:6;2450:2;2446:7;2441:2;2434:5;2430:14;2426:28;2416:38;;2358:102;;;:::o;2466:180::-;2514:77;2511:1;2504:88;2611:4;2608:1;2601:15;2635:4;2632:1;2625:15;2652:281;2735:27;2757:4;2735:27;:::i;:::-;2727:6;2723:40;2865:6;2853:10;2850:22;2829:18;2817:10;2814:34;2811:62;2808:88;;;2876:18;;:::i;:::-;2808:88;2916:10;2912:2;2905:22;2695:238;2652:281;;:::o;2939:129::-;2973:6;3000:20;;:::i;:::-;2990:30;;3029:33;3057:4;3049:6;3029:33;:::i;:::-;2939:129;;;:::o;3074:307::-;3135:4;3225:18;3217:6;3214:30;3211:56;;;3247:18;;:::i;:::-;3211:56;3285:29;3307:6;3285:29;:::i;:::-;3277:37;;3369:4;3363;3359:15;3351:23;;3074:307;;;:::o;3387:148::-;3485:6;3480:3;3475;3462:30;3526:1;3517:6;3512:3;3508:16;3501:27;3387:148;;;:::o;3541:423::-;3618:5;3643:65;3659:48;3700:6;3659:48;:::i;:::-;3643:65;:::i;:::-;3634:74;;3731:6;3724:5;3717:21;3769:4;3762:5;3758:16;3807:3;3798:6;3793:3;3789:16;3786:25;3783:112;;;3814:79;;:::i;:::-;3783:112;3904:54;3951:6;3946:3;3941;3904:54;:::i;:::-;3624:340;3541:423;;;;;:::o;3983:338::-;4038:5;4087:3;4080:4;4072:6;4068:17;4064:27;4054:122;;4095:79;;:::i;:::-;4054:122;4212:6;4199:20;4237:78;4311:3;4303:6;4296:4;4288:6;4284:17;4237:78;:::i;:::-;4228:87;;4044:277;3983:338;;;;:::o;4327:943::-;4422:6;4430;4438;4446;4495:3;4483:9;4474:7;4470:23;4466:33;4463:120;;;4502:79;;:::i;:::-;4463:120;4622:1;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4593:117;4749:2;4775:53;4820:7;4811:6;4800:9;4796:22;4775:53;:::i;:::-;4765:63;;4720:118;4877:2;4903:53;4948:7;4939:6;4928:9;4924:22;4903:53;:::i;:::-;4893:63;;4848:118;5033:2;5022:9;5018:18;5005:32;5064:18;5056:6;5053:30;5050:117;;;5086:79;;:::i;:::-;5050:117;5191:62;5245:7;5236:6;5225:9;5221:22;5191:62;:::i;:::-;5181:72;;4976:287;4327:943;;;;;;;:::o;5276:90::-;5310:7;5353:5;5346:13;5339:21;5328:32;;5276:90;;;:::o;5372:109::-;5453:21;5468:5;5453:21;:::i;:::-;5448:3;5441:34;5372:109;;:::o;5487:210::-;5574:4;5612:2;5601:9;5597:18;5589:26;;5625:65;5687:1;5676:9;5672:17;5663:6;5625:65;:::i;:::-;5487:210;;;;:::o;5703:122::-;5776:24;5794:5;5776:24;:::i;:::-;5769:5;5766:35;5756:63;;5815:1;5812;5805:12;5756:63;5703:122;:::o;5831:139::-;5877:5;5915:6;5902:20;5893:29;;5931:33;5958:5;5931:33;:::i;:::-;5831:139;;;;:::o;5976:652::-;6053:6;6061;6110:2;6098:9;6089:7;6085:23;6081:32;6078:119;;;6116:79;;:::i;:::-;6078:119;6236:1;6261:53;6306:7;6297:6;6286:9;6282:22;6261:53;:::i;:::-;6251:63;;6207:117;6391:2;6380:9;6376:18;6363:32;6422:18;6414:6;6411:30;6408:117;;;6444:79;;:::i;:::-;6408:117;6549:62;6603:7;6594:6;6583:9;6579:22;6549:62;:::i;:::-;6539:72;;6334:287;5976:652;;;;;:::o;6634:118::-;6721:24;6739:5;6721:24;:::i;:::-;6716:3;6709:37;6634:118;;:::o;6758:222::-;6851:4;6889:2;6878:9;6874:18;6866:26;;6902:71;6970:1;6959:9;6955:17;6946:6;6902:71;:::i;:::-;6758:222;;;;:::o;6986:507::-;7054:6;7103:2;7091:9;7082:7;7078:23;7074:32;7071:119;;;7109:79;;:::i;:::-;7071:119;7257:1;7246:9;7242:17;7229:31;7287:18;7279:6;7276:30;7273:117;;;7309:79;;:::i;:::-;7273:117;7414:62;7468:7;7459:6;7448:9;7444:22;7414:62;:::i;:::-;7404:72;;7200:286;6986:507;;;;:::o;7499:86::-;7534:7;7574:4;7567:5;7563:16;7552:27;;7499:86;;;:::o;7591:112::-;7674:22;7690:5;7674:22;:::i;:::-;7669:3;7662:35;7591:112;;:::o;7709:434::-;7854:4;7892:2;7881:9;7877:18;7869:26;;7905:71;7973:1;7962:9;7958:17;7949:6;7905:71;:::i;:::-;7986:72;8054:2;8043:9;8039:18;8030:6;7986:72;:::i;:::-;8068:68;8132:2;8121:9;8117:18;8108:6;8068:68;:::i;:::-;7709:434;;;;;;:::o;8149:329::-;8208:6;8257:2;8245:9;8236:7;8232:23;8228:32;8225:119;;;8263:79;;:::i;:::-;8225:119;8383:1;8408:53;8453:7;8444:6;8433:9;8429:22;8408:53;:::i;:::-;8398:63;;8354:117;8149:329;;;;:::o;8484:94::-;8517:8;8565:5;8561:2;8557:14;8536:35;;8484:94;;;:::o;8584:::-;8623:7;8652:20;8666:5;8652:20;:::i;:::-;8641:31;;8584:94;;;:::o;8684:100::-;8723:7;8752:26;8772:5;8752:26;:::i;:::-;8741:37;;8684:100;;;:::o;8790:157::-;8895:45;8915:24;8933:5;8915:24;:::i;:::-;8895:45;:::i;:::-;8890:3;8883:58;8790:157;;:::o;8953:79::-;8992:7;9021:5;9010:16;;8953:79;;;:::o;9038:157::-;9143:45;9163:24;9181:5;9163:24;:::i;:::-;9143:45;:::i;:::-;9138:3;9131:58;9038:157;;:::o;9201:397::-;9341:3;9356:75;9427:3;9418:6;9356:75;:::i;:::-;9456:2;9451:3;9447:12;9440:19;;9469:75;9540:3;9531:6;9469:75;:::i;:::-;9569:2;9564:3;9560:12;9553:19;;9589:3;9582:10;;9201:397;;;;;:::o;9604:545::-;9777:4;9815:3;9804:9;9800:19;9792:27;;9829:71;9897:1;9886:9;9882:17;9873:6;9829:71;:::i;:::-;9910:68;9974:2;9963:9;9959:18;9950:6;9910:68;:::i;:::-;9988:72;10056:2;10045:9;10041:18;10032:6;9988:72;:::i;:::-;10070;10138:2;10127:9;10123:18;10114:6;10070:72;:::i;:::-;9604:545;;;;;;;:::o;10155:169::-;10239:11;10273:6;10268:3;10261:19;10313:4;10308:3;10304:14;10289:29;;10155:169;;;;:::o;10330:174::-;10470:26;10466:1;10458:6;10454:14;10447:50;10330:174;:::o;10510:366::-;10652:3;10673:67;10737:2;10732:3;10673:67;:::i;:::-;10666:74;;10749:93;10838:3;10749:93;:::i;:::-;10867:2;10862:3;10858:12;10851:19;;10510:366;;;:::o;10882:419::-;11048:4;11086:2;11075:9;11071:18;11063:26;;11135:9;11129:4;11125:20;11121:1;11110:9;11106:17;11099:47;11163:131;11289:4;11163:131;:::i;:::-;11155:139;;10882:419;;;:::o;11307:148::-;11409:11;11446:3;11431:18;;11307:148;;;;:::o;11461:214::-;11601:66;11597:1;11589:6;11585:14;11578:90;11461:214;:::o;11681:402::-;11841:3;11862:85;11944:2;11939:3;11862:85;:::i;:::-;11855:92;;11956:93;12045:3;11956:93;:::i;:::-;12074:2;12069:3;12065:12;12058:19;;11681:402;;;:::o;12089:79::-;12128:7;12157:5;12146:16;;12089:79;;;:::o;12174:157::-;12279:45;12299:24;12317:5;12299:24;:::i;:::-;12279:45;:::i;:::-;12274:3;12267:58;12174:157;;:::o;12337:522::-;12550:3;12572:148;12716:3;12572:148;:::i;:::-;12565:155;;12730:75;12801:3;12792:6;12730:75;:::i;:::-;12830:2;12825:3;12821:12;12814:19;;12850:3;12843:10;;12337:522;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getEthSignedMessageHash(bytes32)":"fa540801","getMessageHash(address,uint256)":"512c91df","recoverSigner(bytes32,bytes)":"97aba7f9","splitSignature(bytes)":"a7bb5803","verify(address,address,uint256,bytes)":"93e9f8fc"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageHash\",\"type\":\"bytes32\"}],\"name\":\"getEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"recoverSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"name\":\"splitSignature\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/37_Signature/Signature.sol\":\"VerifySignature\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/37_Signature/Signature.sol\":{\"keccak256\":\"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9\",\"dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"getEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"stateMutability":"pure","type":"function","name":"splitSignature","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/37_Signature/Signature.sol":"VerifySignature"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/37_Signature/Signature.sol":{"keccak256":"0x8bccaba6fabd17aa8eed6da836b5a25da5eb0cef02a8b9d9f1e4c41dd9fee87c","urls":["bzz-raw://89acefb6a76eb614b666699f7bc575cd01eb899b50c1d8fc9c62ab91771bacf9","dweb:/ipfs/Qmdko26oN4bWfx1KG2V97ExZQ43mLQ3Li47aMuoQULBBn2"],"license":"MIT"}},"version":1},"id":87} \ No newline at end of file diff --git a/out/SimpleSwap.sol/SimpleSwap.json b/out/SimpleSwap.sol/SimpleSwap.json index 02abc06e..7ed667c0 100644 --- a/out/SimpleSwap.sol/SimpleSwap.json +++ b/out/SimpleSwap.sol/SimpleSwap.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_token0","type":"address","internalType":"contract IERC20"},{"name":"_token1","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidity","inputs":[{"name":"amount0Desired","type":"uint256","internalType":"uint256"},{"name":"amount1Desired","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"reserve0","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reserve1","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"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":"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":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"}],"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051612cf0380380612cf0833981810160405281019061003191906101b5565b6040518060400160405280600a81526020017f53696d706c6553776170000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f535300000000000000000000000000000000000000000000000000000000000081525081600390816100ac9190610441565b5080600490816100bc9190610441565b5050508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610510565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101738261014a565b9050919050565b5f61018482610169565b9050919050565b6101948161017a565b811461019e575f5ffd5b50565b5f815190506101af8161018b565b92915050565b5f5f604083850312156101cb576101ca610146565b5b5f6101d8858286016101a1565b92505060206101e9858286016101a1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026e57607f821691505b6020821081036102815761028061022a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a8565b6102ed86836102a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033161032c61032784610305565b61030e565b610305565b9050919050565b5f819050919050565b61034a83610317565b61035e61035682610338565b8484546102b4565b825550505050565b5f5f905090565b610375610366565b610380818484610341565b505050565b5f5b828110156103a65761039b5f82840161036d565b600181019050610387565b505050565b601f8211156103f957828211156103f8576103c581610287565b6103ce83610299565b6103d785610299565b60208610156103e4575f90505b8083016103f382840382610385565b505050505b5b505050565b5f82821c905092915050565b5f6104195f19846008026103fe565b1980831691505092915050565b5f610431838361040a565b9150826002028217905092915050565b61044a826101f3565b67ffffffffffffffff811115610463576104626101fd565b5b61046d8254610257565b6104788282856103ab565b5f60209050601f8311600181146104a9575f8415610497578287015190505b6104a18582610426565b865550610508565b601f1984166104b786610287565b5f5b828110156104de578489015182556001820191506020850194506020810190506104b9565b868310156104fb57848901516104f7601f89168261040a565b8355505b6001600288020188555050505b505050505050565b6127d38061051d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063443cb4bc116100a05780639c8f9f231161006f5780639c8f9f23146102d05780639cd441da14610301578063a9059cbb14610331578063d21220a714610361578063dd62ed3e1461037f57610109565b8063443cb4bc146102465780635a76f25e1461026457806370a082311461028257806395d89b41146102b257610109565b806318160ddd116100dc57806318160ddd146101a957806323b872dd146101c7578063313ce567146101f7578063432643491461021557610109565b8063054d50d41461010d57806306fdde031461013d578063095ea7b31461015b5780630dfe16811461018b575b5f5ffd5b61012760048036038101906101229190611dcc565b6103af565b6040516101349190611e2b565b60405180910390f35b61014561046a565b6040516101529190611eb4565b60405180910390f35b61017560048036038101906101709190611f2e565b6104fa565b6040516101829190611f86565b60405180910390f35b61019361051c565b6040516101a09190611ffa565b60405180910390f35b6101b1610541565b6040516101be9190611e2b565b60405180910390f35b6101e160048036038101906101dc9190612013565b61054a565b6040516101ee9190611f86565b60405180910390f35b6101ff610578565b60405161020c919061207e565b60405180910390f35b61022f600480360381019061022a91906120d2565b610580565b60405161023d929190612122565b60405180910390f35b61024e610cb2565b60405161025b9190611e2b565b60405180910390f35b61026c610cb8565b6040516102799190611e2b565b60405180910390f35b61029c60048036038101906102979190612149565b610cbe565b6040516102a99190611e2b565b60405180910390f35b6102ba610d03565b6040516102c79190611eb4565b60405180910390f35b6102ea60048036038101906102e59190612174565b610d93565b6040516102f892919061219f565b60405180910390f35b61031b600480360381019061031691906121c6565b611231565b6040516103289190611e2b565b60405180910390f35b61034b60048036038101906103469190611f2e565b6115bb565b6040516103589190611f86565b60405180910390f35b6103696115dd565b6040516103769190611ffa565b60405180910390f35b61039960048036038101906103949190612204565b611602565b6040516103a69190611e2b565b60405180910390f35b5f5f84116103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061228c565b60405180910390fd5b5f8311801561040057505f82115b61043f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610436906122f4565b60405180910390fd5b838361044b919061233f565b82856104579190612372565b61046191906123e0565b90509392505050565b6060600380546104799061243d565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061243d565b80156104f05780601f106104c7576101008083540402835291602001916104f0565b820191905f5260205f20905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b5f5f610504611684565b905061051181858561168b565b600191505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f5f610554611684565b905061056185828561169d565b61056c858585611730565b60019150509392505050565b5f6012905090565b5f5f5f85116105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906124b7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061066b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a19061251f565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610705919061254c565b602060405180830381865afa158015610720573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a1919061254c565b602060405180830381865afa1580156107bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190612579565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036109a85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506108658783836103af565b93508484116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a0906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b81526004016108e6939291906125a4565b6020604051808303815f875af1158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161096292919061262e565b6020604051808303815f875af115801561097e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612603565b50610b16565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506109d78782846103af565b9350848411610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a12906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b8152600401610a58939291906125a4565b6020604051808303815f875af1158015610a74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a989190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b8152600401610ad492919061262e565b6020604051808303815f875af1158015610af0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b149190612603565b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b70919061254c565b602060405180830381865afa158015610b8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0f919061254c565b602060405180830381865afa158015610c2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f24043855bfbfea0ccea141e5a73d7116bf0bfe083ea900a791f4b407ff03e52588888787604051610ca09493929190612655565b60405180910390a25050935093915050565b60075481565b60085481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060048054610d129061243d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e9061243d565b8015610d895780601f10610d6057610100808354040283529160200191610d89565b820191905f5260205f20905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b5f5f5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df0919061254c565b602060405180830381865afa158015610e0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2f9190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e8c919061254c565b602060405180830381865afa158015610ea7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612579565b90505f610ed6610541565b9050808387610ee59190612372565b610eef91906123e0565b9450808287610efe9190612372565b610f0891906123e0565b93505f85118015610f1857505f84115b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e906126e2565b60405180910390fd5b610f613387611820565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401610fbd92919061262e565b6020604051808303815f875af1158015610fd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffd9190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161105a92919061262e565b6020604051808303815f875af1158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190612603565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f5919061254c565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611194919061254c565b602060405180830381865afa1580156111af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d39190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a868660405161122192919061219f565b60405180910390a2505050915091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611290939291906125a4565b6020604051808303815f875af11580156112ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d09190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161132f939291906125a4565b6020604051808303815f875af115801561134b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190612603565b505f611379610541565b90505f810361139d5761139683856113919190612372565b61189f565b91506113da565b6113d760075482866113af9190612372565b6113b991906123e0565b60085483866113c89190612372565b6113d291906123e0565b611916565b91505b5f821161141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061274a565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611476919061254c565b602060405180830381865afa158015611491573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b59190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611515919061254c565b602060405180830381865afa158015611530573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115549190612579565b600881905550611564338361192e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85856040516115ac92919061219f565b60405180910390a25092915050565b5f5f6115c5611684565b90506115d2818585611730565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61169883838360016119ad565b505050565b5f6116a88484611602565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561172a578181101561171b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161171293929190612768565b60405180910390fd5b61172984848484035f6119ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a0575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611797919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611810575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611807919061254c565b60405180910390fd5b61181b838383611b7c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611890575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611887919061254c565b60405180910390fd5b61189b825f83611b7c565b5050565b5f6003821115611904578190505f60016002846118bc91906123e0565b6118c6919061233f565b90505b818110156118fe5780915060028182856118e391906123e0565b6118ed919061233f565b6118f791906123e0565b90506118c9565b50611911565b5f821461191057600190505b5b919050565b5f8183106119245781611926565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361199e575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611995919061254c565b60405180910390fd5b6119a95f8383611b7c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a14919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611a84919061254c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611b76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611b6d9190611e2b565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bcc578060025f828254611bc0919061233f565b92505081905550611c9a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c55578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611c4c93929190612768565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce1578060025f8282540392505081905550611d2b565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d889190611e2b565b60405180910390a3505050565b5f5ffd5b5f819050919050565b611dab81611d99565b8114611db5575f5ffd5b50565b5f81359050611dc681611da2565b92915050565b5f5f5f60608486031215611de357611de2611d95565b5b5f611df086828701611db8565b9350506020611e0186828701611db8565b9250506040611e1286828701611db8565b9150509250925092565b611e2581611d99565b82525050565b5f602082019050611e3e5f830184611e1c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e8682611e44565b611e908185611e4e565b9350611ea0818560208601611e5e565b611ea981611e6c565b840191505092915050565b5f6020820190508181035f830152611ecc8184611e7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611efd82611ed4565b9050919050565b611f0d81611ef3565b8114611f17575f5ffd5b50565b5f81359050611f2881611f04565b92915050565b5f5f60408385031215611f4457611f43611d95565b5b5f611f5185828601611f1a565b9250506020611f6285828601611db8565b9150509250929050565b5f8115159050919050565b611f8081611f6c565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f819050919050565b5f611fc2611fbd611fb884611ed4565b611f9f565b611ed4565b9050919050565b5f611fd382611fa8565b9050919050565b5f611fe482611fc9565b9050919050565b611ff481611fda565b82525050565b5f60208201905061200d5f830184611feb565b92915050565b5f5f5f6060848603121561202a57612029611d95565b5b5f61203786828701611f1a565b935050602061204886828701611f1a565b925050604061205986828701611db8565b9150509250925092565b5f60ff82169050919050565b61207881612063565b82525050565b5f6020820190506120915f83018461206f565b92915050565b5f6120a182611ef3565b9050919050565b6120b181612097565b81146120bb575f5ffd5b50565b5f813590506120cc816120a8565b92915050565b5f5f5f606084860312156120e9576120e8611d95565b5b5f6120f686828701611db8565b9350506020612107868287016120be565b925050604061211886828701611db8565b9150509250925092565b5f6040820190506121355f830185611e1c565b6121426020830184611feb565b9392505050565b5f6020828403121561215e5761215d611d95565b5b5f61216b84828501611f1a565b91505092915050565b5f6020828403121561218957612188611d95565b5b5f61219684828501611db8565b91505092915050565b5f6040820190506121b25f830185611e1c565b6121bf6020830184611e1c565b9392505050565b5f5f604083850312156121dc576121db611d95565b5b5f6121e985828601611db8565b92505060206121fa85828601611db8565b9150509250929050565b5f5f6040838503121561221a57612219611d95565b5b5f61222785828601611f1a565b925050602061223885828601611f1a565b9150509250929050565b7f494e53554646494349454e545f414d4f554e54000000000000000000000000005f82015250565b5f612276601383611e4e565b915061228182612242565b602082019050919050565b5f6020820190508181035f8301526122a38161226a565b9050919050565b7f494e53554646494349454e545f4c4951554944495459000000000000000000005f82015250565b5f6122de601683611e4e565b91506122e9826122aa565b602082019050919050565b5f6020820190508181035f83015261230b816122d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61234982611d99565b915061235483611d99565b925082820190508082111561236c5761236b612312565b5b92915050565b5f61237c82611d99565b915061238783611d99565b925082820261239581611d99565b915082820484148315176123ac576123ab612312565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6123ea82611d99565b91506123f583611d99565b925082612405576124046123b3565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245457607f821691505b60208210810361246757612466612410565b5b50919050565b7f494e53554646494349454e545f4f55545055545f414d4f554e540000000000005f82015250565b5f6124a1601a83611e4e565b91506124ac8261246d565b602082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f612509600d83611e4e565b9150612514826124d5565b602082019050919050565b5f6020820190508181035f830152612536816124fd565b9050919050565b61254681611ef3565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b5f8151905061257381611da2565b92915050565b5f6020828403121561258e5761258d611d95565b5b5f61259b84828501612565565b91505092915050565b5f6060820190506125b75f83018661253d565b6125c4602083018561253d565b6125d16040830184611e1c565b949350505050565b6125e281611f6c565b81146125ec575f5ffd5b50565b5f815190506125fd816125d9565b92915050565b5f6020828403121561261857612617611d95565b5b5f612625848285016125ef565b91505092915050565b5f6040820190506126415f83018561253d565b61264e6020830184611e1c565b9392505050565b5f6080820190506126685f830187611e1c565b612675602083018661253d565b6126826040830185611e1c565b61268f606083018461253d565b95945050505050565b7f494e53554646494349454e545f4c49515549444954595f4255524e45440000005f82015250565b5f6126cc601d83611e4e565b91506126d782612698565b602082019050919050565b5f6020820190508181035f8301526126f9816126c0565b9050919050565b7f494e53554646494349454e545f4c49515549444954595f4d494e5445440000005f82015250565b5f612734601d83611e4e565b915061273f82612700565b602082019050919050565b5f6020820190508181035f83015261276181612728565b9050919050565b5f60608201905061277b5f83018661253d565b6127886020830185611e1c565b6127956040830184611e1c565b94935050505056fea264697066735822122081eda57c90f9cf795bda1837e0408f2b3fce3417080131dc7829e2640e00074264736f6c63430008220033","sourceMap":"115:6241:119:-:0;;;652:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;741:7:119::1;732:6;;:16;;;;;;;;;;;;;;;;;;767:7;758:6;;:16;;;;;;;;;;;;;;;;;;652:129:::0;;115:6241;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:112::-;621:7;650:24;668:5;650:24;:::i;:::-;639:35;;568:112;;;:::o;686:154::-;775:40;809:5;775:40;:::i;:::-;768:5;765:51;755:79;;830:1;827;820:12;755:79;686:154;:::o;846:175::-;919:5;950:6;944:13;935:22;;966:49;1009:5;966:49;:::i;:::-;846:175;;;;:::o;1027:571::-;1138:6;1146;1195:2;1183:9;1174:7;1170:23;1166:32;1163:119;;;1201:79;;:::i;:::-;1163:119;1321:1;1346:80;1418:7;1409:6;1398:9;1394:22;1346:80;:::i;:::-;1336:90;;1292:144;1475:2;1501:80;1573:7;1564:6;1553:9;1549:22;1501:80;:::i;:::-;1491:90;;1446:145;1027:571;;;;;:::o;1604:99::-;1656:6;1690:5;1684:12;1674:22;;1604:99;;;:::o;1709:180::-;1757:77;1754:1;1747:88;1854:4;1851:1;1844:15;1878:4;1875:1;1868:15;1895:180;1943:77;1940:1;1933:88;2040:4;2037:1;2030:15;2064:4;2061:1;2054:15;2081:320;2125:6;2162:1;2156:4;2152:12;2142:22;;2209:1;2203:4;2199:12;2230:18;2220:81;;2286:4;2278:6;2274:17;2264:27;;2220:81;2348:2;2340:6;2337:14;2317:18;2314:38;2311:84;;2367:18;;:::i;:::-;2311:84;2132:269;2081:320;;;:::o;2407:141::-;2456:4;2479:3;2471:11;;2502:3;2499:1;2492:14;2536:4;2533:1;2523:18;2515:26;;2407:141;;;:::o;2554:93::-;2591:6;2638:2;2633;2626:5;2622:14;2618:23;2608:33;;2554:93;;;:::o;2653:107::-;2697:8;2747:5;2741:4;2737:16;2716:37;;2653:107;;;;:::o;2766:393::-;2835:6;2885:1;2873:10;2869:18;2908:97;2938:66;2927:9;2908:97;:::i;:::-;3026:39;3056:8;3045:9;3026:39;:::i;:::-;3014:51;;3098:4;3094:9;3087:5;3083:21;3074:30;;3147:4;3137:8;3133:19;3126:5;3123:30;3113:40;;2842:317;;2766:393;;;;;:::o;3165:77::-;3202:7;3231:5;3220:16;;3165:77;;;:::o;3248:60::-;3276:3;3297:5;3290:12;;3248:60;;;:::o;3314:142::-;3364:9;3397:53;3415:34;3424:24;3442:5;3424:24;:::i;:::-;3415:34;:::i;:::-;3397:53;:::i;:::-;3384:66;;3314:142;;;:::o;3462:75::-;3505:3;3526:5;3519:12;;3462:75;;;:::o;3543:269::-;3653:39;3684:7;3653:39;:::i;:::-;3714:91;3763:41;3787:16;3763:41;:::i;:::-;3755:6;3748:4;3742:11;3714:91;:::i;:::-;3708:4;3701:105;3619:193;3543:269;;;:::o;3818:73::-;3863:3;3884:1;3877:8;;3818:73;:::o;3897:189::-;3974:32;;:::i;:::-;4015:65;4073:6;4065;4059:4;4015:65;:::i;:::-;3950:136;3897:189;;:::o;4092:214::-;4177:1;4162:138;4187:9;4184:1;4181:16;4162:138;;;4239:51;4288:1;4284;4273:9;4269:17;4239:51;:::i;:::-;4212:1;4209;4205:9;4200:14;;4162:138;;;4166:14;4092:214;;:::o;4312:746::-;4413:2;4408:3;4405:11;4402:649;;;4442:10;4437:3;4434:19;4431:610;;;4488:38;4520:5;4488:38;:::i;:::-;4563:22;4581:3;4563:22;:::i;:::-;4622:29;4640:10;4622:29;:::i;:::-;4812:2;4800:10;4797:18;4794:79;;;4854:1;4838:17;;4794:79;4923:12;4913:8;4909:27;4953:74;5013:12;4999;4995:31;4982:11;4953:74;:::i;:::-;4454:587;;;;4431:610;4402:649;4312:746;;;:::o;5064:117::-;5118:8;5168:5;5162:4;5158:16;5137:37;;5064:117;;;;:::o;5187:169::-;5231:6;5264:51;5312:1;5308:6;5300:5;5297:1;5293:13;5264:51;:::i;:::-;5260:56;5345:4;5339;5335:15;5325:25;;5238:118;5187:169;;;;:::o;5361:295::-;5437:4;5583:29;5608:3;5602:4;5583:29;:::i;:::-;5575:37;;5645:3;5642:1;5638:11;5632:4;5629:21;5621:29;;5361:295;;;;:::o;5661:1395::-;5778:37;5811:3;5778:37;:::i;:::-;5880:18;5872:6;5869:30;5866:56;;;5902:18;;:::i;:::-;5866:56;5946:38;5978:4;5972:11;5946:38;:::i;:::-;6031:67;6091:6;6083;6077:4;6031:67;:::i;:::-;6125:1;6149:4;6136:17;;6181:2;6173:6;6170:14;6198:1;6193:618;;;;6855:1;6872:6;6869:77;;;6921:9;6916:3;6912:19;6906:26;6897:35;;6869:77;6972:67;7032:6;7025:5;6972:67;:::i;:::-;6966:4;6959:81;6828:222;6163:887;;6193:618;6245:4;6241:9;6233:6;6229:22;6279:37;6311:4;6279:37;:::i;:::-;6338:1;6352:208;6366:7;6363:1;6360:14;6352:208;;;6445:9;6440:3;6436:19;6430:26;6422:6;6415:42;6496:1;6488:6;6484:14;6474:24;;6543:2;6532:9;6528:18;6515:31;;6389:4;6386:1;6382:12;6377:17;;6352:208;;;6588:6;6579:7;6576:19;6573:179;;;6646:9;6641:3;6637:19;6631:26;6689:48;6731:4;6723:6;6719:17;6708:9;6689:48;:::i;:::-;6681:6;6674:64;6596:156;6573:179;6798:1;6794;6786:6;6782:14;6778:22;6772:4;6765:36;6200:611;;;6163:887;;5753:1303;;;5661:1395;;:::o;115:6241:119:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063443cb4bc116100a05780639c8f9f231161006f5780639c8f9f23146102d05780639cd441da14610301578063a9059cbb14610331578063d21220a714610361578063dd62ed3e1461037f57610109565b8063443cb4bc146102465780635a76f25e1461026457806370a082311461028257806395d89b41146102b257610109565b806318160ddd116100dc57806318160ddd146101a957806323b872dd146101c7578063313ce567146101f7578063432643491461021557610109565b8063054d50d41461010d57806306fdde031461013d578063095ea7b31461015b5780630dfe16811461018b575b5f5ffd5b61012760048036038101906101229190611dcc565b6103af565b6040516101349190611e2b565b60405180910390f35b61014561046a565b6040516101529190611eb4565b60405180910390f35b61017560048036038101906101709190611f2e565b6104fa565b6040516101829190611f86565b60405180910390f35b61019361051c565b6040516101a09190611ffa565b60405180910390f35b6101b1610541565b6040516101be9190611e2b565b60405180910390f35b6101e160048036038101906101dc9190612013565b61054a565b6040516101ee9190611f86565b60405180910390f35b6101ff610578565b60405161020c919061207e565b60405180910390f35b61022f600480360381019061022a91906120d2565b610580565b60405161023d929190612122565b60405180910390f35b61024e610cb2565b60405161025b9190611e2b565b60405180910390f35b61026c610cb8565b6040516102799190611e2b565b60405180910390f35b61029c60048036038101906102979190612149565b610cbe565b6040516102a99190611e2b565b60405180910390f35b6102ba610d03565b6040516102c79190611eb4565b60405180910390f35b6102ea60048036038101906102e59190612174565b610d93565b6040516102f892919061219f565b60405180910390f35b61031b600480360381019061031691906121c6565b611231565b6040516103289190611e2b565b60405180910390f35b61034b60048036038101906103469190611f2e565b6115bb565b6040516103589190611f86565b60405180910390f35b6103696115dd565b6040516103769190611ffa565b60405180910390f35b61039960048036038101906103949190612204565b611602565b6040516103a69190611e2b565b60405180910390f35b5f5f84116103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061228c565b60405180910390fd5b5f8311801561040057505f82115b61043f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610436906122f4565b60405180910390fd5b838361044b919061233f565b82856104579190612372565b61046191906123e0565b90509392505050565b6060600380546104799061243d565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061243d565b80156104f05780601f106104c7576101008083540402835291602001916104f0565b820191905f5260205f20905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b5f5f610504611684565b905061051181858561168b565b600191505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f5f610554611684565b905061056185828561169d565b61056c858585611730565b60019150509392505050565b5f6012905090565b5f5f5f85116105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906124b7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061066b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a19061251f565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610705919061254c565b602060405180830381865afa158015610720573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a1919061254c565b602060405180830381865afa1580156107bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190612579565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036109a85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506108658783836103af565b93508484116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a0906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b81526004016108e6939291906125a4565b6020604051808303815f875af1158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161096292919061262e565b6020604051808303815f875af115801561097e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612603565b50610b16565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506109d78782846103af565b9350848411610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a12906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b8152600401610a58939291906125a4565b6020604051808303815f875af1158015610a74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a989190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b8152600401610ad492919061262e565b6020604051808303815f875af1158015610af0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b149190612603565b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b70919061254c565b602060405180830381865afa158015610b8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0f919061254c565b602060405180830381865afa158015610c2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f24043855bfbfea0ccea141e5a73d7116bf0bfe083ea900a791f4b407ff03e52588888787604051610ca09493929190612655565b60405180910390a25050935093915050565b60075481565b60085481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060048054610d129061243d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e9061243d565b8015610d895780601f10610d6057610100808354040283529160200191610d89565b820191905f5260205f20905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b5f5f5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df0919061254c565b602060405180830381865afa158015610e0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2f9190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e8c919061254c565b602060405180830381865afa158015610ea7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612579565b90505f610ed6610541565b9050808387610ee59190612372565b610eef91906123e0565b9450808287610efe9190612372565b610f0891906123e0565b93505f85118015610f1857505f84115b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e906126e2565b60405180910390fd5b610f613387611820565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401610fbd92919061262e565b6020604051808303815f875af1158015610fd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffd9190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161105a92919061262e565b6020604051808303815f875af1158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190612603565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f5919061254c565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611194919061254c565b602060405180830381865afa1580156111af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d39190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a868660405161122192919061219f565b60405180910390a2505050915091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611290939291906125a4565b6020604051808303815f875af11580156112ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d09190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161132f939291906125a4565b6020604051808303815f875af115801561134b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190612603565b505f611379610541565b90505f810361139d5761139683856113919190612372565b61189f565b91506113da565b6113d760075482866113af9190612372565b6113b991906123e0565b60085483866113c89190612372565b6113d291906123e0565b611916565b91505b5f821161141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061274a565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611476919061254c565b602060405180830381865afa158015611491573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b59190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611515919061254c565b602060405180830381865afa158015611530573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115549190612579565b600881905550611564338361192e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85856040516115ac92919061219f565b60405180910390a25092915050565b5f5f6115c5611684565b90506115d2818585611730565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61169883838360016119ad565b505050565b5f6116a88484611602565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561172a578181101561171b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161171293929190612768565b60405180910390fd5b61172984848484035f6119ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a0575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611797919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611810575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611807919061254c565b60405180910390fd5b61181b838383611b7c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611890575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611887919061254c565b60405180910390fd5b61189b825f83611b7c565b5050565b5f6003821115611904578190505f60016002846118bc91906123e0565b6118c6919061233f565b90505b818110156118fe5780915060028182856118e391906123e0565b6118ed919061233f565b6118f791906123e0565b90506118c9565b50611911565b5f821461191057600190505b5b919050565b5f8183106119245781611926565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361199e575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611995919061254c565b60405180910390fd5b6119a95f8383611b7c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a14919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611a84919061254c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611b76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611b6d9190611e2b565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bcc578060025f828254611bc0919061233f565b92505081905550611c9a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c55578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611c4c93929190612768565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce1578060025f8282540392505081905550611d2b565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d889190611e2b565b60405180910390a3505050565b5f5ffd5b5f819050919050565b611dab81611d99565b8114611db5575f5ffd5b50565b5f81359050611dc681611da2565b92915050565b5f5f5f60608486031215611de357611de2611d95565b5b5f611df086828701611db8565b9350506020611e0186828701611db8565b9250506040611e1286828701611db8565b9150509250925092565b611e2581611d99565b82525050565b5f602082019050611e3e5f830184611e1c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e8682611e44565b611e908185611e4e565b9350611ea0818560208601611e5e565b611ea981611e6c565b840191505092915050565b5f6020820190508181035f830152611ecc8184611e7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611efd82611ed4565b9050919050565b611f0d81611ef3565b8114611f17575f5ffd5b50565b5f81359050611f2881611f04565b92915050565b5f5f60408385031215611f4457611f43611d95565b5b5f611f5185828601611f1a565b9250506020611f6285828601611db8565b9150509250929050565b5f8115159050919050565b611f8081611f6c565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f819050919050565b5f611fc2611fbd611fb884611ed4565b611f9f565b611ed4565b9050919050565b5f611fd382611fa8565b9050919050565b5f611fe482611fc9565b9050919050565b611ff481611fda565b82525050565b5f60208201905061200d5f830184611feb565b92915050565b5f5f5f6060848603121561202a57612029611d95565b5b5f61203786828701611f1a565b935050602061204886828701611f1a565b925050604061205986828701611db8565b9150509250925092565b5f60ff82169050919050565b61207881612063565b82525050565b5f6020820190506120915f83018461206f565b92915050565b5f6120a182611ef3565b9050919050565b6120b181612097565b81146120bb575f5ffd5b50565b5f813590506120cc816120a8565b92915050565b5f5f5f606084860312156120e9576120e8611d95565b5b5f6120f686828701611db8565b9350506020612107868287016120be565b925050604061211886828701611db8565b9150509250925092565b5f6040820190506121355f830185611e1c565b6121426020830184611feb565b9392505050565b5f6020828403121561215e5761215d611d95565b5b5f61216b84828501611f1a565b91505092915050565b5f6020828403121561218957612188611d95565b5b5f61219684828501611db8565b91505092915050565b5f6040820190506121b25f830185611e1c565b6121bf6020830184611e1c565b9392505050565b5f5f604083850312156121dc576121db611d95565b5b5f6121e985828601611db8565b92505060206121fa85828601611db8565b9150509250929050565b5f5f6040838503121561221a57612219611d95565b5b5f61222785828601611f1a565b925050602061223885828601611f1a565b9150509250929050565b7f494e53554646494349454e545f414d4f554e54000000000000000000000000005f82015250565b5f612276601383611e4e565b915061228182612242565b602082019050919050565b5f6020820190508181035f8301526122a38161226a565b9050919050565b7f494e53554646494349454e545f4c4951554944495459000000000000000000005f82015250565b5f6122de601683611e4e565b91506122e9826122aa565b602082019050919050565b5f6020820190508181035f83015261230b816122d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61234982611d99565b915061235483611d99565b925082820190508082111561236c5761236b612312565b5b92915050565b5f61237c82611d99565b915061238783611d99565b925082820261239581611d99565b915082820484148315176123ac576123ab612312565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6123ea82611d99565b91506123f583611d99565b925082612405576124046123b3565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245457607f821691505b60208210810361246757612466612410565b5b50919050565b7f494e53554646494349454e545f4f55545055545f414d4f554e540000000000005f82015250565b5f6124a1601a83611e4e565b91506124ac8261246d565b602082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f612509600d83611e4e565b9150612514826124d5565b602082019050919050565b5f6020820190508181035f830152612536816124fd565b9050919050565b61254681611ef3565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b5f8151905061257381611da2565b92915050565b5f6020828403121561258e5761258d611d95565b5b5f61259b84828501612565565b91505092915050565b5f6060820190506125b75f83018661253d565b6125c4602083018561253d565b6125d16040830184611e1c565b949350505050565b6125e281611f6c565b81146125ec575f5ffd5b50565b5f815190506125fd816125d9565b92915050565b5f6020828403121561261857612617611d95565b5b5f612625848285016125ef565b91505092915050565b5f6040820190506126415f83018561253d565b61264e6020830184611e1c565b9392505050565b5f6080820190506126685f830187611e1c565b612675602083018661253d565b6126826040830185611e1c565b61268f606083018461253d565b95945050505050565b7f494e53554646494349454e545f4c49515549444954595f4255524e45440000005f82015250565b5f6126cc601d83611e4e565b91506126d782612698565b602082019050919050565b5f6020820190508181035f8301526126f9816126c0565b9050919050565b7f494e53554646494349454e545f4c49515549444954595f4d494e5445440000005f82015250565b5f612734601d83611e4e565b915061273f82612700565b602082019050919050565b5f6020820190508181035f83015261276181612728565b9050919050565b5f60608201905061277b5f83018661253d565b6127886020830185611e1c565b6127956040830184611e1c565b94935050505056fea264697066735822122081eda57c90f9cf795bda1837e0408f2b3fce3417080131dc7829e2640e00074264736f6c63430008220033","sourceMap":"115:6241:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4344:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:20:119;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4854:1500:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;246:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;272;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3142:904:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1666:1311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;196:20:119;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4344:312:119;4435:14;4480:1;4469:8;:12;4461:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4535:1;4523:9;:13;:31;;;;;4553:1;4540:10;:14;4523:31;4515:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4640:8;4628:9;:20;;;;:::i;:::-;4614:10;4603:8;:21;;;;:::i;:::-;:46;;;;:::i;:::-;4591:58;;4344:312;;;;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;170:20:119:-;;;;;;;;;;;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;4854:1500:119:-;4936:14;4952:15;4997:1;4986:8;:12;4978:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5058:6;;;;;;;;;;;5047:17;;:7;:17;;;:38;;;;5079:6;;;;;;;;;;;5068:17;;:7;:17;;;5047:38;5039:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5122:13;5138:6;;;;;;;;;;;:16;;;5163:4;5138:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5122:47;;5179:13;5195:6;;;;;;;;;;;:16;;;5220:4;5195:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5179:47;;5251:6;;;;;;;;;;;5240:17;;:7;:17;;;5237:889;;5326:6;;;;;;;;;;;5315:17;;5407:42;5420:8;5430;5440;5407:12;:42::i;:::-;5395:54;;5483:12;5471:9;:24;5463:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;5568:7;:20;;;5589:10;5609:4;5616:8;5568:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5639:8;:17;;;5657:10;5669:9;5639:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5237:889;;;5762:6;;;;;;;;;;;5751:17;;5843:42;5856:8;5866;5876;5843:12;:42::i;:::-;5831:54;;5919:12;5907:9;:24;5899:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6004:7;:20;;;6025:10;6045:4;6052:8;6004:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6075:8;:17;;;6093:10;6105:9;6075:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5237:889;6174:6;;;;;;;;;;;:16;;;6199:4;6174:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6163:8;:42;;;;6226:6;;;;;;;;;;;:16;;;6251:4;6226:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6215:8;:42;;;;6278:10;6273:74;;;6290:8;6308:7;6318:9;6337:8;6273:74;;;;;;;;;:::i;:::-;;;;;;;;4968:1386;;4854:1500;;;;;;:::o;246:20::-;;;;:::o;272:::-;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3142:904:119:-;3201:12;3215;3263:13;3279:6;;;;;;;;;;;:16;;;3304:4;3279:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3263:47;;3320:13;3336:6;;;;;;;;;;;:16;;;3361:4;3336:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3320:47;;3433:17;3453:13;:11;:13::i;:::-;3433:33;;3509:12;3498:8;3486:9;:20;;;;:::i;:::-;:35;;;;:::i;:::-;3476:45;;3564:12;3553:8;3541:9;:20;;;;:::i;:::-;:35;;;;:::i;:::-;3531:45;;3634:1;3624:7;:11;:26;;;;;3649:1;3639:7;:11;3624:26;3616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3714:28;3720:10;3732:9;3714:5;:28::i;:::-;3776:6;;;;;;;;;;;:15;;;3792:10;3804:7;3776:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3822:6;;;;;;;;;;;:15;;;3838:10;3850:7;3822:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3906:6;;;;;;;;;;;:16;;;3931:4;3906:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3895:8;:42;;;;3958:6;;;;;;;;;;;:16;;;3983:4;3958:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3947:8;:42;;;;4010:10;4005:34;;;4022:7;4031;4005:34;;;;;;;:::i;:::-;;;;;;;;3229:817;;;3142:904;;;:::o;1666:1311::-;1745:14;1850:6;;;;;;;;;;;:19;;;1870:10;1890:4;1897:14;1850:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1922:6;;;;;;;;;;;:19;;;1942:10;1962:4;1969:14;1922:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2030:17;2050:13;:11;:13::i;:::-;2030:33;;2093:1;2077:12;:17;2073:474;;2238:37;2260:14;2243;:31;;;;:::i;:::-;2238:4;:37::i;:::-;2226:49;;2073:474;;;2450:86;2486:8;;2471:12;2454:14;:29;;;;:::i;:::-;:40;;;;:::i;:::-;2527:8;;2513:12;2496:14;:29;;;;:::i;:::-;:39;;;;:::i;:::-;2450:3;:86::i;:::-;2438:98;;2073:474;2612:1;2600:9;:13;2592:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2696:6;;;;;;;;;;;:16;;;2721:4;2696:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2685:8;:42;;;;2748:6;;;;;;;;;;;:16;;;2773:4;2748:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2737:8;:42;;;;2870:28;2876:10;2888:9;2870:5;:28::i;:::-;2927:10;2922:48;;;2939:14;2955;2922:48;;;;;;;:::i;:::-;;;;;;;;1760:1217;1666:1311;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;196:20:119:-;;;;;;;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;1044:292:119:-;1089:6;1115:1;1111;:5;1107:223;;;1136:1;1132:5;;1151:6;1168:1;1164;1160;:5;;;;:::i;:::-;:9;;;;:::i;:::-;1151:18;;1183:89;1194:1;1190;:5;1183:89;;;1219:1;1215:5;;1256:1;1251;1247;1243;:5;;;;:::i;:::-;:9;;;;:::i;:::-;1242:15;;;;:::i;:::-;1238:19;;1183:89;;;1118:164;1107:223;;;1297:1;1292;:6;1288:42;;1318:1;1314:5;;1288:42;1107:223;1044:292;;;:::o;819:94::-;871:6;897:1;893;:5;:13;;905:1;893:13;;;901:1;893:13;889:17;;819:94;;;;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:619::-;767:6;775;783;832:2;820:9;811:7;807:23;803:32;800:119;;;838:79;;:::i;:::-;800:119;958:1;983:53;1028:7;1019:6;1008:9;1004:22;983:53;:::i;:::-;973:63;;929:117;1085:2;1111:53;1156:7;1147:6;1136:9;1132:22;1111:53;:::i;:::-;1101:63;;1056:118;1213:2;1239:53;1284:7;1275:6;1264:9;1260:22;1239:53;:::i;:::-;1229:63;;1184:118;690:619;;;;;:::o;1315:118::-;1402:24;1420:5;1402:24;:::i;:::-;1397:3;1390:37;1315:118;;:::o;1439:222::-;1532:4;1570:2;1559:9;1555:18;1547:26;;1583:71;1651:1;1640:9;1636:17;1627:6;1583:71;:::i;:::-;1439:222;;;;:::o;1667:99::-;1719:6;1753:5;1747:12;1737:22;;1667:99;;;:::o;1772:169::-;1856:11;1890:6;1885:3;1878:19;1930:4;1925:3;1921:14;1906:29;;1772:169;;;;:::o;1947:139::-;2036:6;2031:3;2026;2020:23;2077:1;2068:6;2063:3;2059:16;2052:27;1947:139;;;:::o;2092:102::-;2133:6;2184:2;2180:7;2175:2;2168:5;2164:14;2160:28;2150:38;;2092:102;;;:::o;2200:377::-;2288:3;2316:39;2349:5;2316:39;:::i;:::-;2371:71;2435:6;2430:3;2371:71;:::i;:::-;2364:78;;2451:65;2509:6;2504:3;2497:4;2490:5;2486:16;2451:65;:::i;:::-;2541:29;2563:6;2541:29;:::i;:::-;2536:3;2532:39;2525:46;;2292:285;2200:377;;;;:::o;2583:313::-;2696:4;2734:2;2723:9;2719:18;2711:26;;2783:9;2777:4;2773:20;2769:1;2758:9;2754:17;2747:47;2811:78;2884:4;2875:6;2811:78;:::i;:::-;2803:86;;2583:313;;;;:::o;2902:126::-;2939:7;2979:42;2972:5;2968:54;2957:65;;2902:126;;;:::o;3034:96::-;3071:7;3100:24;3118:5;3100:24;:::i;:::-;3089:35;;3034:96;;;:::o;3136:122::-;3209:24;3227:5;3209:24;:::i;:::-;3202:5;3199:35;3189:63;;3248:1;3245;3238:12;3189:63;3136:122;:::o;3264:139::-;3310:5;3348:6;3335:20;3326:29;;3364:33;3391:5;3364:33;:::i;:::-;3264:139;;;;:::o;3409:474::-;3477:6;3485;3534:2;3522:9;3513:7;3509:23;3505:32;3502:119;;;3540:79;;:::i;:::-;3502:119;3660:1;3685:53;3730:7;3721:6;3710:9;3706:22;3685:53;:::i;:::-;3675:63;;3631:117;3787:2;3813:53;3858:7;3849:6;3838:9;3834:22;3813:53;:::i;:::-;3803:63;;3758:118;3409:474;;;;;:::o;3889:90::-;3923:7;3966:5;3959:13;3952:21;3941:32;;3889:90;;;:::o;3985:109::-;4066:21;4081:5;4066:21;:::i;:::-;4061:3;4054:34;3985:109;;:::o;4100:210::-;4187:4;4225:2;4214:9;4210:18;4202:26;;4238:65;4300:1;4289:9;4285:17;4276:6;4238:65;:::i;:::-;4100:210;;;;:::o;4316:60::-;4344:3;4365:5;4358:12;;4316:60;;;:::o;4382:142::-;4432:9;4465:53;4483:34;4492:24;4510:5;4492:24;:::i;:::-;4483:34;:::i;:::-;4465:53;:::i;:::-;4452:66;;4382:142;;;:::o;4530:126::-;4580:9;4613:37;4644:5;4613:37;:::i;:::-;4600:50;;4530:126;;;:::o;4662:142::-;4728:9;4761:37;4792:5;4761:37;:::i;:::-;4748:50;;4662:142;;;:::o;4810:163::-;4913:53;4960:5;4913:53;:::i;:::-;4908:3;4901:66;4810:163;;:::o;4979:254::-;5088:4;5126:2;5115:9;5111:18;5103:26;;5139:87;5223:1;5212:9;5208:17;5199:6;5139:87;:::i;:::-;4979:254;;;;:::o;5239:619::-;5316:6;5324;5332;5381:2;5369:9;5360:7;5356:23;5352:32;5349:119;;;5387:79;;:::i;:::-;5349:119;5507:1;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5478:117;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5762:2;5788:53;5833:7;5824:6;5813:9;5809:22;5788:53;:::i;:::-;5778:63;;5733:118;5239:619;;;;;:::o;5864:86::-;5899:7;5939:4;5932:5;5928:16;5917:27;;5864:86;;;:::o;5956:112::-;6039:22;6055:5;6039:22;:::i;:::-;6034:3;6027:35;5956:112;;:::o;6074:214::-;6163:4;6201:2;6190:9;6186:18;6178:26;;6214:67;6278:1;6267:9;6263:17;6254:6;6214:67;:::i;:::-;6074:214;;;;:::o;6294:112::-;6347:7;6376:24;6394:5;6376:24;:::i;:::-;6365:35;;6294:112;;;:::o;6412:154::-;6501:40;6535:5;6501:40;:::i;:::-;6494:5;6491:51;6481:79;;6556:1;6553;6546:12;6481:79;6412:154;:::o;6572:171::-;6634:5;6672:6;6659:20;6650:29;;6688:49;6731:5;6688:49;:::i;:::-;6572:171;;;;:::o;6749:651::-;6842:6;6850;6858;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:53;7103:7;7094:6;7083:9;7079:22;7058:53;:::i;:::-;7048:63;;7004:117;7160:2;7186:69;7247:7;7238:6;7227:9;7223:22;7186:69;:::i;:::-;7176:79;;7131:134;7304:2;7330:53;7375:7;7366:6;7355:9;7351:22;7330:53;:::i;:::-;7320:63;;7275:118;6749:651;;;;;:::o;7406:364::-;7543:4;7581:2;7570:9;7566:18;7558:26;;7594:71;7662:1;7651:9;7647:17;7638:6;7594:71;:::i;:::-;7675:88;7759:2;7748:9;7744:18;7735:6;7675:88;:::i;:::-;7406:364;;;;;:::o;7776:329::-;7835:6;7884:2;7872:9;7863:7;7859:23;7855:32;7852:119;;;7890:79;;:::i;:::-;7852:119;8010:1;8035:53;8080:7;8071:6;8060:9;8056:22;8035:53;:::i;:::-;8025:63;;7981:117;7776:329;;;;:::o;8111:::-;8170:6;8219:2;8207:9;8198:7;8194:23;8190:32;8187:119;;;8225:79;;:::i;:::-;8187:119;8345:1;8370:53;8415:7;8406:6;8395:9;8391:22;8370:53;:::i;:::-;8360:63;;8316:117;8111:329;;;;:::o;8446:332::-;8567:4;8605:2;8594:9;8590:18;8582:26;;8618:71;8686:1;8675:9;8671:17;8662:6;8618:71;:::i;:::-;8699:72;8767:2;8756:9;8752:18;8743:6;8699:72;:::i;:::-;8446:332;;;;;:::o;8784:474::-;8852:6;8860;8909:2;8897:9;8888:7;8884:23;8880:32;8877:119;;;8915:79;;:::i;:::-;8877:119;9035:1;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9006:117;9162:2;9188:53;9233:7;9224:6;9213:9;9209:22;9188:53;:::i;:::-;9178:63;;9133:118;8784:474;;;;;:::o;9264:::-;9332:6;9340;9389:2;9377:9;9368:7;9364:23;9360:32;9357:119;;;9395:79;;:::i;:::-;9357:119;9515:1;9540:53;9585:7;9576:6;9565:9;9561:22;9540:53;:::i;:::-;9530:63;;9486:117;9642:2;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9613:118;9264:474;;;;;:::o;9744:169::-;9884:21;9880:1;9872:6;9868:14;9861:45;9744:169;:::o;9919:366::-;10061:3;10082:67;10146:2;10141:3;10082:67;:::i;:::-;10075:74;;10158:93;10247:3;10158:93;:::i;:::-;10276:2;10271:3;10267:12;10260:19;;9919:366;;;:::o;10291:419::-;10457:4;10495:2;10484:9;10480:18;10472:26;;10544:9;10538:4;10534:20;10530:1;10519:9;10515:17;10508:47;10572:131;10698:4;10572:131;:::i;:::-;10564:139;;10291:419;;;:::o;10716:172::-;10856:24;10852:1;10844:6;10840:14;10833:48;10716:172;:::o;10894:366::-;11036:3;11057:67;11121:2;11116:3;11057:67;:::i;:::-;11050:74;;11133:93;11222:3;11133:93;:::i;:::-;11251:2;11246:3;11242:12;11235:19;;10894:366;;;:::o;11266:419::-;11432:4;11470:2;11459:9;11455:18;11447:26;;11519:9;11513:4;11509:20;11505:1;11494:9;11490:17;11483:47;11547:131;11673:4;11547:131;:::i;:::-;11539:139;;11266:419;;;:::o;11691:180::-;11739:77;11736:1;11729:88;11836:4;11833:1;11826:15;11860:4;11857:1;11850:15;11877:191;11917:3;11936:20;11954:1;11936:20;:::i;:::-;11931:25;;11970:20;11988:1;11970:20;:::i;:::-;11965:25;;12013:1;12010;12006:9;11999:16;;12034:3;12031:1;12028:10;12025:36;;;12041:18;;:::i;:::-;12025:36;11877:191;;;;:::o;12074:410::-;12114:7;12137:20;12155:1;12137:20;:::i;:::-;12132:25;;12171:20;12189:1;12171:20;:::i;:::-;12166:25;;12226:1;12223;12219:9;12248:30;12266:11;12248:30;:::i;:::-;12237:41;;12427:1;12418:7;12414:15;12411:1;12408:22;12388:1;12381:9;12361:83;12338:139;;12457:18;;:::i;:::-;12338:139;12122:362;12074:410;;;;:::o;12490:180::-;12538:77;12535:1;12528:88;12635:4;12632:1;12625:15;12659:4;12656:1;12649:15;12676:185;12716:1;12733:20;12751:1;12733:20;:::i;:::-;12728:25;;12767:20;12785:1;12767:20;:::i;:::-;12762:25;;12806:1;12796:35;;12811:18;;:::i;:::-;12796:35;12853:1;12850;12846:9;12841:14;;12676:185;;;;:::o;12867:180::-;12915:77;12912:1;12905:88;13012:4;13009:1;13002:15;13036:4;13033:1;13026:15;13053:320;13097:6;13134:1;13128:4;13124:12;13114:22;;13181:1;13175:4;13171:12;13202:18;13192:81;;13258:4;13250:6;13246:17;13236:27;;13192:81;13320:2;13312:6;13309:14;13289:18;13286:38;13283:84;;13339:18;;:::i;:::-;13283:84;13104:269;13053:320;;;:::o;13379:176::-;13519:28;13515:1;13507:6;13503:14;13496:52;13379:176;:::o;13561:366::-;13703:3;13724:67;13788:2;13783:3;13724:67;:::i;:::-;13717:74;;13800:93;13889:3;13800:93;:::i;:::-;13918:2;13913:3;13909:12;13902:19;;13561:366;;;:::o;13933:419::-;14099:4;14137:2;14126:9;14122:18;14114:26;;14186:9;14180:4;14176:20;14172:1;14161:9;14157:17;14150:47;14214:131;14340:4;14214:131;:::i;:::-;14206:139;;13933:419;;;:::o;14358:163::-;14498:15;14494:1;14486:6;14482:14;14475:39;14358:163;:::o;14527:366::-;14669:3;14690:67;14754:2;14749:3;14690:67;:::i;:::-;14683:74;;14766:93;14855:3;14766:93;:::i;:::-;14884:2;14879:3;14875:12;14868:19;;14527:366;;;:::o;14899:419::-;15065:4;15103:2;15092:9;15088:18;15080:26;;15152:9;15146:4;15142:20;15138:1;15127:9;15123:17;15116:47;15180:131;15306:4;15180:131;:::i;:::-;15172:139;;14899:419;;;:::o;15324:118::-;15411:24;15429:5;15411:24;:::i;:::-;15406:3;15399:37;15324:118;;:::o;15448:222::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15592:71;15660:1;15649:9;15645:17;15636:6;15592:71;:::i;:::-;15448:222;;;;:::o;15676:143::-;15733:5;15764:6;15758:13;15749:22;;15780:33;15807:5;15780:33;:::i;:::-;15676:143;;;;:::o;15825:351::-;15895:6;15944:2;15932:9;15923:7;15919:23;15915:32;15912:119;;;15950:79;;:::i;:::-;15912:119;16070:1;16095:64;16151:7;16142:6;16131:9;16127:22;16095:64;:::i;:::-;16085:74;;16041:128;15825:351;;;;:::o;16182:442::-;16331:4;16369:2;16358:9;16354:18;16346:26;;16382:71;16450:1;16439:9;16435:17;16426:6;16382:71;:::i;:::-;16463:72;16531:2;16520:9;16516:18;16507:6;16463:72;:::i;:::-;16545;16613:2;16602:9;16598:18;16589:6;16545:72;:::i;:::-;16182:442;;;;;;:::o;16630:116::-;16700:21;16715:5;16700:21;:::i;:::-;16693:5;16690:32;16680:60;;16736:1;16733;16726:12;16680:60;16630:116;:::o;16752:137::-;16806:5;16837:6;16831:13;16822:22;;16853:30;16877:5;16853:30;:::i;:::-;16752:137;;;;:::o;16895:345::-;16962:6;17011:2;16999:9;16990:7;16986:23;16982:32;16979:119;;;17017:79;;:::i;:::-;16979:119;17137:1;17162:61;17215:7;17206:6;17195:9;17191:22;17162:61;:::i;:::-;17152:71;;17108:125;16895:345;;;;:::o;17246:332::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17418:71;17486:1;17475:9;17471:17;17462:6;17418:71;:::i;:::-;17499:72;17567:2;17556:9;17552:18;17543:6;17499:72;:::i;:::-;17246:332;;;;;:::o;17584:553::-;17761:4;17799:3;17788:9;17784:19;17776:27;;17813:71;17881:1;17870:9;17866:17;17857:6;17813:71;:::i;:::-;17894:72;17962:2;17951:9;17947:18;17938:6;17894:72;:::i;:::-;17976;18044:2;18033:9;18029:18;18020:6;17976:72;:::i;:::-;18058;18126:2;18115:9;18111:18;18102:6;18058:72;:::i;:::-;17584:553;;;;;;;:::o;18143:179::-;18283:31;18279:1;18271:6;18267:14;18260:55;18143:179;:::o;18328:366::-;18470:3;18491:67;18555:2;18550:3;18491:67;:::i;:::-;18484:74;;18567:93;18656:3;18567:93;:::i;:::-;18685:2;18680:3;18676:12;18669:19;;18328:366;;;:::o;18700:419::-;18866:4;18904:2;18893:9;18889:18;18881:26;;18953:9;18947:4;18943:20;18939:1;18928:9;18924:17;18917:47;18981:131;19107:4;18981:131;:::i;:::-;18973:139;;18700:419;;;:::o;19125:179::-;19265:31;19261:1;19253:6;19249:14;19242:55;19125:179;:::o;19310:366::-;19452:3;19473:67;19537:2;19532:3;19473:67;:::i;:::-;19466:74;;19549:93;19638:3;19549:93;:::i;:::-;19667:2;19662:3;19658:12;19651:19;;19310:366;;;:::o;19682:419::-;19848:4;19886:2;19875:9;19871:18;19863:26;;19935:9;19929:4;19925:20;19921:1;19910:9;19906:17;19899:47;19963:131;20089:4;19963:131;:::i;:::-;19955:139;;19682:419;;;:::o;20107:442::-;20256:4;20294:2;20283:9;20279:18;20271:26;;20307:71;20375:1;20364:9;20360:17;20351:6;20307:71;:::i;:::-;20388:72;20456:2;20445:9;20441:18;20432:6;20388:72;:::i;:::-;20470;20538:2;20527:9;20523:18;20514:6;20470:72;:::i;:::-;20107:442;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addLiquidity(uint256,uint256)":"9cd441da","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","getAmountOut(uint256,uint256,uint256)":"054d50d4","name()":"06fdde03","removeLiquidity(uint256)":"9c8f9f23","reserve0()":"443cb4bc","reserve1()":"5a76f25e","swap(uint256,address,uint256)":"43264349","symbol()":"95d89b41","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token1\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"Swap\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserve0\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserve1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/56_DEX/SimpleSwap.sol\":\"SimpleSwap\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/56_DEX/SimpleSwap.sol\":{\"keccak256\":\"0xfd15286d2c0f4d4fe4d77d42c27e1b0aafb3bbf37faf8ec1b8e6b091b1ea176d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1291eb5b290366cad97766da87b233d908758eada2cc0e71051333590e1e2cfe\",\"dweb:/ipfs/QmT4ZKYx76U1x4T2eenCfGzck5tVPtjBiahYn5H6YHjgMt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_token0","type":"address"},{"internalType":"contract IERC20","name":"_token1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false}],"type":"event","name":"Swap","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":[{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"reserve0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"reserve1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/56_DEX/SimpleSwap.sol":"SimpleSwap"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/56_DEX/SimpleSwap.sol":{"keccak256":"0xfd15286d2c0f4d4fe4d77d42c27e1b0aafb3bbf37faf8ec1b8e6b091b1ea176d","urls":["bzz-raw://1291eb5b290366cad97766da87b233d908758eada2cc0e71051333590e1e2cfe","dweb:/ipfs/QmT4ZKYx76U1x4T2eenCfGzck5tVPtjBiahYn5H6YHjgMt"],"license":"MIT"}},"version":1},"id":119} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_token0","type":"address","internalType":"contract IERC20"},{"name":"_token1","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidity","inputs":[{"name":"amount0Desired","type":"uint256","internalType":"uint256"},{"name":"amount1Desired","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getAmountOut","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"reserveIn","type":"uint256","internalType":"uint256"},{"name":"reserveOut","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeLiquidity","inputs":[{"name":"liquidity","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"reserve0","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"reserve1","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"tokenIn","type":"address","internalType":"contract IERC20"},{"name":"amountOutMin","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"tokenOut","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"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":"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":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"}],"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":"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50604051612cf0380380612cf0833981810160405281019061003191906101b5565b6040518060400160405280600a81526020017f53696d706c6553776170000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f535300000000000000000000000000000000000000000000000000000000000081525081600390816100ac9190610441565b5080600490816100bc9190610441565b5050508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610510565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101738261014a565b9050919050565b5f61018482610169565b9050919050565b6101948161017a565b811461019e575f5ffd5b50565b5f815190506101af8161018b565b92915050565b5f5f604083850312156101cb576101ca610146565b5b5f6101d8858286016101a1565b92505060206101e9858286016101a1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061026e57607f821691505b6020821081036102815761028061022a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102a8565b6102ed86836102a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033161032c61032784610305565b61030e565b610305565b9050919050565b5f819050919050565b61034a83610317565b61035e61035682610338565b8484546102b4565b825550505050565b5f5f905090565b610375610366565b610380818484610341565b505050565b5f5b828110156103a65761039b5f82840161036d565b600181019050610387565b505050565b601f8211156103f957828211156103f8576103c581610287565b6103ce83610299565b6103d785610299565b60208610156103e4575f90505b8083016103f382840382610385565b505050505b5b505050565b5f82821c905092915050565b5f6104195f19846008026103fe565b1980831691505092915050565b5f610431838361040a565b9150826002028217905092915050565b61044a826101f3565b67ffffffffffffffff811115610463576104626101fd565b5b61046d8254610257565b6104788282856103ab565b5f60209050601f8311600181146104a9575f8415610497578287015190505b6104a18582610426565b865550610508565b601f1984166104b786610287565b5f5b828110156104de578489015182556001820191506020850194506020810190506104b9565b868310156104fb57848901516104f7601f89168261040a565b8355505b6001600288020188555050505b505050505050565b6127d38061051d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063443cb4bc116100a05780639c8f9f231161006f5780639c8f9f23146102d05780639cd441da14610301578063a9059cbb14610331578063d21220a714610361578063dd62ed3e1461037f57610109565b8063443cb4bc146102465780635a76f25e1461026457806370a082311461028257806395d89b41146102b257610109565b806318160ddd116100dc57806318160ddd146101a957806323b872dd146101c7578063313ce567146101f7578063432643491461021557610109565b8063054d50d41461010d57806306fdde031461013d578063095ea7b31461015b5780630dfe16811461018b575b5f5ffd5b61012760048036038101906101229190611dcc565b6103af565b6040516101349190611e2b565b60405180910390f35b61014561046a565b6040516101529190611eb4565b60405180910390f35b61017560048036038101906101709190611f2e565b6104fa565b6040516101829190611f86565b60405180910390f35b61019361051c565b6040516101a09190611ffa565b60405180910390f35b6101b1610541565b6040516101be9190611e2b565b60405180910390f35b6101e160048036038101906101dc9190612013565b61054a565b6040516101ee9190611f86565b60405180910390f35b6101ff610578565b60405161020c919061207e565b60405180910390f35b61022f600480360381019061022a91906120d2565b610580565b60405161023d929190612122565b60405180910390f35b61024e610cb2565b60405161025b9190611e2b565b60405180910390f35b61026c610cb8565b6040516102799190611e2b565b60405180910390f35b61029c60048036038101906102979190612149565b610cbe565b6040516102a99190611e2b565b60405180910390f35b6102ba610d03565b6040516102c79190611eb4565b60405180910390f35b6102ea60048036038101906102e59190612174565b610d93565b6040516102f892919061219f565b60405180910390f35b61031b600480360381019061031691906121c6565b611231565b6040516103289190611e2b565b60405180910390f35b61034b60048036038101906103469190611f2e565b6115bb565b6040516103589190611f86565b60405180910390f35b6103696115dd565b6040516103769190611ffa565b60405180910390f35b61039960048036038101906103949190612204565b611602565b6040516103a69190611e2b565b60405180910390f35b5f5f84116103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061228c565b60405180910390fd5b5f8311801561040057505f82115b61043f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610436906122f4565b60405180910390fd5b838361044b919061233f565b82856104579190612372565b61046191906123e0565b90509392505050565b6060600380546104799061243d565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061243d565b80156104f05780601f106104c7576101008083540402835291602001916104f0565b820191905f5260205f20905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b5f5f610504611684565b905061051181858561168b565b600191505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f5f610554611684565b905061056185828561169d565b61056c858585611730565b60019150509392505050565b5f6012905090565b5f5f5f85116105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906124b7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061066b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a19061251f565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610705919061254c565b602060405180830381865afa158015610720573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a1919061254c565b602060405180830381865afa1580156107bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190612579565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036109a85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506108658783836103af565b93508484116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a0906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b81526004016108e6939291906125a4565b6020604051808303815f875af1158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161096292919061262e565b6020604051808303815f875af115801561097e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612603565b50610b16565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506109d78782846103af565b9350848411610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a12906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b8152600401610a58939291906125a4565b6020604051808303815f875af1158015610a74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a989190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b8152600401610ad492919061262e565b6020604051808303815f875af1158015610af0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b149190612603565b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b70919061254c565b602060405180830381865afa158015610b8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0f919061254c565b602060405180830381865afa158015610c2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f24043855bfbfea0ccea141e5a73d7116bf0bfe083ea900a791f4b407ff03e52588888787604051610ca09493929190612655565b60405180910390a25050935093915050565b60075481565b60085481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060048054610d129061243d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e9061243d565b8015610d895780601f10610d6057610100808354040283529160200191610d89565b820191905f5260205f20905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b5f5f5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df0919061254c565b602060405180830381865afa158015610e0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2f9190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e8c919061254c565b602060405180830381865afa158015610ea7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612579565b90505f610ed6610541565b9050808387610ee59190612372565b610eef91906123e0565b9450808287610efe9190612372565b610f0891906123e0565b93505f85118015610f1857505f84115b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e906126e2565b60405180910390fd5b610f613387611820565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401610fbd92919061262e565b6020604051808303815f875af1158015610fd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffd9190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161105a92919061262e565b6020604051808303815f875af1158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190612603565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f5919061254c565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611194919061254c565b602060405180830381865afa1580156111af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d39190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a868660405161122192919061219f565b60405180910390a2505050915091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611290939291906125a4565b6020604051808303815f875af11580156112ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d09190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161132f939291906125a4565b6020604051808303815f875af115801561134b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190612603565b505f611379610541565b90505f810361139d5761139683856113919190612372565b61189f565b91506113da565b6113d760075482866113af9190612372565b6113b991906123e0565b60085483866113c89190612372565b6113d291906123e0565b611916565b91505b5f821161141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061274a565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611476919061254c565b602060405180830381865afa158015611491573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b59190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611515919061254c565b602060405180830381865afa158015611530573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115549190612579565b600881905550611564338361192e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85856040516115ac92919061219f565b60405180910390a25092915050565b5f5f6115c5611684565b90506115d2818585611730565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61169883838360016119ad565b505050565b5f6116a88484611602565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561172a578181101561171b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161171293929190612768565b60405180910390fd5b61172984848484035f6119ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a0575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611797919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611810575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611807919061254c565b60405180910390fd5b61181b838383611b7c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611890575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611887919061254c565b60405180910390fd5b61189b825f83611b7c565b5050565b5f6003821115611904578190505f60016002846118bc91906123e0565b6118c6919061233f565b90505b818110156118fe5780915060028182856118e391906123e0565b6118ed919061233f565b6118f791906123e0565b90506118c9565b50611911565b5f821461191057600190505b5b919050565b5f8183106119245781611926565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361199e575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611995919061254c565b60405180910390fd5b6119a95f8383611b7c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a14919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611a84919061254c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611b76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611b6d9190611e2b565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bcc578060025f828254611bc0919061233f565b92505081905550611c9a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c55578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611c4c93929190612768565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce1578060025f8282540392505081905550611d2b565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d889190611e2b565b60405180910390a3505050565b5f5ffd5b5f819050919050565b611dab81611d99565b8114611db5575f5ffd5b50565b5f81359050611dc681611da2565b92915050565b5f5f5f60608486031215611de357611de2611d95565b5b5f611df086828701611db8565b9350506020611e0186828701611db8565b9250506040611e1286828701611db8565b9150509250925092565b611e2581611d99565b82525050565b5f602082019050611e3e5f830184611e1c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e8682611e44565b611e908185611e4e565b9350611ea0818560208601611e5e565b611ea981611e6c565b840191505092915050565b5f6020820190508181035f830152611ecc8184611e7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611efd82611ed4565b9050919050565b611f0d81611ef3565b8114611f17575f5ffd5b50565b5f81359050611f2881611f04565b92915050565b5f5f60408385031215611f4457611f43611d95565b5b5f611f5185828601611f1a565b9250506020611f6285828601611db8565b9150509250929050565b5f8115159050919050565b611f8081611f6c565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f819050919050565b5f611fc2611fbd611fb884611ed4565b611f9f565b611ed4565b9050919050565b5f611fd382611fa8565b9050919050565b5f611fe482611fc9565b9050919050565b611ff481611fda565b82525050565b5f60208201905061200d5f830184611feb565b92915050565b5f5f5f6060848603121561202a57612029611d95565b5b5f61203786828701611f1a565b935050602061204886828701611f1a565b925050604061205986828701611db8565b9150509250925092565b5f60ff82169050919050565b61207881612063565b82525050565b5f6020820190506120915f83018461206f565b92915050565b5f6120a182611ef3565b9050919050565b6120b181612097565b81146120bb575f5ffd5b50565b5f813590506120cc816120a8565b92915050565b5f5f5f606084860312156120e9576120e8611d95565b5b5f6120f686828701611db8565b9350506020612107868287016120be565b925050604061211886828701611db8565b9150509250925092565b5f6040820190506121355f830185611e1c565b6121426020830184611feb565b9392505050565b5f6020828403121561215e5761215d611d95565b5b5f61216b84828501611f1a565b91505092915050565b5f6020828403121561218957612188611d95565b5b5f61219684828501611db8565b91505092915050565b5f6040820190506121b25f830185611e1c565b6121bf6020830184611e1c565b9392505050565b5f5f604083850312156121dc576121db611d95565b5b5f6121e985828601611db8565b92505060206121fa85828601611db8565b9150509250929050565b5f5f6040838503121561221a57612219611d95565b5b5f61222785828601611f1a565b925050602061223885828601611f1a565b9150509250929050565b7f494e53554646494349454e545f414d4f554e54000000000000000000000000005f82015250565b5f612276601383611e4e565b915061228182612242565b602082019050919050565b5f6020820190508181035f8301526122a38161226a565b9050919050565b7f494e53554646494349454e545f4c4951554944495459000000000000000000005f82015250565b5f6122de601683611e4e565b91506122e9826122aa565b602082019050919050565b5f6020820190508181035f83015261230b816122d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61234982611d99565b915061235483611d99565b925082820190508082111561236c5761236b612312565b5b92915050565b5f61237c82611d99565b915061238783611d99565b925082820261239581611d99565b915082820484148315176123ac576123ab612312565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6123ea82611d99565b91506123f583611d99565b925082612405576124046123b3565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245457607f821691505b60208210810361246757612466612410565b5b50919050565b7f494e53554646494349454e545f4f55545055545f414d4f554e540000000000005f82015250565b5f6124a1601a83611e4e565b91506124ac8261246d565b602082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f612509600d83611e4e565b9150612514826124d5565b602082019050919050565b5f6020820190508181035f830152612536816124fd565b9050919050565b61254681611ef3565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b5f8151905061257381611da2565b92915050565b5f6020828403121561258e5761258d611d95565b5b5f61259b84828501612565565b91505092915050565b5f6060820190506125b75f83018661253d565b6125c4602083018561253d565b6125d16040830184611e1c565b949350505050565b6125e281611f6c565b81146125ec575f5ffd5b50565b5f815190506125fd816125d9565b92915050565b5f6020828403121561261857612617611d95565b5b5f612625848285016125ef565b91505092915050565b5f6040820190506126415f83018561253d565b61264e6020830184611e1c565b9392505050565b5f6080820190506126685f830187611e1c565b612675602083018661253d565b6126826040830185611e1c565b61268f606083018461253d565b95945050505050565b7f494e53554646494349454e545f4c49515549444954595f4255524e45440000005f82015250565b5f6126cc601d83611e4e565b91506126d782612698565b602082019050919050565b5f6020820190508181035f8301526126f9816126c0565b9050919050565b7f494e53554646494349454e545f4c49515549444954595f4d494e5445440000005f82015250565b5f612734601d83611e4e565b915061273f82612700565b602082019050919050565b5f6020820190508181035f83015261276181612728565b9050919050565b5f60608201905061277b5f83018661253d565b6127886020830185611e1c565b6127956040830184611e1c565b94935050505056fea264697066735822122081eda57c90f9cf795bda1837e0408f2b3fce3417080131dc7829e2640e00074264736f6c63430008220033","sourceMap":"115:6241:113:-:0;;;652:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;741:7:113::1;732:6;;:16;;;;;;;;;;;;;;;;;;767:7;758:6;;:16;;;;;;;;;;;;;;;;;;652:129:::0;;115:6241;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:112::-;621:7;650:24;668:5;650:24;:::i;:::-;639:35;;568:112;;;:::o;686:154::-;775:40;809:5;775:40;:::i;:::-;768:5;765:51;755:79;;830:1;827;820:12;755:79;686:154;:::o;846:175::-;919:5;950:6;944:13;935:22;;966:49;1009:5;966:49;:::i;:::-;846:175;;;;:::o;1027:571::-;1138:6;1146;1195:2;1183:9;1174:7;1170:23;1166:32;1163:119;;;1201:79;;:::i;:::-;1163:119;1321:1;1346:80;1418:7;1409:6;1398:9;1394:22;1346:80;:::i;:::-;1336:90;;1292:144;1475:2;1501:80;1573:7;1564:6;1553:9;1549:22;1501:80;:::i;:::-;1491:90;;1446:145;1027:571;;;;;:::o;1604:99::-;1656:6;1690:5;1684:12;1674:22;;1604:99;;;:::o;1709:180::-;1757:77;1754:1;1747:88;1854:4;1851:1;1844:15;1878:4;1875:1;1868:15;1895:180;1943:77;1940:1;1933:88;2040:4;2037:1;2030:15;2064:4;2061:1;2054:15;2081:320;2125:6;2162:1;2156:4;2152:12;2142:22;;2209:1;2203:4;2199:12;2230:18;2220:81;;2286:4;2278:6;2274:17;2264:27;;2220:81;2348:2;2340:6;2337:14;2317:18;2314:38;2311:84;;2367:18;;:::i;:::-;2311:84;2132:269;2081:320;;;:::o;2407:141::-;2456:4;2479:3;2471:11;;2502:3;2499:1;2492:14;2536:4;2533:1;2523:18;2515:26;;2407:141;;;:::o;2554:93::-;2591:6;2638:2;2633;2626:5;2622:14;2618:23;2608:33;;2554:93;;;:::o;2653:107::-;2697:8;2747:5;2741:4;2737:16;2716:37;;2653:107;;;;:::o;2766:393::-;2835:6;2885:1;2873:10;2869:18;2908:97;2938:66;2927:9;2908:97;:::i;:::-;3026:39;3056:8;3045:9;3026:39;:::i;:::-;3014:51;;3098:4;3094:9;3087:5;3083:21;3074:30;;3147:4;3137:8;3133:19;3126:5;3123:30;3113:40;;2842:317;;2766:393;;;;;:::o;3165:77::-;3202:7;3231:5;3220:16;;3165:77;;;:::o;3248:60::-;3276:3;3297:5;3290:12;;3248:60;;;:::o;3314:142::-;3364:9;3397:53;3415:34;3424:24;3442:5;3424:24;:::i;:::-;3415:34;:::i;:::-;3397:53;:::i;:::-;3384:66;;3314:142;;;:::o;3462:75::-;3505:3;3526:5;3519:12;;3462:75;;;:::o;3543:269::-;3653:39;3684:7;3653:39;:::i;:::-;3714:91;3763:41;3787:16;3763:41;:::i;:::-;3755:6;3748:4;3742:11;3714:91;:::i;:::-;3708:4;3701:105;3619:193;3543:269;;;:::o;3818:73::-;3863:3;3884:1;3877:8;;3818:73;:::o;3897:189::-;3974:32;;:::i;:::-;4015:65;4073:6;4065;4059:4;4015:65;:::i;:::-;3950:136;3897:189;;:::o;4092:214::-;4177:1;4162:138;4187:9;4184:1;4181:16;4162:138;;;4239:51;4288:1;4284;4273:9;4269:17;4239:51;:::i;:::-;4212:1;4209;4205:9;4200:14;;4162:138;;;4166:14;4092:214;;:::o;4312:746::-;4413:2;4408:3;4405:11;4402:649;;;4442:10;4437:3;4434:19;4431:610;;;4488:38;4520:5;4488:38;:::i;:::-;4563:22;4581:3;4563:22;:::i;:::-;4622:29;4640:10;4622:29;:::i;:::-;4812:2;4800:10;4797:18;4794:79;;;4854:1;4838:17;;4794:79;4923:12;4913:8;4909:27;4953:74;5013:12;4999;4995:31;4982:11;4953:74;:::i;:::-;4454:587;;;;4431:610;4402:649;4312:746;;;:::o;5064:117::-;5118:8;5168:5;5162:4;5158:16;5137:37;;5064:117;;;;:::o;5187:169::-;5231:6;5264:51;5312:1;5308:6;5300:5;5297:1;5293:13;5264:51;:::i;:::-;5260:56;5345:4;5339;5335:15;5325:25;;5238:118;5187:169;;;;:::o;5361:295::-;5437:4;5583:29;5608:3;5602:4;5583:29;:::i;:::-;5575:37;;5645:3;5642:1;5638:11;5632:4;5629:21;5621:29;;5361:295;;;;:::o;5661:1395::-;5778:37;5811:3;5778:37;:::i;:::-;5880:18;5872:6;5869:30;5866:56;;;5902:18;;:::i;:::-;5866:56;5946:38;5978:4;5972:11;5946:38;:::i;:::-;6031:67;6091:6;6083;6077:4;6031:67;:::i;:::-;6125:1;6149:4;6136:17;;6181:2;6173:6;6170:14;6198:1;6193:618;;;;6855:1;6872:6;6869:77;;;6921:9;6916:3;6912:19;6906:26;6897:35;;6869:77;6972:67;7032:6;7025:5;6972:67;:::i;:::-;6966:4;6959:81;6828:222;6163:887;;6193:618;6245:4;6241:9;6233:6;6229:22;6279:37;6311:4;6279:37;:::i;:::-;6338:1;6352:208;6366:7;6363:1;6360:14;6352:208;;;6445:9;6440:3;6436:19;6430:26;6422:6;6415:42;6496:1;6488:6;6484:14;6474:24;;6543:2;6532:9;6528:18;6515:31;;6389:4;6386:1;6382:12;6377:17;;6352:208;;;6588:6;6579:7;6576:19;6573:179;;;6646:9;6641:3;6637:19;6631:26;6689:48;6731:4;6723:6;6719:17;6708:9;6689:48;:::i;:::-;6681:6;6674:64;6596:156;6573:179;6798:1;6794;6786:6;6782:14;6778:22;6772:4;6765:36;6200:611;;;6163:887;;5753:1303;;;5661:1395;;:::o;115:6241:113:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610109575f3560e01c8063443cb4bc116100a05780639c8f9f231161006f5780639c8f9f23146102d05780639cd441da14610301578063a9059cbb14610331578063d21220a714610361578063dd62ed3e1461037f57610109565b8063443cb4bc146102465780635a76f25e1461026457806370a082311461028257806395d89b41146102b257610109565b806318160ddd116100dc57806318160ddd146101a957806323b872dd146101c7578063313ce567146101f7578063432643491461021557610109565b8063054d50d41461010d57806306fdde031461013d578063095ea7b31461015b5780630dfe16811461018b575b5f5ffd5b61012760048036038101906101229190611dcc565b6103af565b6040516101349190611e2b565b60405180910390f35b61014561046a565b6040516101529190611eb4565b60405180910390f35b61017560048036038101906101709190611f2e565b6104fa565b6040516101829190611f86565b60405180910390f35b61019361051c565b6040516101a09190611ffa565b60405180910390f35b6101b1610541565b6040516101be9190611e2b565b60405180910390f35b6101e160048036038101906101dc9190612013565b61054a565b6040516101ee9190611f86565b60405180910390f35b6101ff610578565b60405161020c919061207e565b60405180910390f35b61022f600480360381019061022a91906120d2565b610580565b60405161023d929190612122565b60405180910390f35b61024e610cb2565b60405161025b9190611e2b565b60405180910390f35b61026c610cb8565b6040516102799190611e2b565b60405180910390f35b61029c60048036038101906102979190612149565b610cbe565b6040516102a99190611e2b565b60405180910390f35b6102ba610d03565b6040516102c79190611eb4565b60405180910390f35b6102ea60048036038101906102e59190612174565b610d93565b6040516102f892919061219f565b60405180910390f35b61031b600480360381019061031691906121c6565b611231565b6040516103289190611e2b565b60405180910390f35b61034b60048036038101906103469190611f2e565b6115bb565b6040516103589190611f86565b60405180910390f35b6103696115dd565b6040516103769190611ffa565b60405180910390f35b61039960048036038101906103949190612204565b611602565b6040516103a69190611e2b565b60405180910390f35b5f5f84116103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e99061228c565b60405180910390fd5b5f8311801561040057505f82115b61043f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610436906122f4565b60405180910390fd5b838361044b919061233f565b82856104579190612372565b61046191906123e0565b90509392505050565b6060600380546104799061243d565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061243d565b80156104f05780601f106104c7576101008083540402835291602001916104f0565b820191905f5260205f20905b8154815290600101906020018083116104d357829003601f168201915b5050505050905090565b5f5f610504611684565b905061051181858561168b565b600191505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f5f610554611684565b905061056185828561169d565b61056c858585611730565b60019150509392505050565b5f6012905090565b5f5f5f85116105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906124b7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061066b575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a19061251f565b60405180910390fd5b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610705919061254c565b602060405180830381865afa158015610720573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a1919061254c565b602060405180830381865afa1580156107bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e09190612579565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036109a85760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506108658783836103af565b93508484116108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a0906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b81526004016108e6939291906125a4565b6020604051808303815f875af1158015610902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109269190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161096292919061262e565b6020604051808303815f875af115801561097e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a29190612603565b50610b16565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506109d78782846103af565b9350848411610a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a12906124b7565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308a6040518463ffffffff1660e01b8152600401610a58939291906125a4565b6020604051808303815f875af1158015610a74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a989190612603565b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b8152600401610ad492919061262e565b6020604051808303815f875af1158015610af0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b149190612603565b505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b70919061254c565b602060405180830381865afa158015610b8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610baf9190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0f919061254c565b602060405180830381865afa158015610c2a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4e9190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f24043855bfbfea0ccea141e5a73d7116bf0bfe083ea900a791f4b407ff03e52588888787604051610ca09493929190612655565b60405180910390a25050935093915050565b60075481565b60085481565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060048054610d129061243d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3e9061243d565b8015610d895780601f10610d6057610100808354040283529160200191610d89565b820191905f5260205f20905b815481529060010190602001808311610d6c57829003601f168201915b5050505050905090565b5f5f5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610df0919061254c565b602060405180830381865afa158015610e0b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e2f9190612579565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e8c919061254c565b602060405180830381865afa158015610ea7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecb9190612579565b90505f610ed6610541565b9050808387610ee59190612372565b610eef91906123e0565b9450808287610efe9190612372565b610f0891906123e0565b93505f85118015610f1857505f84115b610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e906126e2565b60405180910390fd5b610f613387611820565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff1660e01b8152600401610fbd92919061262e565b6020604051808303815f875af1158015610fd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffd9190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33866040518363ffffffff1660e01b815260040161105a92919061262e565b6020604051808303815f875af1158015611076573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a9190612603565b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110f5919061254c565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611194919061254c565b602060405180830381865afa1580156111af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d39190612579565b6008819055503373ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a868660405161122192919061219f565b60405180910390a2505050915091565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401611290939291906125a4565b6020604051808303815f875af11580156112ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d09190612603565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161132f939291906125a4565b6020604051808303815f875af115801561134b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136f9190612603565b505f611379610541565b90505f810361139d5761139683856113919190612372565b61189f565b91506113da565b6113d760075482866113af9190612372565b6113b991906123e0565b60085483866113c89190612372565b6113d291906123e0565b611916565b91505b5f821161141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061274a565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611476919061254c565b602060405180830381865afa158015611491573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b59190612579565b60078190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611515919061254c565b602060405180830381865afa158015611530573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115549190612579565b600881905550611564338361192e565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85856040516115ac92919061219f565b60405180910390a25092915050565b5f5f6115c5611684565b90506115d2818585611730565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61169883838360016119ad565b505050565b5f6116a88484611602565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561172a578181101561171b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161171293929190612768565b60405180910390fd5b61172984848484035f6119ad565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117a0575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611797919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611810575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611807919061254c565b60405180910390fd5b61181b838383611b7c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611890575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611887919061254c565b60405180910390fd5b61189b825f83611b7c565b5050565b5f6003821115611904578190505f60016002846118bc91906123e0565b6118c6919061233f565b90505b818110156118fe5780915060028182856118e391906123e0565b6118ed919061233f565b6118f791906123e0565b90506118c9565b50611911565b5f821461191057600190505b5b919050565b5f8183106119245781611926565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361199e575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611995919061254c565b60405180910390fd5b6119a95f8383611b7c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611a1d575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611a14919061254c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8d575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611a84919061254c565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611b76578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611b6d9190611e2b565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bcc578060025f828254611bc0919061233f565b92505081905550611c9a565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611c55578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611c4c93929190612768565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ce1578060025f8282540392505081905550611d2b565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d889190611e2b565b60405180910390a3505050565b5f5ffd5b5f819050919050565b611dab81611d99565b8114611db5575f5ffd5b50565b5f81359050611dc681611da2565b92915050565b5f5f5f60608486031215611de357611de2611d95565b5b5f611df086828701611db8565b9350506020611e0186828701611db8565b9250506040611e1286828701611db8565b9150509250925092565b611e2581611d99565b82525050565b5f602082019050611e3e5f830184611e1c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e8682611e44565b611e908185611e4e565b9350611ea0818560208601611e5e565b611ea981611e6c565b840191505092915050565b5f6020820190508181035f830152611ecc8184611e7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611efd82611ed4565b9050919050565b611f0d81611ef3565b8114611f17575f5ffd5b50565b5f81359050611f2881611f04565b92915050565b5f5f60408385031215611f4457611f43611d95565b5b5f611f5185828601611f1a565b9250506020611f6285828601611db8565b9150509250929050565b5f8115159050919050565b611f8081611f6c565b82525050565b5f602082019050611f995f830184611f77565b92915050565b5f819050919050565b5f611fc2611fbd611fb884611ed4565b611f9f565b611ed4565b9050919050565b5f611fd382611fa8565b9050919050565b5f611fe482611fc9565b9050919050565b611ff481611fda565b82525050565b5f60208201905061200d5f830184611feb565b92915050565b5f5f5f6060848603121561202a57612029611d95565b5b5f61203786828701611f1a565b935050602061204886828701611f1a565b925050604061205986828701611db8565b9150509250925092565b5f60ff82169050919050565b61207881612063565b82525050565b5f6020820190506120915f83018461206f565b92915050565b5f6120a182611ef3565b9050919050565b6120b181612097565b81146120bb575f5ffd5b50565b5f813590506120cc816120a8565b92915050565b5f5f5f606084860312156120e9576120e8611d95565b5b5f6120f686828701611db8565b9350506020612107868287016120be565b925050604061211886828701611db8565b9150509250925092565b5f6040820190506121355f830185611e1c565b6121426020830184611feb565b9392505050565b5f6020828403121561215e5761215d611d95565b5b5f61216b84828501611f1a565b91505092915050565b5f6020828403121561218957612188611d95565b5b5f61219684828501611db8565b91505092915050565b5f6040820190506121b25f830185611e1c565b6121bf6020830184611e1c565b9392505050565b5f5f604083850312156121dc576121db611d95565b5b5f6121e985828601611db8565b92505060206121fa85828601611db8565b9150509250929050565b5f5f6040838503121561221a57612219611d95565b5b5f61222785828601611f1a565b925050602061223885828601611f1a565b9150509250929050565b7f494e53554646494349454e545f414d4f554e54000000000000000000000000005f82015250565b5f612276601383611e4e565b915061228182612242565b602082019050919050565b5f6020820190508181035f8301526122a38161226a565b9050919050565b7f494e53554646494349454e545f4c4951554944495459000000000000000000005f82015250565b5f6122de601683611e4e565b91506122e9826122aa565b602082019050919050565b5f6020820190508181035f83015261230b816122d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61234982611d99565b915061235483611d99565b925082820190508082111561236c5761236b612312565b5b92915050565b5f61237c82611d99565b915061238783611d99565b925082820261239581611d99565b915082820484148315176123ac576123ab612312565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6123ea82611d99565b91506123f583611d99565b925082612405576124046123b3565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061245457607f821691505b60208210810361246757612466612410565b5b50919050565b7f494e53554646494349454e545f4f55545055545f414d4f554e540000000000005f82015250565b5f6124a1601a83611e4e565b91506124ac8261246d565b602082019050919050565b5f6020820190508181035f8301526124ce81612495565b9050919050565b7f494e56414c49445f544f4b454e000000000000000000000000000000000000005f82015250565b5f612509600d83611e4e565b9150612514826124d5565b602082019050919050565b5f6020820190508181035f830152612536816124fd565b9050919050565b61254681611ef3565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b5f8151905061257381611da2565b92915050565b5f6020828403121561258e5761258d611d95565b5b5f61259b84828501612565565b91505092915050565b5f6060820190506125b75f83018661253d565b6125c4602083018561253d565b6125d16040830184611e1c565b949350505050565b6125e281611f6c565b81146125ec575f5ffd5b50565b5f815190506125fd816125d9565b92915050565b5f6020828403121561261857612617611d95565b5b5f612625848285016125ef565b91505092915050565b5f6040820190506126415f83018561253d565b61264e6020830184611e1c565b9392505050565b5f6080820190506126685f830187611e1c565b612675602083018661253d565b6126826040830185611e1c565b61268f606083018461253d565b95945050505050565b7f494e53554646494349454e545f4c49515549444954595f4255524e45440000005f82015250565b5f6126cc601d83611e4e565b91506126d782612698565b602082019050919050565b5f6020820190508181035f8301526126f9816126c0565b9050919050565b7f494e53554646494349454e545f4c49515549444954595f4d494e5445440000005f82015250565b5f612734601d83611e4e565b915061273f82612700565b602082019050919050565b5f6020820190508181035f83015261276181612728565b9050919050565b5f60608201905061277b5f83018661253d565b6127886020830185611e1c565b6127956040830184611e1c565b94935050505056fea264697066735822122081eda57c90f9cf795bda1837e0408f2b3fce3417080131dc7829e2640e00074264736f6c63430008220033","sourceMap":"115:6241:113:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4344:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;170:20:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4854:1500:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;246:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;272;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3142:904:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1666:1311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;196:20:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4344:312:113;4435:14;4480:1;4469:8;:12;4461:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4535:1;4523:9;:13;:31;;;;;4553:1;4540:10;:14;4523:31;4515:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4640:8;4628:9;:20;;;;:::i;:::-;4614:10;4603:8;:21;;;;:::i;:::-;:46;;;;:::i;:::-;4591:58;;4344:312;;;;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;170:20:113:-;;;;;;;;;;;;;:::o;2803:97:22:-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2688:82::-;2737:5;2761:2;2754:9;;2688:82;:::o;4854:1500:113:-;4936:14;4952:15;4997:1;4986:8;:12;4978:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5058:6;;;;;;;;;;;5047:17;;:7;:17;;;:38;;;;5079:6;;;;;;;;;;;5068:17;;:7;:17;;;5047:38;5039:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5122:13;5138:6;;;;;;;;;;;:16;;;5163:4;5138:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5122:47;;5179:13;5195:6;;;;;;;;;;;:16;;;5220:4;5195:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5179:47;;5251:6;;;;;;;;;;;5240:17;;:7;:17;;;5237:889;;5326:6;;;;;;;;;;;5315:17;;5407:42;5420:8;5430;5440;5407:12;:42::i;:::-;5395:54;;5483:12;5471:9;:24;5463:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;5568:7;:20;;;5589:10;5609:4;5616:8;5568:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5639:8;:17;;;5657:10;5669:9;5639:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5237:889;;;5762:6;;;;;;;;;;;5751:17;;5843:42;5856:8;5866;5876;5843:12;:42::i;:::-;5831:54;;5919:12;5907:9;:24;5899:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;6004:7;:20;;;6025:10;6045:4;6052:8;6004:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6075:8;:17;;;6093:10;6105:9;6075:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5237:889;6174:6;;;;;;;;;;;:16;;;6199:4;6174:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6163:8;:42;;;;6226:6;;;;;;;;;;;:16;;;6251:4;6226:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6215:8;:42;;;;6278:10;6273:74;;;6290:8;6308:7;6318:9;6337:8;6273:74;;;;;;;;;:::i;:::-;;;;;;;;4968:1386;;4854:1500;;;;;;:::o;246:20::-;;;;:::o;272:::-;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3142:904:113:-;3201:12;3215;3263:13;3279:6;;;;;;;;;;;:16;;;3304:4;3279:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3263:47;;3320:13;3336:6;;;;;;;;;;;:16;;;3361:4;3336:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3320:47;;3433:17;3453:13;:11;:13::i;:::-;3433:33;;3509:12;3498:8;3486:9;:20;;;;:::i;:::-;:35;;;;:::i;:::-;3476:45;;3564:12;3553:8;3541:9;:20;;;;:::i;:::-;:35;;;;:::i;:::-;3531:45;;3634:1;3624:7;:11;:26;;;;;3649:1;3639:7;:11;3624:26;3616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3714:28;3720:10;3732:9;3714:5;:28::i;:::-;3776:6;;;;;;;;;;;:15;;;3792:10;3804:7;3776:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3822:6;;;;;;;;;;;:15;;;3838:10;3850:7;3822:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3906:6;;;;;;;;;;;:16;;;3931:4;3906:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3895:8;:42;;;;3958:6;;;;;;;;;;;:16;;;3983:4;3958:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3947:8;:42;;;;4010:10;4005:34;;;4022:7;4031;4005:34;;;;;;;:::i;:::-;;;;;;;;3229:817;;;3142:904;;;:::o;1666:1311::-;1745:14;1850:6;;;;;;;;;;;:19;;;1870:10;1890:4;1897:14;1850:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1922:6;;;;;;;;;;;:19;;;1942:10;1962:4;1969:14;1922:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2030:17;2050:13;:11;:13::i;:::-;2030:33;;2093:1;2077:12;:17;2073:474;;2238:37;2260:14;2243;:31;;;;:::i;:::-;2238:4;:37::i;:::-;2226:49;;2073:474;;;2450:86;2486:8;;2471:12;2454:14;:29;;;;:::i;:::-;:40;;;;:::i;:::-;2527:8;;2513:12;2496:14;:29;;;;:::i;:::-;:39;;;;:::i;:::-;2450:3;:86::i;:::-;2438:98;;2073:474;2612:1;2600:9;:13;2592:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2696:6;;;;;;;;;;;:16;;;2721:4;2696:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2685:8;:42;;;;2748:6;;;;;;;;;;;:16;;;2773:4;2748:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2737:8;:42;;;;2870:28;2876:10;2888:9;2870:5;:28::i;:::-;2927:10;2922:48;;;2939:14;2955;2922:48;;;;;;;:::i;:::-;;;;;;;;1760:1217;1666:1311;;;;:::o;3244:178:22:-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;196:20:113:-;;;;;;;;;;;;;:::o;3455:140:22:-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;1044:292:113:-;1089:6;1115:1;1111;:5;1107:223;;;1136:1;1132:5;;1151:6;1168:1;1164;1160;:5;;;;:::i;:::-;:9;;;;:::i;:::-;1151:18;;1183:89;1194:1;1190;:5;1183:89;;;1219:1;1215:5;;1256:1;1251;1247;1243;:5;;;;:::i;:::-;:9;;;;:::i;:::-;1242:15;;;;:::i;:::-;1238:19;;1183:89;;;1118:164;1107:223;;;1297:1;1292;:6;1288:42;;1318:1;1314:5;;1288:42;1107:223;1044:292;;;:::o;819:94::-;871:6;897:1;893;:5;:13;;905:1;893:13;;;901:1;893:13;889:17;;819:94;;;;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:619::-;767:6;775;783;832:2;820:9;811:7;807:23;803:32;800:119;;;838:79;;:::i;:::-;800:119;958:1;983:53;1028:7;1019:6;1008:9;1004:22;983:53;:::i;:::-;973:63;;929:117;1085:2;1111:53;1156:7;1147:6;1136:9;1132:22;1111:53;:::i;:::-;1101:63;;1056:118;1213:2;1239:53;1284:7;1275:6;1264:9;1260:22;1239:53;:::i;:::-;1229:63;;1184:118;690:619;;;;;:::o;1315:118::-;1402:24;1420:5;1402:24;:::i;:::-;1397:3;1390:37;1315:118;;:::o;1439:222::-;1532:4;1570:2;1559:9;1555:18;1547:26;;1583:71;1651:1;1640:9;1636:17;1627:6;1583:71;:::i;:::-;1439:222;;;;:::o;1667:99::-;1719:6;1753:5;1747:12;1737:22;;1667:99;;;:::o;1772:169::-;1856:11;1890:6;1885:3;1878:19;1930:4;1925:3;1921:14;1906:29;;1772:169;;;;:::o;1947:139::-;2036:6;2031:3;2026;2020:23;2077:1;2068:6;2063:3;2059:16;2052:27;1947:139;;;:::o;2092:102::-;2133:6;2184:2;2180:7;2175:2;2168:5;2164:14;2160:28;2150:38;;2092:102;;;:::o;2200:377::-;2288:3;2316:39;2349:5;2316:39;:::i;:::-;2371:71;2435:6;2430:3;2371:71;:::i;:::-;2364:78;;2451:65;2509:6;2504:3;2497:4;2490:5;2486:16;2451:65;:::i;:::-;2541:29;2563:6;2541:29;:::i;:::-;2536:3;2532:39;2525:46;;2292:285;2200:377;;;;:::o;2583:313::-;2696:4;2734:2;2723:9;2719:18;2711:26;;2783:9;2777:4;2773:20;2769:1;2758:9;2754:17;2747:47;2811:78;2884:4;2875:6;2811:78;:::i;:::-;2803:86;;2583:313;;;;:::o;2902:126::-;2939:7;2979:42;2972:5;2968:54;2957:65;;2902:126;;;:::o;3034:96::-;3071:7;3100:24;3118:5;3100:24;:::i;:::-;3089:35;;3034:96;;;:::o;3136:122::-;3209:24;3227:5;3209:24;:::i;:::-;3202:5;3199:35;3189:63;;3248:1;3245;3238:12;3189:63;3136:122;:::o;3264:139::-;3310:5;3348:6;3335:20;3326:29;;3364:33;3391:5;3364:33;:::i;:::-;3264:139;;;;:::o;3409:474::-;3477:6;3485;3534:2;3522:9;3513:7;3509:23;3505:32;3502:119;;;3540:79;;:::i;:::-;3502:119;3660:1;3685:53;3730:7;3721:6;3710:9;3706:22;3685:53;:::i;:::-;3675:63;;3631:117;3787:2;3813:53;3858:7;3849:6;3838:9;3834:22;3813:53;:::i;:::-;3803:63;;3758:118;3409:474;;;;;:::o;3889:90::-;3923:7;3966:5;3959:13;3952:21;3941:32;;3889:90;;;:::o;3985:109::-;4066:21;4081:5;4066:21;:::i;:::-;4061:3;4054:34;3985:109;;:::o;4100:210::-;4187:4;4225:2;4214:9;4210:18;4202:26;;4238:65;4300:1;4289:9;4285:17;4276:6;4238:65;:::i;:::-;4100:210;;;;:::o;4316:60::-;4344:3;4365:5;4358:12;;4316:60;;;:::o;4382:142::-;4432:9;4465:53;4483:34;4492:24;4510:5;4492:24;:::i;:::-;4483:34;:::i;:::-;4465:53;:::i;:::-;4452:66;;4382:142;;;:::o;4530:126::-;4580:9;4613:37;4644:5;4613:37;:::i;:::-;4600:50;;4530:126;;;:::o;4662:142::-;4728:9;4761:37;4792:5;4761:37;:::i;:::-;4748:50;;4662:142;;;:::o;4810:163::-;4913:53;4960:5;4913:53;:::i;:::-;4908:3;4901:66;4810:163;;:::o;4979:254::-;5088:4;5126:2;5115:9;5111:18;5103:26;;5139:87;5223:1;5212:9;5208:17;5199:6;5139:87;:::i;:::-;4979:254;;;;:::o;5239:619::-;5316:6;5324;5332;5381:2;5369:9;5360:7;5356:23;5352:32;5349:119;;;5387:79;;:::i;:::-;5349:119;5507:1;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5478:117;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5762:2;5788:53;5833:7;5824:6;5813:9;5809:22;5788:53;:::i;:::-;5778:63;;5733:118;5239:619;;;;;:::o;5864:86::-;5899:7;5939:4;5932:5;5928:16;5917:27;;5864:86;;;:::o;5956:112::-;6039:22;6055:5;6039:22;:::i;:::-;6034:3;6027:35;5956:112;;:::o;6074:214::-;6163:4;6201:2;6190:9;6186:18;6178:26;;6214:67;6278:1;6267:9;6263:17;6254:6;6214:67;:::i;:::-;6074:214;;;;:::o;6294:112::-;6347:7;6376:24;6394:5;6376:24;:::i;:::-;6365:35;;6294:112;;;:::o;6412:154::-;6501:40;6535:5;6501:40;:::i;:::-;6494:5;6491:51;6481:79;;6556:1;6553;6546:12;6481:79;6412:154;:::o;6572:171::-;6634:5;6672:6;6659:20;6650:29;;6688:49;6731:5;6688:49;:::i;:::-;6572:171;;;;:::o;6749:651::-;6842:6;6850;6858;6907:2;6895:9;6886:7;6882:23;6878:32;6875:119;;;6913:79;;:::i;:::-;6875:119;7033:1;7058:53;7103:7;7094:6;7083:9;7079:22;7058:53;:::i;:::-;7048:63;;7004:117;7160:2;7186:69;7247:7;7238:6;7227:9;7223:22;7186:69;:::i;:::-;7176:79;;7131:134;7304:2;7330:53;7375:7;7366:6;7355:9;7351:22;7330:53;:::i;:::-;7320:63;;7275:118;6749:651;;;;;:::o;7406:364::-;7543:4;7581:2;7570:9;7566:18;7558:26;;7594:71;7662:1;7651:9;7647:17;7638:6;7594:71;:::i;:::-;7675:88;7759:2;7748:9;7744:18;7735:6;7675:88;:::i;:::-;7406:364;;;;;:::o;7776:329::-;7835:6;7884:2;7872:9;7863:7;7859:23;7855:32;7852:119;;;7890:79;;:::i;:::-;7852:119;8010:1;8035:53;8080:7;8071:6;8060:9;8056:22;8035:53;:::i;:::-;8025:63;;7981:117;7776:329;;;;:::o;8111:::-;8170:6;8219:2;8207:9;8198:7;8194:23;8190:32;8187:119;;;8225:79;;:::i;:::-;8187:119;8345:1;8370:53;8415:7;8406:6;8395:9;8391:22;8370:53;:::i;:::-;8360:63;;8316:117;8111:329;;;;:::o;8446:332::-;8567:4;8605:2;8594:9;8590:18;8582:26;;8618:71;8686:1;8675:9;8671:17;8662:6;8618:71;:::i;:::-;8699:72;8767:2;8756:9;8752:18;8743:6;8699:72;:::i;:::-;8446:332;;;;;:::o;8784:474::-;8852:6;8860;8909:2;8897:9;8888:7;8884:23;8880:32;8877:119;;;8915:79;;:::i;:::-;8877:119;9035:1;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9006:117;9162:2;9188:53;9233:7;9224:6;9213:9;9209:22;9188:53;:::i;:::-;9178:63;;9133:118;8784:474;;;;;:::o;9264:::-;9332:6;9340;9389:2;9377:9;9368:7;9364:23;9360:32;9357:119;;;9395:79;;:::i;:::-;9357:119;9515:1;9540:53;9585:7;9576:6;9565:9;9561:22;9540:53;:::i;:::-;9530:63;;9486:117;9642:2;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9613:118;9264:474;;;;;:::o;9744:169::-;9884:21;9880:1;9872:6;9868:14;9861:45;9744:169;:::o;9919:366::-;10061:3;10082:67;10146:2;10141:3;10082:67;:::i;:::-;10075:74;;10158:93;10247:3;10158:93;:::i;:::-;10276:2;10271:3;10267:12;10260:19;;9919:366;;;:::o;10291:419::-;10457:4;10495:2;10484:9;10480:18;10472:26;;10544:9;10538:4;10534:20;10530:1;10519:9;10515:17;10508:47;10572:131;10698:4;10572:131;:::i;:::-;10564:139;;10291:419;;;:::o;10716:172::-;10856:24;10852:1;10844:6;10840:14;10833:48;10716:172;:::o;10894:366::-;11036:3;11057:67;11121:2;11116:3;11057:67;:::i;:::-;11050:74;;11133:93;11222:3;11133:93;:::i;:::-;11251:2;11246:3;11242:12;11235:19;;10894:366;;;:::o;11266:419::-;11432:4;11470:2;11459:9;11455:18;11447:26;;11519:9;11513:4;11509:20;11505:1;11494:9;11490:17;11483:47;11547:131;11673:4;11547:131;:::i;:::-;11539:139;;11266:419;;;:::o;11691:180::-;11739:77;11736:1;11729:88;11836:4;11833:1;11826:15;11860:4;11857:1;11850:15;11877:191;11917:3;11936:20;11954:1;11936:20;:::i;:::-;11931:25;;11970:20;11988:1;11970:20;:::i;:::-;11965:25;;12013:1;12010;12006:9;11999:16;;12034:3;12031:1;12028:10;12025:36;;;12041:18;;:::i;:::-;12025:36;11877:191;;;;:::o;12074:410::-;12114:7;12137:20;12155:1;12137:20;:::i;:::-;12132:25;;12171:20;12189:1;12171:20;:::i;:::-;12166:25;;12226:1;12223;12219:9;12248:30;12266:11;12248:30;:::i;:::-;12237:41;;12427:1;12418:7;12414:15;12411:1;12408:22;12388:1;12381:9;12361:83;12338:139;;12457:18;;:::i;:::-;12338:139;12122:362;12074:410;;;;:::o;12490:180::-;12538:77;12535:1;12528:88;12635:4;12632:1;12625:15;12659:4;12656:1;12649:15;12676:185;12716:1;12733:20;12751:1;12733:20;:::i;:::-;12728:25;;12767:20;12785:1;12767:20;:::i;:::-;12762:25;;12806:1;12796:35;;12811:18;;:::i;:::-;12796:35;12853:1;12850;12846:9;12841:14;;12676:185;;;;:::o;12867:180::-;12915:77;12912:1;12905:88;13012:4;13009:1;13002:15;13036:4;13033:1;13026:15;13053:320;13097:6;13134:1;13128:4;13124:12;13114:22;;13181:1;13175:4;13171:12;13202:18;13192:81;;13258:4;13250:6;13246:17;13236:27;;13192:81;13320:2;13312:6;13309:14;13289:18;13286:38;13283:84;;13339:18;;:::i;:::-;13283:84;13104:269;13053:320;;;:::o;13379:176::-;13519:28;13515:1;13507:6;13503:14;13496:52;13379:176;:::o;13561:366::-;13703:3;13724:67;13788:2;13783:3;13724:67;:::i;:::-;13717:74;;13800:93;13889:3;13800:93;:::i;:::-;13918:2;13913:3;13909:12;13902:19;;13561:366;;;:::o;13933:419::-;14099:4;14137:2;14126:9;14122:18;14114:26;;14186:9;14180:4;14176:20;14172:1;14161:9;14157:17;14150:47;14214:131;14340:4;14214:131;:::i;:::-;14206:139;;13933:419;;;:::o;14358:163::-;14498:15;14494:1;14486:6;14482:14;14475:39;14358:163;:::o;14527:366::-;14669:3;14690:67;14754:2;14749:3;14690:67;:::i;:::-;14683:74;;14766:93;14855:3;14766:93;:::i;:::-;14884:2;14879:3;14875:12;14868:19;;14527:366;;;:::o;14899:419::-;15065:4;15103:2;15092:9;15088:18;15080:26;;15152:9;15146:4;15142:20;15138:1;15127:9;15123:17;15116:47;15180:131;15306:4;15180:131;:::i;:::-;15172:139;;14899:419;;;:::o;15324:118::-;15411:24;15429:5;15411:24;:::i;:::-;15406:3;15399:37;15324:118;;:::o;15448:222::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15592:71;15660:1;15649:9;15645:17;15636:6;15592:71;:::i;:::-;15448:222;;;;:::o;15676:143::-;15733:5;15764:6;15758:13;15749:22;;15780:33;15807:5;15780:33;:::i;:::-;15676:143;;;;:::o;15825:351::-;15895:6;15944:2;15932:9;15923:7;15919:23;15915:32;15912:119;;;15950:79;;:::i;:::-;15912:119;16070:1;16095:64;16151:7;16142:6;16131:9;16127:22;16095:64;:::i;:::-;16085:74;;16041:128;15825:351;;;;:::o;16182:442::-;16331:4;16369:2;16358:9;16354:18;16346:26;;16382:71;16450:1;16439:9;16435:17;16426:6;16382:71;:::i;:::-;16463:72;16531:2;16520:9;16516:18;16507:6;16463:72;:::i;:::-;16545;16613:2;16602:9;16598:18;16589:6;16545:72;:::i;:::-;16182:442;;;;;;:::o;16630:116::-;16700:21;16715:5;16700:21;:::i;:::-;16693:5;16690:32;16680:60;;16736:1;16733;16726:12;16680:60;16630:116;:::o;16752:137::-;16806:5;16837:6;16831:13;16822:22;;16853:30;16877:5;16853:30;:::i;:::-;16752:137;;;;:::o;16895:345::-;16962:6;17011:2;16999:9;16990:7;16986:23;16982:32;16979:119;;;17017:79;;:::i;:::-;16979:119;17137:1;17162:61;17215:7;17206:6;17195:9;17191:22;17162:61;:::i;:::-;17152:71;;17108:125;16895:345;;;;:::o;17246:332::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17418:71;17486:1;17475:9;17471:17;17462:6;17418:71;:::i;:::-;17499:72;17567:2;17556:9;17552:18;17543:6;17499:72;:::i;:::-;17246:332;;;;;:::o;17584:553::-;17761:4;17799:3;17788:9;17784:19;17776:27;;17813:71;17881:1;17870:9;17866:17;17857:6;17813:71;:::i;:::-;17894:72;17962:2;17951:9;17947:18;17938:6;17894:72;:::i;:::-;17976;18044:2;18033:9;18029:18;18020:6;17976:72;:::i;:::-;18058;18126:2;18115:9;18111:18;18102:6;18058:72;:::i;:::-;17584:553;;;;;;;:::o;18143:179::-;18283:31;18279:1;18271:6;18267:14;18260:55;18143:179;:::o;18328:366::-;18470:3;18491:67;18555:2;18550:3;18491:67;:::i;:::-;18484:74;;18567:93;18656:3;18567:93;:::i;:::-;18685:2;18680:3;18676:12;18669:19;;18328:366;;;:::o;18700:419::-;18866:4;18904:2;18893:9;18889:18;18881:26;;18953:9;18947:4;18943:20;18939:1;18928:9;18924:17;18917:47;18981:131;19107:4;18981:131;:::i;:::-;18973:139;;18700:419;;;:::o;19125:179::-;19265:31;19261:1;19253:6;19249:14;19242:55;19125:179;:::o;19310:366::-;19452:3;19473:67;19537:2;19532:3;19473:67;:::i;:::-;19466:74;;19549:93;19638:3;19549:93;:::i;:::-;19667:2;19662:3;19658:12;19651:19;;19310:366;;;:::o;19682:419::-;19848:4;19886:2;19875:9;19871:18;19863:26;;19935:9;19929:4;19925:20;19921:1;19910:9;19906:17;19899:47;19963:131;20089:4;19963:131;:::i;:::-;19955:139;;19682:419;;;:::o;20107:442::-;20256:4;20294:2;20283:9;20279:18;20271:26;;20307:71;20375:1;20364:9;20360:17;20351:6;20307:71;:::i;:::-;20388:72;20456:2;20445:9;20441:18;20432:6;20388:72;:::i;:::-;20470;20538:2;20527:9;20523:18;20514:6;20470:72;:::i;:::-;20107:442;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"addLiquidity(uint256,uint256)":"9cd441da","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","getAmountOut(uint256,uint256,uint256)":"054d50d4","name()":"06fdde03","removeLiquidity(uint256)":"9c8f9f23","reserve0()":"443cb4bc","reserve1()":"5a76f25e","swap(uint256,address,uint256)":"43264349","symbol()":"95d89b41","token0()":"0dfe1681","token1()":"d21220a7","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token1\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"name\":\"Swap\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveOut\",\"type\":\"uint256\"}],\"name\":\"getAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserve0\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserve1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"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\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/56_DEX/SimpleSwap.sol\":\"SimpleSwap\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/56_DEX/SimpleSwap.sol\":{\"keccak256\":\"0xfd15286d2c0f4d4fe4d77d42c27e1b0aafb3bbf37faf8ec1b8e6b091b1ea176d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1291eb5b290366cad97766da87b233d908758eada2cc0e71051333590e1e2cfe\",\"dweb:/ipfs/QmT4ZKYx76U1x4T2eenCfGzck5tVPtjBiahYn5H6YHjgMt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_token0","type":"address"},{"internalType":"contract IERC20","name":"_token1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false}],"type":"event","name":"Swap","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":[{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}]},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"reserve0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"reserve1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"contract IERC20","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"contract IERC20","name":"tokenOut","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"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"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/56_DEX/SimpleSwap.sol":"SimpleSwap"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/56_DEX/SimpleSwap.sol":{"keccak256":"0xfd15286d2c0f4d4fe4d77d42c27e1b0aafb3bbf37faf8ec1b8e6b091b1ea176d","urls":["bzz-raw://1291eb5b290366cad97766da87b233d908758eada2cc0e71051333590e1e2cfe","dweb:/ipfs/QmT4ZKYx76U1x4T2eenCfGzck5tVPtjBiahYn5H6YHjgMt"],"license":"MIT"}},"version":1},"id":113} \ No newline at end of file diff --git a/out/SingatureReplay.sol/SigReplay.json b/out/SingatureReplay.sol/SigReplay.json index 298141b9..dc272b91 100644 --- a/out/SingatureReplay.sol/SigReplay.json +++ b/out/SingatureReplay.sol/SigReplay.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"badMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getMessageHash","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"goodMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonceMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"toEthSignedMessageHash","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":"verify","inputs":[{"name":"_msgHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"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":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600981526020017f5369675265706c617900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5265706c61790000000000000000000000000000000000000000000000000000815250816003908161008b9190610331565b50806004908161009b9190610331565b5050503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610400565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061015e57607f821691505b6020821081036101715761017061011a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610198565b6101dd8683610198565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61022161021c610217846101f5565b6101fe565b6101f5565b9050919050565b5f819050919050565b61023a83610207565b61024e61024682610228565b8484546101a4565b825550505050565b5f5f905090565b610265610256565b610270818484610231565b505050565b5f5b828110156102965761028b5f82840161025d565b600181019050610277565b505050565b601f8211156102e957828211156102e8576102b581610177565b6102be83610189565b6102c785610189565b60208610156102d4575f90505b8083016102e382840382610275565b505050505b5b505050565b5f82821c905092915050565b5f6103095f19846008026102ee565b1980831691505092915050565b5f61032183836102fa565b9150826002028217905092915050565b61033a826100e3565b67ffffffffffffffff811115610353576103526100ed565b5b61035d8254610147565b61036882828561029b565b5f60209050601f831160018114610399575f8415610387578287015190505b6103918582610316565b8655506103f8565b601f1984166103a786610177565b5f5b828110156103ce578489015182556001820191506020850194506020810190506103a9565b868310156103eb57848901516103e7601f8916826102fa565b8355505b6001600288020188555050505b505050505050565b611bbe8061040d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610108575f3560e01c8063512c91df116100a0578063918a15cf1161006f578063918a15cf146102dc57806395d89b411461030c578063a9059cbb1461032a578063dd62ed3e1461035a578063f9c7cb751461038a57610108565b8063512c91df14610230578063630303c61461026057806370a08231146102905780637ce19002146102c057610108565b8063238ac933116100dc578063238ac9331461019457806323b872dd146101b2578063258ae582146101e2578063313ce5671461021257610108565b80623920731461010c57806306fdde0314610128578063095ea7b31461014657806318160ddd14610176575b5f5ffd5b6101266004803603810190610121919061141f565b6103a6565b005b6101306104f3565b60405161013d91906114eb565b60405180910390f35b610160600480360381019061015b919061150b565b610583565b60405161016d9190611563565b60405180910390f35b61017e6105a5565b60405161018b919061158b565b60405180910390f35b61019c6105ae565b6040516101a991906115b3565b60405180910390f35b6101cc60048036038101906101c791906115cc565b6105d3565b6040516101d99190611563565b60405180910390f35b6101fc60048036038101906101f7919061164f565b610601565b6040516102099190611563565b60405180910390f35b61021a610663565b60405161022791906116c4565b60405180910390f35b61024a6004803603810190610245919061150b565b61066b565b60405161025791906116ec565b60405180910390f35b61027a60048036038101906102759190611705565b61069d565b6040516102879190611563565b60405180910390f35b6102aa60048036038101906102a59190611705565b6106ba565b6040516102b7919061158b565b60405180910390f35b6102da60048036038101906102d5919061141f565b6106ff565b005b6102f660048036038101906102f19190611730565b6107a9565b60405161030391906116ec565b60405180910390f35b6103146107d8565b60405161032191906114eb565b60405180910390f35b610344600480360381019061033f919061150b565b610868565b6040516103519190611563565b60405180910390f35b610374600480360381019061036f919061175b565b61088a565b604051610381919061158b565b60405180910390f35b6103a4600480360381019061039f919061141f565b61090c565b005b5f6103b96103b4858561066b565b6107a9565b90506103c58183610601565b610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb906117e3565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561048e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104859061184b565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104ed848461097a565b50505050565b60606003805461050290611896565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611896565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b5050505050905090565b5f5f61058d6109f9565b905061059a818585610a00565b600191505092915050565b5f600254905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6105dd6109f9565b90506105ea858285610a12565b6105f5858585610aa5565b60019150509392505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106448484610b95565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b5f6012905090565b5f828260405160200161067f92919061192b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61073784846007544660405160200161071c9493929190611956565b604051602081830303815290604052805190602001206107a9565b90506107438183610601565b610782576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610779906117e3565b60405180910390fd5b61078c848461097a565b60075f81548092919061079e906119d0565b919050555050505050565b5f816040516020016107bb9190611a8b565b604051602081830303815290604052805190602001209050919050565b6060600480546107e790611896565b80601f016020809104026020016040519081016040528092919081815260200182805461081390611896565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b5050505050905090565b5f5f6108726109f9565b905061087f818585610aa5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61091f61091a858561066b565b6107a9565b905061092b8183610601565b61096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117e3565b60405180910390fd5b610974848461097a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ea575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109e191906115b3565b60405180910390fd5b6109f55f8383610bbf565b5050565b5f33905090565b610a0d8383836001610dd8565b505050565b5f610a1d848461088a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610a9f5781811015610a90578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a8793929190611ab0565b60405180910390fd5b610a9e84848484035f610dd8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b15575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0c91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7c91906115b3565b60405180910390fd5b610b90838383610bbf565b505050565b5f5f5f5f610ba38686610fa7565b925092509250610bb38282610ffc565b82935050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f828254610c039190611ae5565b92505081905550610cdd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c8f93929190611ab0565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d24578060025f8282540392505081905550610d6e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dcb919061158b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e48575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3f91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610eaf91906115b3565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610fa1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f98919061158b565b60405180910390a35b50505050565b5f5f5f6041845103610fe7575f5f5f602087015192506040870151915060608701515f1a9050610fd98882858561115e565b955095509550505050610ff5565b5f600285515f1b9250925092505b9250925092565b5f600381111561100f5761100e611b18565b5b82600381111561102257611021611b18565b5b031561115a576001600381111561103c5761103b611b18565b5b82600381111561104f5761104e611b18565b5b03611086576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561109a57611099611b18565b5b8260038111156110ad576110ac611b18565b5b036110f157805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016110e8919061158b565b60405180910390fd5b60038081111561110457611103611b18565b5b82600381111561111757611116611b18565b5b0361115957806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161115091906116ec565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561119a575f60038592509250925061123b565b5f6001888888886040515f81526020016040526040516111bd9493929190611b45565b6020604051602081039080840390855afa1580156111dd573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122e575f60015f5f1b9350935093505061123b565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127f82611256565b9050919050565b61128f81611275565b8114611299575f5ffd5b50565b5f813590506112aa81611286565b92915050565b5f819050919050565b6112c2816112b0565b81146112cc575f5ffd5b50565b5f813590506112dd816112b9565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611331826112eb565b810181811067ffffffffffffffff821117156113505761134f6112fb565b5b80604052505050565b5f611362611245565b905061136e8282611328565b919050565b5f67ffffffffffffffff82111561138d5761138c6112fb565b5b611396826112eb565b9050602081019050919050565b828183375f83830152505050565b5f6113c36113be84611373565b611359565b9050828152602081018484840111156113df576113de6112e7565b5b6113ea8482856113a3565b509392505050565b5f82601f830112611406576114056112e3565b5b81356114168482602086016113b1565b91505092915050565b5f5f5f606084860312156114365761143561124e565b5b5f6114438682870161129c565b9350506020611454868287016112cf565b925050604084013567ffffffffffffffff81111561147557611474611252565b5b611481868287016113f2565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114bd8261148b565b6114c78185611495565b93506114d78185602086016114a5565b6114e0816112eb565b840191505092915050565b5f6020820190508181035f83015261150381846114b3565b905092915050565b5f5f604083850312156115215761152061124e565b5b5f61152e8582860161129c565b925050602061153f858286016112cf565b9150509250929050565b5f8115159050919050565b61155d81611549565b82525050565b5f6020820190506115765f830184611554565b92915050565b611585816112b0565b82525050565b5f60208201905061159e5f83018461157c565b92915050565b6115ad81611275565b82525050565b5f6020820190506115c65f8301846115a4565b92915050565b5f5f5f606084860312156115e3576115e261124e565b5b5f6115f08682870161129c565b93505060206116018682870161129c565b9250506040611612868287016112cf565b9150509250925092565b5f819050919050565b61162e8161161c565b8114611638575f5ffd5b50565b5f8135905061164981611625565b92915050565b5f5f604083850312156116655761166461124e565b5b5f6116728582860161163b565b925050602083013567ffffffffffffffff81111561169357611692611252565b5b61169f858286016113f2565b9150509250929050565b5f60ff82169050919050565b6116be816116a9565b82525050565b5f6020820190506116d75f8301846116b5565b92915050565b6116e68161161c565b82525050565b5f6020820190506116ff5f8301846116dd565b92915050565b5f6020828403121561171a5761171961124e565b5b5f6117278482850161129c565b91505092915050565b5f602082840312156117455761174461124e565b5b5f6117528482850161163b565b91505092915050565b5f5f604083850312156117715761177061124e565b5b5f61177e8582860161129c565b925050602061178f8582860161129c565b9150509250929050565b7f496e76616c6964205369676e65722100000000000000000000000000000000005f82015250565b5f6117cd600f83611495565b91506117d882611799565b602082019050919050565b5f6020820190508181035f8301526117fa816117c1565b9050919050565b7f416c7265616479206d696e7465640000000000000000000000000000000000005f82015250565b5f611835600e83611495565b915061184082611801565b602082019050919050565b5f6020820190508181035f83015261186281611829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118ad57607f821691505b6020821081036118c0576118bf611869565b5b50919050565b5f8160601b9050919050565b5f6118dc826118c6565b9050919050565b5f6118ed826118d2565b9050919050565b61190561190082611275565b6118e3565b82525050565b5f819050919050565b611925611920826112b0565b61190b565b82525050565b5f61193682856118f4565b6014820191506119468284611914565b6020820191508190509392505050565b5f61196182876118f4565b6014820191506119718286611914565b6020820191506119818285611914565b6020820191506119918284611914565b60208201915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119da826112b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a0c57611a0b6119a3565b5b600182019050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f611a55601c83611a17565b9150611a6082611a21565b601c82019050919050565b5f819050919050565b611a85611a808261161c565b611a6b565b82525050565b5f611a9582611a49565b9150611aa18284611a74565b60208201915081905092915050565b5f606082019050611ac35f8301866115a4565b611ad0602083018561157c565b611add604083018461157c565b949350505050565b5f611aef826112b0565b9150611afa836112b0565b9250828201905080821115611b1257611b116119a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f608082019050611b585f8301876116dd565b611b6560208301866116b5565b611b7260408301856116dd565b611b7f60608301846116dd565b9594505050505056fea26469706673582212201b8a94a13a37e711f335cbc8fde3483148deafcddb6e73435b71baf47a7ac10464736f6c63430008220033","sourceMap":"259:2782:132:-:0;;;375:79;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;437:10:132::1;428:6;;:19;;;;;;;;;;;;;;;;;;259:2782:::0;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;259:2782:132:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610108575f3560e01c8063512c91df116100a0578063918a15cf1161006f578063918a15cf146102dc57806395d89b411461030c578063a9059cbb1461032a578063dd62ed3e1461035a578063f9c7cb751461038a57610108565b8063512c91df14610230578063630303c61461026057806370a08231146102905780637ce19002146102c057610108565b8063238ac933116100dc578063238ac9331461019457806323b872dd146101b2578063258ae582146101e2578063313ce5671461021257610108565b80623920731461010c57806306fdde0314610128578063095ea7b31461014657806318160ddd14610176575b5f5ffd5b6101266004803603810190610121919061141f565b6103a6565b005b6101306104f3565b60405161013d91906114eb565b60405180910390f35b610160600480360381019061015b919061150b565b610583565b60405161016d9190611563565b60405180910390f35b61017e6105a5565b60405161018b919061158b565b60405180910390f35b61019c6105ae565b6040516101a991906115b3565b60405180910390f35b6101cc60048036038101906101c791906115cc565b6105d3565b6040516101d99190611563565b60405180910390f35b6101fc60048036038101906101f7919061164f565b610601565b6040516102099190611563565b60405180910390f35b61021a610663565b60405161022791906116c4565b60405180910390f35b61024a6004803603810190610245919061150b565b61066b565b60405161025791906116ec565b60405180910390f35b61027a60048036038101906102759190611705565b61069d565b6040516102879190611563565b60405180910390f35b6102aa60048036038101906102a59190611705565b6106ba565b6040516102b7919061158b565b60405180910390f35b6102da60048036038101906102d5919061141f565b6106ff565b005b6102f660048036038101906102f19190611730565b6107a9565b60405161030391906116ec565b60405180910390f35b6103146107d8565b60405161032191906114eb565b60405180910390f35b610344600480360381019061033f919061150b565b610868565b6040516103519190611563565b60405180910390f35b610374600480360381019061036f919061175b565b61088a565b604051610381919061158b565b60405180910390f35b6103a4600480360381019061039f919061141f565b61090c565b005b5f6103b96103b4858561066b565b6107a9565b90506103c58183610601565b610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb906117e3565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561048e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104859061184b565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104ed848461097a565b50505050565b60606003805461050290611896565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611896565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b5050505050905090565b5f5f61058d6109f9565b905061059a818585610a00565b600191505092915050565b5f600254905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6105dd6109f9565b90506105ea858285610a12565b6105f5858585610aa5565b60019150509392505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106448484610b95565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b5f6012905090565b5f828260405160200161067f92919061192b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61073784846007544660405160200161071c9493929190611956565b604051602081830303815290604052805190602001206107a9565b90506107438183610601565b610782576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610779906117e3565b60405180910390fd5b61078c848461097a565b60075f81548092919061079e906119d0565b919050555050505050565b5f816040516020016107bb9190611a8b565b604051602081830303815290604052805190602001209050919050565b6060600480546107e790611896565b80601f016020809104026020016040519081016040528092919081815260200182805461081390611896565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b5050505050905090565b5f5f6108726109f9565b905061087f818585610aa5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61091f61091a858561066b565b6107a9565b905061092b8183610601565b61096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117e3565b60405180910390fd5b610974848461097a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ea575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109e191906115b3565b60405180910390fd5b6109f55f8383610bbf565b5050565b5f33905090565b610a0d8383836001610dd8565b505050565b5f610a1d848461088a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610a9f5781811015610a90578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a8793929190611ab0565b60405180910390fd5b610a9e84848484035f610dd8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b15575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0c91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7c91906115b3565b60405180910390fd5b610b90838383610bbf565b505050565b5f5f5f5f610ba38686610fa7565b925092509250610bb38282610ffc565b82935050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f828254610c039190611ae5565b92505081905550610cdd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c8f93929190611ab0565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d24578060025f8282540392505081905550610d6e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dcb919061158b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e48575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3f91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610eaf91906115b3565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610fa1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f98919061158b565b60405180910390a35b50505050565b5f5f5f6041845103610fe7575f5f5f602087015192506040870151915060608701515f1a9050610fd98882858561115e565b955095509550505050610ff5565b5f600285515f1b9250925092505b9250925092565b5f600381111561100f5761100e611b18565b5b82600381111561102257611021611b18565b5b031561115a576001600381111561103c5761103b611b18565b5b82600381111561104f5761104e611b18565b5b03611086576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561109a57611099611b18565b5b8260038111156110ad576110ac611b18565b5b036110f157805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016110e8919061158b565b60405180910390fd5b60038081111561110457611103611b18565b5b82600381111561111757611116611b18565b5b0361115957806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161115091906116ec565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561119a575f60038592509250925061123b565b5f6001888888886040515f81526020016040526040516111bd9493929190611b45565b6020604051602081039080840390855afa1580156111dd573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122e575f60015f5f1b9350935093505061123b565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127f82611256565b9050919050565b61128f81611275565b8114611299575f5ffd5b50565b5f813590506112aa81611286565b92915050565b5f819050919050565b6112c2816112b0565b81146112cc575f5ffd5b50565b5f813590506112dd816112b9565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611331826112eb565b810181811067ffffffffffffffff821117156113505761134f6112fb565b5b80604052505050565b5f611362611245565b905061136e8282611328565b919050565b5f67ffffffffffffffff82111561138d5761138c6112fb565b5b611396826112eb565b9050602081019050919050565b828183375f83830152505050565b5f6113c36113be84611373565b611359565b9050828152602081018484840111156113df576113de6112e7565b5b6113ea8482856113a3565b509392505050565b5f82601f830112611406576114056112e3565b5b81356114168482602086016113b1565b91505092915050565b5f5f5f606084860312156114365761143561124e565b5b5f6114438682870161129c565b9350506020611454868287016112cf565b925050604084013567ffffffffffffffff81111561147557611474611252565b5b611481868287016113f2565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114bd8261148b565b6114c78185611495565b93506114d78185602086016114a5565b6114e0816112eb565b840191505092915050565b5f6020820190508181035f83015261150381846114b3565b905092915050565b5f5f604083850312156115215761152061124e565b5b5f61152e8582860161129c565b925050602061153f858286016112cf565b9150509250929050565b5f8115159050919050565b61155d81611549565b82525050565b5f6020820190506115765f830184611554565b92915050565b611585816112b0565b82525050565b5f60208201905061159e5f83018461157c565b92915050565b6115ad81611275565b82525050565b5f6020820190506115c65f8301846115a4565b92915050565b5f5f5f606084860312156115e3576115e261124e565b5b5f6115f08682870161129c565b93505060206116018682870161129c565b9250506040611612868287016112cf565b9150509250925092565b5f819050919050565b61162e8161161c565b8114611638575f5ffd5b50565b5f8135905061164981611625565b92915050565b5f5f604083850312156116655761166461124e565b5b5f6116728582860161163b565b925050602083013567ffffffffffffffff81111561169357611692611252565b5b61169f858286016113f2565b9150509250929050565b5f60ff82169050919050565b6116be816116a9565b82525050565b5f6020820190506116d75f8301846116b5565b92915050565b6116e68161161c565b82525050565b5f6020820190506116ff5f8301846116dd565b92915050565b5f6020828403121561171a5761171961124e565b5b5f6117278482850161129c565b91505092915050565b5f602082840312156117455761174461124e565b5b5f6117528482850161163b565b91505092915050565b5f5f604083850312156117715761177061124e565b5b5f61177e8582860161129c565b925050602061178f8582860161129c565b9150509250929050565b7f496e76616c6964205369676e65722100000000000000000000000000000000005f82015250565b5f6117cd600f83611495565b91506117d882611799565b602082019050919050565b5f6020820190508181035f8301526117fa816117c1565b9050919050565b7f416c7265616479206d696e7465640000000000000000000000000000000000005f82015250565b5f611835600e83611495565b915061184082611801565b602082019050919050565b5f6020820190508181035f83015261186281611829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118ad57607f821691505b6020821081036118c0576118bf611869565b5b50919050565b5f8160601b9050919050565b5f6118dc826118c6565b9050919050565b5f6118ed826118d2565b9050919050565b61190561190082611275565b6118e3565b82525050565b5f819050919050565b611925611920826112b0565b61190b565b82525050565b5f61193682856118f4565b6014820191506119468284611914565b6020820191508190509392505050565b5f61196182876118f4565b6014820191506119718286611914565b6020820191506119818285611914565b6020820191506119918284611914565b60208201915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119da826112b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a0c57611a0b6119a3565b5b600182019050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f611a55601c83611a17565b9150611a6082611a21565b601c82019050919050565b5f819050919050565b611a85611a808261161c565b611a6b565b82525050565b5f611a9582611a49565b9150611aa18284611a74565b60208201915081905092915050565b5f606082019050611ac35f8301866115a4565b611ad0602083018561157c565b611add604083018461157c565b949350505050565b5f611aef826112b0565b9150611afa836112b0565b9250828201905080821115611b1257611b116119a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f608082019050611b585f8301876116dd565b611b6560208301866116b5565b611b7260408301856116dd565b611b7f60608301846116dd565b9594505050505056fea26469706673582212201b8a94a13a37e711f335cbc8fde3483148deafcddb6e73435b71baf47a7ac10464736f6c63430008220033","sourceMap":"259:2782:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2292:415;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;294:21:132;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2044:154:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1278:143:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2205:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:305:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1756:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;748:251:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2292:415;2376:16;2395:50;2418:26;2433:2;2437:6;2418:14;:26::i;:::-;2395:22;:50::i;:::-;2376:69;;2463:27;2470:8;2480:9;2463:6;:27::i;:::-;2455:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2569:13;:17;2583:2;2569:17;;;;;;;;;;;;;;;;;;;;;;;;;2568:18;2560:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2669:4;2649:13;:17;2663:2;2649:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;2683:17;2689:2;2693:6;2683:5;:17::i;:::-;2366:341;2292:415;;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;294:21:132:-;;;;;;;;;;;;;:::o;4680:244:22:-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2044:154:132:-;2124:4;2185:6;;;;;;;;;;;2146:45;;:35;2160:8;2170:10;2146:13;:35::i;:::-;:45;;;2139:52;;2044:154;;;;:::o;2688:82:22:-;2737:5;2761:2;2754:9;;2688:82;:::o;1278:143:132:-;1350:7;1402:2;1406:6;1385:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1375:39;;;;;;1368:46;;1278:143;;;;:::o;2205:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2734:305:132:-;2819:16;2838:85;2888:2;2892:6;2900:5;;2907:13;2871:50;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2861:61;;;;;;2838:22;:85::i;:::-;2819:104;;2941:27;2948:8;2958:9;2941:6;:27::i;:::-;2933:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2998:17;3004:2;3008:6;2998:5;:17::i;:::-;3025:5;;:7;;;;;;;;;:::i;:::-;;;;;;2809:230;2734:305;;;:::o;1756:263::-;1823:7;2006:4;1953:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;1943:69;;;;;;1936:76;;1756:263;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;748:251:132:-;831:16;850:50;873:26;888:2;892:6;873:14;:26::i;:::-;850:22;:50::i;:::-;831:69;;918:27;925:8;935:9;918:6;:27::i;:::-;910:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;975:17;981:2;985:6;975:5;:17::i;:::-;821:178;748:251;;;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;5276:255:36:-;5354:7;5374:17;5393:18;5413:16;5433:27;5444:4;5450:9;5433:10;:27::i;:::-;5373:87;;;;;;5470:28;5482:5;5489:8;5470:11;:28::i;:::-;5515:9;5508:16;;;;;5276:255;;;;:::o;5912:1107:22:-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;2419:778:36:-;2522:17;2541:16;2559:14;2609:2;2589:9;:16;:22;2585:606;;2627:9;2650;2673:7;2894:4;2883:9;2879:20;2873:27;2868:32;;2943:4;2932:9;2928:20;2922:27;2917:32;;3000:4;2989:9;2985:20;2979:27;2976:1;2971:36;2966:41;;3041:25;3052:4;3058:1;3061;3064;3041:10;:25::i;:::-;3034:32;;;;;;;;;;;2585:606;3113:1;3117:35;3162:9;:16;3154:25;;3097:83;;;;;;2419:778;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;7129:1551::-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:148::-;2570:6;2565:3;2560;2547:30;2611:1;2602:6;2597:3;2593:16;2586:27;2472:148;;;:::o;2626:423::-;2703:5;2728:65;2744:48;2785:6;2744:48;:::i;:::-;2728:65;:::i;:::-;2719:74;;2816:6;2809:5;2802:21;2854:4;2847:5;2843:16;2892:3;2883:6;2878:3;2874:16;2871:25;2868:112;;;2899:79;;:::i;:::-;2868:112;2989:54;3036:6;3031:3;3026;2989:54;:::i;:::-;2709:340;2626:423;;;;;:::o;3068:338::-;3123:5;3172:3;3165:4;3157:6;3153:17;3149:27;3139:122;;3180:79;;:::i;:::-;3139:122;3297:6;3284:20;3322:78;3396:3;3388:6;3381:4;3373:6;3369:17;3322:78;:::i;:::-;3313:87;;3129:277;3068:338;;;;:::o;3412:797::-;3498:6;3506;3514;3563:2;3551:9;3542:7;3538:23;3534:32;3531:119;;;3569:79;;:::i;:::-;3531:119;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:53;3887:7;3878:6;3867:9;3863:22;3842:53;:::i;:::-;3832:63;;3787:118;3972:2;3961:9;3957:18;3944:32;4003:18;3995:6;3992:30;3989:117;;;4025:79;;:::i;:::-;3989:117;4130:62;4184:7;4175:6;4164:9;4160:22;4130:62;:::i;:::-;4120:72;;3915:287;3412:797;;;;;:::o;4215:99::-;4267:6;4301:5;4295:12;4285:22;;4215:99;;;:::o;4320:169::-;4404:11;4438:6;4433:3;4426:19;4478:4;4473:3;4469:14;4454:29;;4320:169;;;;:::o;4495:139::-;4584:6;4579:3;4574;4568:23;4625:1;4616:6;4611:3;4607:16;4600:27;4495:139;;;:::o;4640:377::-;4728:3;4756:39;4789:5;4756:39;:::i;:::-;4811:71;4875:6;4870:3;4811:71;:::i;:::-;4804:78;;4891:65;4949:6;4944:3;4937:4;4930:5;4926:16;4891:65;:::i;:::-;4981:29;5003:6;4981:29;:::i;:::-;4976:3;4972:39;4965:46;;4732:285;4640:377;;;;:::o;5023:313::-;5136:4;5174:2;5163:9;5159:18;5151:26;;5223:9;5217:4;5213:20;5209:1;5198:9;5194:17;5187:47;5251:78;5324:4;5315:6;5251:78;:::i;:::-;5243:86;;5023:313;;;;:::o;5342:474::-;5410:6;5418;5467:2;5455:9;5446:7;5442:23;5438:32;5435:119;;;5473:79;;:::i;:::-;5435:119;5593:1;5618:53;5663:7;5654:6;5643:9;5639:22;5618:53;:::i;:::-;5608:63;;5564:117;5720:2;5746:53;5791:7;5782:6;5771:9;5767:22;5746:53;:::i;:::-;5736:63;;5691:118;5342:474;;;;;:::o;5822:90::-;5856:7;5899:5;5892:13;5885:21;5874:32;;5822:90;;;:::o;5918:109::-;5999:21;6014:5;5999:21;:::i;:::-;5994:3;5987:34;5918:109;;:::o;6033:210::-;6120:4;6158:2;6147:9;6143:18;6135:26;;6171:65;6233:1;6222:9;6218:17;6209:6;6171:65;:::i;:::-;6033:210;;;;:::o;6249:118::-;6336:24;6354:5;6336:24;:::i;:::-;6331:3;6324:37;6249:118;;:::o;6373:222::-;6466:4;6504:2;6493:9;6489:18;6481:26;;6517:71;6585:1;6574:9;6570:17;6561:6;6517:71;:::i;:::-;6373:222;;;;:::o;6601:118::-;6688:24;6706:5;6688:24;:::i;:::-;6683:3;6676:37;6601:118;;:::o;6725:222::-;6818:4;6856:2;6845:9;6841:18;6833:26;;6869:71;6937:1;6926:9;6922:17;6913:6;6869:71;:::i;:::-;6725:222;;;;:::o;6953:619::-;7030:6;7038;7046;7095:2;7083:9;7074:7;7070:23;7066:32;7063:119;;;7101:79;;:::i;:::-;7063:119;7221:1;7246:53;7291:7;7282:6;7271:9;7267:22;7246:53;:::i;:::-;7236:63;;7192:117;7348:2;7374:53;7419:7;7410:6;7399:9;7395:22;7374:53;:::i;:::-;7364:63;;7319:118;7476:2;7502:53;7547:7;7538:6;7527:9;7523:22;7502:53;:::i;:::-;7492:63;;7447:118;6953:619;;;;;:::o;7578:77::-;7615:7;7644:5;7633:16;;7578:77;;;:::o;7661:122::-;7734:24;7752:5;7734:24;:::i;:::-;7727:5;7724:35;7714:63;;7773:1;7770;7763:12;7714:63;7661:122;:::o;7789:139::-;7835:5;7873:6;7860:20;7851:29;;7889:33;7916:5;7889:33;:::i;:::-;7789:139;;;;:::o;7934:652::-;8011:6;8019;8068:2;8056:9;8047:7;8043:23;8039:32;8036:119;;;8074:79;;:::i;:::-;8036:119;8194:1;8219:53;8264:7;8255:6;8244:9;8240:22;8219:53;:::i;:::-;8209:63;;8165:117;8349:2;8338:9;8334:18;8321:32;8380:18;8372:6;8369:30;8366:117;;;8402:79;;:::i;:::-;8366:117;8507:62;8561:7;8552:6;8541:9;8537:22;8507:62;:::i;:::-;8497:72;;8292:287;7934:652;;;;;:::o;8592:86::-;8627:7;8667:4;8660:5;8656:16;8645:27;;8592:86;;;:::o;8684:112::-;8767:22;8783:5;8767:22;:::i;:::-;8762:3;8755:35;8684:112;;:::o;8802:214::-;8891:4;8929:2;8918:9;8914:18;8906:26;;8942:67;9006:1;8995:9;8991:17;8982:6;8942:67;:::i;:::-;8802:214;;;;:::o;9022:118::-;9109:24;9127:5;9109:24;:::i;:::-;9104:3;9097:37;9022:118;;:::o;9146:222::-;9239:4;9277:2;9266:9;9262:18;9254:26;;9290:71;9358:1;9347:9;9343:17;9334:6;9290:71;:::i;:::-;9146:222;;;;:::o;9374:329::-;9433:6;9482:2;9470:9;9461:7;9457:23;9453:32;9450:119;;;9488:79;;:::i;:::-;9450:119;9608:1;9633:53;9678:7;9669:6;9658:9;9654:22;9633:53;:::i;:::-;9623:63;;9579:117;9374:329;;;;:::o;9709:::-;9768:6;9817:2;9805:9;9796:7;9792:23;9788:32;9785:119;;;9823:79;;:::i;:::-;9785:119;9943:1;9968:53;10013:7;10004:6;9993:9;9989:22;9968:53;:::i;:::-;9958:63;;9914:117;9709:329;;;;:::o;10044:474::-;10112:6;10120;10169:2;10157:9;10148:7;10144:23;10140:32;10137:119;;;10175:79;;:::i;:::-;10137:119;10295:1;10320:53;10365:7;10356:6;10345:9;10341:22;10320:53;:::i;:::-;10310:63;;10266:117;10422:2;10448:53;10493:7;10484:6;10473:9;10469:22;10448:53;:::i;:::-;10438:63;;10393:118;10044:474;;;;;:::o;10524:165::-;10664:17;10660:1;10652:6;10648:14;10641:41;10524:165;:::o;10695:366::-;10837:3;10858:67;10922:2;10917:3;10858:67;:::i;:::-;10851:74;;10934:93;11023:3;10934:93;:::i;:::-;11052:2;11047:3;11043:12;11036:19;;10695:366;;;:::o;11067:419::-;11233:4;11271:2;11260:9;11256:18;11248:26;;11320:9;11314:4;11310:20;11306:1;11295:9;11291:17;11284:47;11348:131;11474:4;11348:131;:::i;:::-;11340:139;;11067:419;;;:::o;11492:164::-;11632:16;11628:1;11620:6;11616:14;11609:40;11492:164;:::o;11662:366::-;11804:3;11825:67;11889:2;11884:3;11825:67;:::i;:::-;11818:74;;11901:93;11990:3;11901:93;:::i;:::-;12019:2;12014:3;12010:12;12003:19;;11662:366;;;:::o;12034:419::-;12200:4;12238:2;12227:9;12223:18;12215:26;;12287:9;12281:4;12277:20;12273:1;12262:9;12258:17;12251:47;12315:131;12441:4;12315:131;:::i;:::-;12307:139;;12034:419;;;:::o;12459:180::-;12507:77;12504:1;12497:88;12604:4;12601:1;12594:15;12628:4;12625:1;12618:15;12645:320;12689:6;12726:1;12720:4;12716:12;12706:22;;12773:1;12767:4;12763:12;12794:18;12784:81;;12850:4;12842:6;12838:17;12828:27;;12784:81;12912:2;12904:6;12901:14;12881:18;12878:38;12875:84;;12931:18;;:::i;:::-;12875:84;12696:269;12645:320;;;:::o;12971:94::-;13004:8;13052:5;13048:2;13044:14;13023:35;;12971:94;;;:::o;13071:::-;13110:7;13139:20;13153:5;13139:20;:::i;:::-;13128:31;;13071:94;;;:::o;13171:100::-;13210:7;13239:26;13259:5;13239:26;:::i;:::-;13228:37;;13171:100;;;:::o;13277:157::-;13382:45;13402:24;13420:5;13402:24;:::i;:::-;13382:45;:::i;:::-;13377:3;13370:58;13277:157;;:::o;13440:79::-;13479:7;13508:5;13497:16;;13440:79;;;:::o;13525:157::-;13630:45;13650:24;13668:5;13650:24;:::i;:::-;13630:45;:::i;:::-;13625:3;13618:58;13525:157;;:::o;13688:397::-;13828:3;13843:75;13914:3;13905:6;13843:75;:::i;:::-;13943:2;13938:3;13934:12;13927:19;;13956:75;14027:3;14018:6;13956:75;:::i;:::-;14056:2;14051:3;14047:12;14040:19;;14076:3;14069:10;;13688:397;;;;;:::o;14091:679::-;14287:3;14302:75;14373:3;14364:6;14302:75;:::i;:::-;14402:2;14397:3;14393:12;14386:19;;14415:75;14486:3;14477:6;14415:75;:::i;:::-;14515:2;14510:3;14506:12;14499:19;;14528:75;14599:3;14590:6;14528:75;:::i;:::-;14628:2;14623:3;14619:12;14612:19;;14641:75;14712:3;14703:6;14641:75;:::i;:::-;14741:2;14736:3;14732:12;14725:19;;14761:3;14754:10;;14091:679;;;;;;;:::o;14776:180::-;14824:77;14821:1;14814:88;14921:4;14918:1;14911:15;14945:4;14942:1;14935:15;14962:233;15001:3;15024:24;15042:5;15024:24;:::i;:::-;15015:33;;15070:66;15063:5;15060:77;15057:103;;15140:18;;:::i;:::-;15057:103;15187:1;15180:5;15176:13;15169:20;;14962:233;;;:::o;15201:148::-;15303:11;15340:3;15325:18;;15201:148;;;;:::o;15355:214::-;15495:66;15491:1;15483:6;15479:14;15472:90;15355:214;:::o;15575:402::-;15735:3;15756:85;15838:2;15833:3;15756:85;:::i;:::-;15749:92;;15850:93;15939:3;15850:93;:::i;:::-;15968:2;15963:3;15959:12;15952:19;;15575:402;;;:::o;15983:79::-;16022:7;16051:5;16040:16;;15983:79;;;:::o;16068:157::-;16173:45;16193:24;16211:5;16193:24;:::i;:::-;16173:45;:::i;:::-;16168:3;16161:58;16068:157;;:::o;16231:522::-;16444:3;16466:148;16610:3;16466:148;:::i;:::-;16459:155;;16624:75;16695:3;16686:6;16624:75;:::i;:::-;16724:2;16719:3;16715:12;16708:19;;16744:3;16737:10;;16231:522;;;;:::o;16759:442::-;16908:4;16946:2;16935:9;16931:18;16923:26;;16959:71;17027:1;17016:9;17012:17;17003:6;16959:71;:::i;:::-;17040:72;17108:2;17097:9;17093:18;17084:6;17040:72;:::i;:::-;17122;17190:2;17179:9;17175:18;17166:6;17122:72;:::i;:::-;16759:442;;;;;;:::o;17207:191::-;17247:3;17266:20;17284:1;17266:20;:::i;:::-;17261:25;;17300:20;17318:1;17300:20;:::i;:::-;17295:25;;17343:1;17340;17336:9;17329:16;;17364:3;17361:1;17358:10;17355:36;;;17371:18;;:::i;:::-;17355:36;17207:191;;;;:::o;17404:180::-;17452:77;17449:1;17442:88;17549:4;17546:1;17539:15;17573:4;17570:1;17563:15;17590:545;17763:4;17801:3;17790:9;17786:19;17778:27;;17815:71;17883:1;17872:9;17868:17;17859:6;17815:71;:::i;:::-;17896:68;17960:2;17949:9;17945:18;17936:6;17896:68;:::i;:::-;17974:72;18042:2;18031:9;18027:18;18018:6;17974:72;:::i;:::-;18056;18124:2;18113:9;18109:18;18100:6;18056:72;:::i;:::-;17590:545;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","badMint(address,uint256,bytes)":"f9c7cb75","balanceOf(address)":"70a08231","decimals()":"313ce567","getMessageHash(address,uint256)":"512c91df","goodMint(address,uint256,bytes)":"00392073","mintedAddress(address)":"630303c6","name()":"06fdde03","nonceMint(address,uint256,bytes)":"7ce19002","signer()":"238ac933","symbol()":"95d89b41","toEthSignedMessageHash(bytes32)":"918a15cf","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","verify(bytes32,bytes)":"258ae582"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"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\"},{\"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\":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\":[{\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"badMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"goodMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"nonceMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"toEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"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\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"toEthSignedMessageHash(bytes32)\":{\"details\":\"\\u83b7\\u5f97\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6d88\\u606f `hash`\\uff1a\\u6d88\\u606f\\u54c8\\u5e0c \\u9075\\u4ece\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6807\\u51c6\\uff1ahttps://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] \\u4ee5\\u53ca`EIP191`:https://eips.ethereum.org/EIPS/eip-191` \\u6dfb\\u52a0\\\"\\\\x19Ethereum Signed Message:\\\\n32\\\"\\u5b57\\u6bb5\\uff0c\\u9632\\u6b62\\u7b7e\\u540d\\u7684\\u662f\\u53ef\\u6267\\u884c\\u4ea4\\u6613\\u3002\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"badMint(address,uint256,bytes)\":{\"notice\":\"\\u6709\\u7b7e\\u540d\\u91cd\\u8bbf\\u6f0f\\u6d1e\\u7684\\u94f8\\u9020\\u51fd\\u6570 to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 \\u7b7e\\u540d\\uff1a 0x5a4f1ad4d8bd6b5582e658087633230d9810a0b7b8afa791e3f94cc38947f6cb1069519caf5bba7b975df29cbfdb4ada355027589a989435bf88e825841452f61b\"},\"getMessageHash(address,uint256)\":{\"notice\":\"\\u5c06to\\u5730\\u5740\\uff08address\\u7c7b\\u578b\\uff09\\u548camount\\uff08uint256\\u7c7b\\u578b\\uff09\\u62fc\\u6210\\u6d88\\u606fmsgHash to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 \\u5bf9\\u5e94\\u7684\\u6d88\\u606fmsgHash: 0xb4a4ba10fbd6886a312ec31c54137f5714ddc0e93274da8746a36d2fa96768be\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S06_SignatureReplay/SingatureReplay.sol\":\"SigReplay\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"src/S06_SignatureReplay/SingatureReplay.sol\":{\"keccak256\":\"0x00c73c9f837433088b5386318fcb1bdb80f5959bb17d3f995cd088425db014d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96151305ea2db9207940e885467e411b0851e371b321b6ec4124fe941632cf0\",\"dweb:/ipfs/Qmdm6PV4zjckgqWqfhMp24FA9G2Sv5tQ6pgvQfhgaYmoqY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"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":[{"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":"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":[{"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"badMint"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"goodMint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"nonceMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"bytes32","name":"_msgHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"toEthSignedMessageHash(bytes32)":{"details":"获得以太坊签名消息 `hash`:消息哈希 遵从以太坊签名标准:https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] 以及`EIP191`:https://eips.ethereum.org/EIPS/eip-191` 添加\"\\x19Ethereum Signed Message:\\n32\"字段,防止签名的是可执行交易。"},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{"badMint(address,uint256,bytes)":{"notice":"有签名重访漏洞的铸造函数 to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 签名: 0x5a4f1ad4d8bd6b5582e658087633230d9810a0b7b8afa791e3f94cc38947f6cb1069519caf5bba7b975df29cbfdb4ada355027589a989435bf88e825841452f61b"},"getMessageHash(address,uint256)":{"notice":"将to地址(address类型)和amount(uint256类型)拼成消息msgHash to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 对应的消息msgHash: 0xb4a4ba10fbd6886a312ec31c54137f5714ddc0e93274da8746a36d2fa96768be"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S06_SignatureReplay/SingatureReplay.sol":"SigReplay"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"src/S06_SignatureReplay/SingatureReplay.sol":{"keccak256":"0x00c73c9f837433088b5386318fcb1bdb80f5959bb17d3f995cd088425db014d2","urls":["bzz-raw://b96151305ea2db9207940e885467e411b0851e371b321b6ec4124fe941632cf0","dweb:/ipfs/Qmdm6PV4zjckgqWqfhMp24FA9G2Sv5tQ6pgvQfhgaYmoqY"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"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":"badMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getMessageHash","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"goodMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintedAddress","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonceMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"toEthSignedMessageHash","inputs":[{"name":"hash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":"verify","inputs":[{"name":"_msgHash","type":"bytes32","internalType":"bytes32"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"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":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600981526020017f5369675265706c617900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5265706c61790000000000000000000000000000000000000000000000000000815250816003908161008b9190610331565b50806004908161009b9190610331565b5050503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610400565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061015e57607f821691505b6020821081036101715761017061011a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610198565b6101dd8683610198565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61022161021c610217846101f5565b6101fe565b6101f5565b9050919050565b5f819050919050565b61023a83610207565b61024e61024682610228565b8484546101a4565b825550505050565b5f5f905090565b610265610256565b610270818484610231565b505050565b5f5b828110156102965761028b5f82840161025d565b600181019050610277565b505050565b601f8211156102e957828211156102e8576102b581610177565b6102be83610189565b6102c785610189565b60208610156102d4575f90505b8083016102e382840382610275565b505050505b5b505050565b5f82821c905092915050565b5f6103095f19846008026102ee565b1980831691505092915050565b5f61032183836102fa565b9150826002028217905092915050565b61033a826100e3565b67ffffffffffffffff811115610353576103526100ed565b5b61035d8254610147565b61036882828561029b565b5f60209050601f831160018114610399575f8415610387578287015190505b6103918582610316565b8655506103f8565b601f1984166103a786610177565b5f5b828110156103ce578489015182556001820191506020850194506020810190506103a9565b868310156103eb57848901516103e7601f8916826102fa565b8355505b6001600288020188555050505b505050505050565b611bbe8061040d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610108575f3560e01c8063512c91df116100a0578063918a15cf1161006f578063918a15cf146102dc57806395d89b411461030c578063a9059cbb1461032a578063dd62ed3e1461035a578063f9c7cb751461038a57610108565b8063512c91df14610230578063630303c61461026057806370a08231146102905780637ce19002146102c057610108565b8063238ac933116100dc578063238ac9331461019457806323b872dd146101b2578063258ae582146101e2578063313ce5671461021257610108565b80623920731461010c57806306fdde0314610128578063095ea7b31461014657806318160ddd14610176575b5f5ffd5b6101266004803603810190610121919061141f565b6103a6565b005b6101306104f3565b60405161013d91906114eb565b60405180910390f35b610160600480360381019061015b919061150b565b610583565b60405161016d9190611563565b60405180910390f35b61017e6105a5565b60405161018b919061158b565b60405180910390f35b61019c6105ae565b6040516101a991906115b3565b60405180910390f35b6101cc60048036038101906101c791906115cc565b6105d3565b6040516101d99190611563565b60405180910390f35b6101fc60048036038101906101f7919061164f565b610601565b6040516102099190611563565b60405180910390f35b61021a610663565b60405161022791906116c4565b60405180910390f35b61024a6004803603810190610245919061150b565b61066b565b60405161025791906116ec565b60405180910390f35b61027a60048036038101906102759190611705565b61069d565b6040516102879190611563565b60405180910390f35b6102aa60048036038101906102a59190611705565b6106ba565b6040516102b7919061158b565b60405180910390f35b6102da60048036038101906102d5919061141f565b6106ff565b005b6102f660048036038101906102f19190611730565b6107a9565b60405161030391906116ec565b60405180910390f35b6103146107d8565b60405161032191906114eb565b60405180910390f35b610344600480360381019061033f919061150b565b610868565b6040516103519190611563565b60405180910390f35b610374600480360381019061036f919061175b565b61088a565b604051610381919061158b565b60405180910390f35b6103a4600480360381019061039f919061141f565b61090c565b005b5f6103b96103b4858561066b565b6107a9565b90506103c58183610601565b610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb906117e3565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561048e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104859061184b565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104ed848461097a565b50505050565b60606003805461050290611896565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611896565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b5050505050905090565b5f5f61058d6109f9565b905061059a818585610a00565b600191505092915050565b5f600254905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6105dd6109f9565b90506105ea858285610a12565b6105f5858585610aa5565b60019150509392505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106448484610b95565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b5f6012905090565b5f828260405160200161067f92919061192b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61073784846007544660405160200161071c9493929190611956565b604051602081830303815290604052805190602001206107a9565b90506107438183610601565b610782576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610779906117e3565b60405180910390fd5b61078c848461097a565b60075f81548092919061079e906119d0565b919050555050505050565b5f816040516020016107bb9190611a8b565b604051602081830303815290604052805190602001209050919050565b6060600480546107e790611896565b80601f016020809104026020016040519081016040528092919081815260200182805461081390611896565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b5050505050905090565b5f5f6108726109f9565b905061087f818585610aa5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61091f61091a858561066b565b6107a9565b905061092b8183610601565b61096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117e3565b60405180910390fd5b610974848461097a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ea575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109e191906115b3565b60405180910390fd5b6109f55f8383610bbf565b5050565b5f33905090565b610a0d8383836001610dd8565b505050565b5f610a1d848461088a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610a9f5781811015610a90578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a8793929190611ab0565b60405180910390fd5b610a9e84848484035f610dd8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b15575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0c91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7c91906115b3565b60405180910390fd5b610b90838383610bbf565b505050565b5f5f5f5f610ba38686610fa7565b925092509250610bb38282610ffc565b82935050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f828254610c039190611ae5565b92505081905550610cdd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c8f93929190611ab0565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d24578060025f8282540392505081905550610d6e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dcb919061158b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e48575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3f91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610eaf91906115b3565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610fa1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f98919061158b565b60405180910390a35b50505050565b5f5f5f6041845103610fe7575f5f5f602087015192506040870151915060608701515f1a9050610fd98882858561115e565b955095509550505050610ff5565b5f600285515f1b9250925092505b9250925092565b5f600381111561100f5761100e611b18565b5b82600381111561102257611021611b18565b5b031561115a576001600381111561103c5761103b611b18565b5b82600381111561104f5761104e611b18565b5b03611086576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561109a57611099611b18565b5b8260038111156110ad576110ac611b18565b5b036110f157805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016110e8919061158b565b60405180910390fd5b60038081111561110457611103611b18565b5b82600381111561111757611116611b18565b5b0361115957806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161115091906116ec565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561119a575f60038592509250925061123b565b5f6001888888886040515f81526020016040526040516111bd9493929190611b45565b6020604051602081039080840390855afa1580156111dd573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122e575f60015f5f1b9350935093505061123b565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127f82611256565b9050919050565b61128f81611275565b8114611299575f5ffd5b50565b5f813590506112aa81611286565b92915050565b5f819050919050565b6112c2816112b0565b81146112cc575f5ffd5b50565b5f813590506112dd816112b9565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611331826112eb565b810181811067ffffffffffffffff821117156113505761134f6112fb565b5b80604052505050565b5f611362611245565b905061136e8282611328565b919050565b5f67ffffffffffffffff82111561138d5761138c6112fb565b5b611396826112eb565b9050602081019050919050565b828183375f83830152505050565b5f6113c36113be84611373565b611359565b9050828152602081018484840111156113df576113de6112e7565b5b6113ea8482856113a3565b509392505050565b5f82601f830112611406576114056112e3565b5b81356114168482602086016113b1565b91505092915050565b5f5f5f606084860312156114365761143561124e565b5b5f6114438682870161129c565b9350506020611454868287016112cf565b925050604084013567ffffffffffffffff81111561147557611474611252565b5b611481868287016113f2565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114bd8261148b565b6114c78185611495565b93506114d78185602086016114a5565b6114e0816112eb565b840191505092915050565b5f6020820190508181035f83015261150381846114b3565b905092915050565b5f5f604083850312156115215761152061124e565b5b5f61152e8582860161129c565b925050602061153f858286016112cf565b9150509250929050565b5f8115159050919050565b61155d81611549565b82525050565b5f6020820190506115765f830184611554565b92915050565b611585816112b0565b82525050565b5f60208201905061159e5f83018461157c565b92915050565b6115ad81611275565b82525050565b5f6020820190506115c65f8301846115a4565b92915050565b5f5f5f606084860312156115e3576115e261124e565b5b5f6115f08682870161129c565b93505060206116018682870161129c565b9250506040611612868287016112cf565b9150509250925092565b5f819050919050565b61162e8161161c565b8114611638575f5ffd5b50565b5f8135905061164981611625565b92915050565b5f5f604083850312156116655761166461124e565b5b5f6116728582860161163b565b925050602083013567ffffffffffffffff81111561169357611692611252565b5b61169f858286016113f2565b9150509250929050565b5f60ff82169050919050565b6116be816116a9565b82525050565b5f6020820190506116d75f8301846116b5565b92915050565b6116e68161161c565b82525050565b5f6020820190506116ff5f8301846116dd565b92915050565b5f6020828403121561171a5761171961124e565b5b5f6117278482850161129c565b91505092915050565b5f602082840312156117455761174461124e565b5b5f6117528482850161163b565b91505092915050565b5f5f604083850312156117715761177061124e565b5b5f61177e8582860161129c565b925050602061178f8582860161129c565b9150509250929050565b7f496e76616c6964205369676e65722100000000000000000000000000000000005f82015250565b5f6117cd600f83611495565b91506117d882611799565b602082019050919050565b5f6020820190508181035f8301526117fa816117c1565b9050919050565b7f416c7265616479206d696e7465640000000000000000000000000000000000005f82015250565b5f611835600e83611495565b915061184082611801565b602082019050919050565b5f6020820190508181035f83015261186281611829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118ad57607f821691505b6020821081036118c0576118bf611869565b5b50919050565b5f8160601b9050919050565b5f6118dc826118c6565b9050919050565b5f6118ed826118d2565b9050919050565b61190561190082611275565b6118e3565b82525050565b5f819050919050565b611925611920826112b0565b61190b565b82525050565b5f61193682856118f4565b6014820191506119468284611914565b6020820191508190509392505050565b5f61196182876118f4565b6014820191506119718286611914565b6020820191506119818285611914565b6020820191506119918284611914565b60208201915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119da826112b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a0c57611a0b6119a3565b5b600182019050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f611a55601c83611a17565b9150611a6082611a21565b601c82019050919050565b5f819050919050565b611a85611a808261161c565b611a6b565b82525050565b5f611a9582611a49565b9150611aa18284611a74565b60208201915081905092915050565b5f606082019050611ac35f8301866115a4565b611ad0602083018561157c565b611add604083018461157c565b949350505050565b5f611aef826112b0565b9150611afa836112b0565b9250828201905080821115611b1257611b116119a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f608082019050611b585f8301876116dd565b611b6560208301866116b5565b611b7260408301856116dd565b611b7f60608301846116dd565b9594505050505056fea26469706673582212201b8a94a13a37e711f335cbc8fde3483148deafcddb6e73435b71baf47a7ac10464736f6c63430008220033","sourceMap":"259:2782:126:-:0;;;375:79;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;437:10:126::1;428:6;;:19;;;;;;;;;;;;;;;;;;259:2782:::0;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;259:2782:126:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610108575f3560e01c8063512c91df116100a0578063918a15cf1161006f578063918a15cf146102dc57806395d89b411461030c578063a9059cbb1461032a578063dd62ed3e1461035a578063f9c7cb751461038a57610108565b8063512c91df14610230578063630303c61461026057806370a08231146102905780637ce19002146102c057610108565b8063238ac933116100dc578063238ac9331461019457806323b872dd146101b2578063258ae582146101e2578063313ce5671461021257610108565b80623920731461010c57806306fdde0314610128578063095ea7b31461014657806318160ddd14610176575b5f5ffd5b6101266004803603810190610121919061141f565b6103a6565b005b6101306104f3565b60405161013d91906114eb565b60405180910390f35b610160600480360381019061015b919061150b565b610583565b60405161016d9190611563565b60405180910390f35b61017e6105a5565b60405161018b919061158b565b60405180910390f35b61019c6105ae565b6040516101a991906115b3565b60405180910390f35b6101cc60048036038101906101c791906115cc565b6105d3565b6040516101d99190611563565b60405180910390f35b6101fc60048036038101906101f7919061164f565b610601565b6040516102099190611563565b60405180910390f35b61021a610663565b60405161022791906116c4565b60405180910390f35b61024a6004803603810190610245919061150b565b61066b565b60405161025791906116ec565b60405180910390f35b61027a60048036038101906102759190611705565b61069d565b6040516102879190611563565b60405180910390f35b6102aa60048036038101906102a59190611705565b6106ba565b6040516102b7919061158b565b60405180910390f35b6102da60048036038101906102d5919061141f565b6106ff565b005b6102f660048036038101906102f19190611730565b6107a9565b60405161030391906116ec565b60405180910390f35b6103146107d8565b60405161032191906114eb565b60405180910390f35b610344600480360381019061033f919061150b565b610868565b6040516103519190611563565b60405180910390f35b610374600480360381019061036f919061175b565b61088a565b604051610381919061158b565b60405180910390f35b6103a4600480360381019061039f919061141f565b61090c565b005b5f6103b96103b4858561066b565b6107a9565b90506103c58183610601565b610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb906117e3565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561048e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104859061184b565b60405180910390fd5b600160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104ed848461097a565b50505050565b60606003805461050290611896565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611896565b80156105795780601f1061055057610100808354040283529160200191610579565b820191905f5260205f20905b81548152906001019060200180831161055c57829003601f168201915b5050505050905090565b5f5f61058d6109f9565b905061059a818585610a00565b600191505092915050565b5f600254905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6105dd6109f9565b90506105ea858285610a12565b6105f5858585610aa5565b60019150509392505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106448484610b95565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b5f6012905090565b5f828260405160200161067f92919061192b565b60405160208183030381529060405280519060200120905092915050565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f61073784846007544660405160200161071c9493929190611956565b604051602081830303815290604052805190602001206107a9565b90506107438183610601565b610782576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610779906117e3565b60405180910390fd5b61078c848461097a565b60075f81548092919061079e906119d0565b919050555050505050565b5f816040516020016107bb9190611a8b565b604051602081830303815290604052805190602001209050919050565b6060600480546107e790611896565b80601f016020809104026020016040519081016040528092919081815260200182805461081390611896565b801561085e5780601f106108355761010080835404028352916020019161085e565b820191905f5260205f20905b81548152906001019060200180831161084157829003601f168201915b5050505050905090565b5f5f6108726109f9565b905061087f818585610aa5565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61091f61091a858561066b565b6107a9565b905061092b8183610601565b61096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117e3565b60405180910390fd5b610974848461097a565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ea575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109e191906115b3565b60405180910390fd5b6109f55f8383610bbf565b5050565b5f33905090565b610a0d8383836001610dd8565b505050565b5f610a1d848461088a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610a9f5781811015610a90578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a8793929190611ab0565b60405180910390fd5b610a9e84848484035f610dd8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b15575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0c91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b85575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7c91906115b3565b60405180910390fd5b610b90838383610bbf565b505050565b5f5f5f5f610ba38686610fa7565b925092509250610bb38282610ffc565b82935050505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f578060025f828254610c039190611ae5565b92505081905550610cdd565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c98578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c8f93929190611ab0565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d24578060025f8282540392505081905550610d6e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dcb919061158b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e48575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610e3f91906115b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eb8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610eaf91906115b3565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610fa1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f98919061158b565b60405180910390a35b50505050565b5f5f5f6041845103610fe7575f5f5f602087015192506040870151915060608701515f1a9050610fd98882858561115e565b955095509550505050610ff5565b5f600285515f1b9250925092505b9250925092565b5f600381111561100f5761100e611b18565b5b82600381111561102257611021611b18565b5b031561115a576001600381111561103c5761103b611b18565b5b82600381111561104f5761104e611b18565b5b03611086576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561109a57611099611b18565b5b8260038111156110ad576110ac611b18565b5b036110f157805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016110e8919061158b565b60405180910390fd5b60038081111561110457611103611b18565b5b82600381111561111757611116611b18565b5b0361115957806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161115091906116ec565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c111561119a575f60038592509250925061123b565b5f6001888888886040515f81526020016040526040516111bd9493929190611b45565b6020604051602081039080840390855afa1580156111dd573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122e575f60015f5f1b9350935093505061123b565b805f5f5f1b935093509350505b9450945094915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61127f82611256565b9050919050565b61128f81611275565b8114611299575f5ffd5b50565b5f813590506112aa81611286565b92915050565b5f819050919050565b6112c2816112b0565b81146112cc575f5ffd5b50565b5f813590506112dd816112b9565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611331826112eb565b810181811067ffffffffffffffff821117156113505761134f6112fb565b5b80604052505050565b5f611362611245565b905061136e8282611328565b919050565b5f67ffffffffffffffff82111561138d5761138c6112fb565b5b611396826112eb565b9050602081019050919050565b828183375f83830152505050565b5f6113c36113be84611373565b611359565b9050828152602081018484840111156113df576113de6112e7565b5b6113ea8482856113a3565b509392505050565b5f82601f830112611406576114056112e3565b5b81356114168482602086016113b1565b91505092915050565b5f5f5f606084860312156114365761143561124e565b5b5f6114438682870161129c565b9350506020611454868287016112cf565b925050604084013567ffffffffffffffff81111561147557611474611252565b5b611481868287016113f2565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114bd8261148b565b6114c78185611495565b93506114d78185602086016114a5565b6114e0816112eb565b840191505092915050565b5f6020820190508181035f83015261150381846114b3565b905092915050565b5f5f604083850312156115215761152061124e565b5b5f61152e8582860161129c565b925050602061153f858286016112cf565b9150509250929050565b5f8115159050919050565b61155d81611549565b82525050565b5f6020820190506115765f830184611554565b92915050565b611585816112b0565b82525050565b5f60208201905061159e5f83018461157c565b92915050565b6115ad81611275565b82525050565b5f6020820190506115c65f8301846115a4565b92915050565b5f5f5f606084860312156115e3576115e261124e565b5b5f6115f08682870161129c565b93505060206116018682870161129c565b9250506040611612868287016112cf565b9150509250925092565b5f819050919050565b61162e8161161c565b8114611638575f5ffd5b50565b5f8135905061164981611625565b92915050565b5f5f604083850312156116655761166461124e565b5b5f6116728582860161163b565b925050602083013567ffffffffffffffff81111561169357611692611252565b5b61169f858286016113f2565b9150509250929050565b5f60ff82169050919050565b6116be816116a9565b82525050565b5f6020820190506116d75f8301846116b5565b92915050565b6116e68161161c565b82525050565b5f6020820190506116ff5f8301846116dd565b92915050565b5f6020828403121561171a5761171961124e565b5b5f6117278482850161129c565b91505092915050565b5f602082840312156117455761174461124e565b5b5f6117528482850161163b565b91505092915050565b5f5f604083850312156117715761177061124e565b5b5f61177e8582860161129c565b925050602061178f8582860161129c565b9150509250929050565b7f496e76616c6964205369676e65722100000000000000000000000000000000005f82015250565b5f6117cd600f83611495565b91506117d882611799565b602082019050919050565b5f6020820190508181035f8301526117fa816117c1565b9050919050565b7f416c7265616479206d696e7465640000000000000000000000000000000000005f82015250565b5f611835600e83611495565b915061184082611801565b602082019050919050565b5f6020820190508181035f83015261186281611829565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806118ad57607f821691505b6020821081036118c0576118bf611869565b5b50919050565b5f8160601b9050919050565b5f6118dc826118c6565b9050919050565b5f6118ed826118d2565b9050919050565b61190561190082611275565b6118e3565b82525050565b5f819050919050565b611925611920826112b0565b61190b565b82525050565b5f61193682856118f4565b6014820191506119468284611914565b6020820191508190509392505050565b5f61196182876118f4565b6014820191506119718286611914565b6020820191506119818285611914565b6020820191506119918284611914565b60208201915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119da826112b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a0c57611a0b6119a3565b5b600182019050919050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f611a55601c83611a17565b9150611a6082611a21565b601c82019050919050565b5f819050919050565b611a85611a808261161c565b611a6b565b82525050565b5f611a9582611a49565b9150611aa18284611a74565b60208201915081905092915050565b5f606082019050611ac35f8301866115a4565b611ad0602083018561157c565b611add604083018461157c565b949350505050565b5f611aef826112b0565b9150611afa836112b0565b9250828201905080821115611b1257611b116119a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f608082019050611b585f8301876116dd565b611b6560208301866116b5565b611b7260408301856116dd565b611b7f60608301846116dd565b9594505050505056fea26469706673582212201b8a94a13a37e711f335cbc8fde3483148deafcddb6e73435b71baf47a7ac10464736f6c63430008220033","sourceMap":"259:2782:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2292:415;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1760:89:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;294:21:126;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2044:154:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2688:82:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1278:143:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2205:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116:22;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:305:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1756:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;748:251:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2292:415;2376:16;2395:50;2418:26;2433:2;2437:6;2418:14;:26::i;:::-;2395:22;:50::i;:::-;2376:69;;2463:27;2470:8;2480:9;2463:6;:27::i;:::-;2455:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2569:13;:17;2583:2;2569:17;;;;;;;;;;;;;;;;;;;;;;;;;2568:18;2560:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2669:4;2649:13;:17;2663:2;2649:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;2683:17;2689:2;2693:6;2683:5;:17::i;:::-;2366:341;2292:415;;;:::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;294:21:126:-;;;;;;;;;;;;;:::o;4680:244:22:-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;2044:154:126:-;2124:4;2185:6;;;;;;;;;;;2146:45;;:35;2160:8;2170:10;2146:13;:35::i;:::-;:45;;;2139:52;;2044:154;;;;:::o;2688:82:22:-;2737:5;2761:2;2754:9;;2688:82;:::o;1278:143:126:-;1350:7;1402:2;1406:6;1385:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1375:39;;;;;;1368:46;;1278:143;;;;:::o;2205:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2933:116:22:-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;2734:305:126:-;2819:16;2838:85;2888:2;2892:6;2900:5;;2907:13;2871:50;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2861:61;;;;;;2838:22;:85::i;:::-;2819:104;;2941:27;2948:8;2958:9;2941:6;:27::i;:::-;2933:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2998:17;3004:2;3008:6;2998:5;:17::i;:::-;3025:5;;:7;;;;;;;;;:::i;:::-;;;;;;2809:230;2734:305;;;:::o;1756:263::-;1823:7;2006:4;1953:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;1943:69;;;;;;1936:76;;1756:263;;;:::o;1962:93:22:-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;748:251:126:-;831:16;850:50;873:26;888:2;892:6;873:14;:26::i;:::-;850:22;:50::i;:::-;831:69;;918:27;925:8;935:9;918:6;:27::i;:::-;910:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;975:17;981:2;985:6;975:5;:17::i;:::-;821:178;748:251;;;:::o;7362:208:22:-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;5276:255:36:-;5354:7;5374:17;5393:18;5413:16;5433:27;5444:4;5450:9;5433:10;:27::i;:::-;5373:87;;;;;;5470:28;5482:5;5489:8;5470:11;:28::i;:::-;5515:9;5508:16;;;;;5276:255;;;;:::o;5912:1107:22:-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;2419:778:36:-;2522:17;2541:16;2559:14;2609:2;2589:9;:16;:22;2585:606;;2627:9;2650;2673:7;2894:4;2883:9;2879:20;2873:27;2868:32;;2943:4;2932:9;2928:20;2922:27;2917:32;;3000:4;2989:9;2985:20;2979:27;2976:1;2971:36;2966:41;;3041:25;3052:4;3058:1;3061;3064;3041:10;:25::i;:::-;3034:32;;;;;;;;;;;2585:606;3113:1;3117:35;3162:9;:16;3154:25;;3097:83;;;;;;2419:778;;;;;;:::o;11617:532::-;11712:20;11703:29;;;;;;;;:::i;:::-;;:5;:29;;;;;;;;:::i;:::-;;;11699:444;11748:7;11699:444;11808:29;11799:38;;;;;;;;:::i;:::-;;:5;:38;;;;;;;;:::i;:::-;;;11795:348;;11860:23;;;;;;;;;;;;;;11795:348;11913:35;11904:44;;;;;;;;:::i;:::-;;:5;:44;;;;;;;;:::i;:::-;;;11900:243;;12007:8;11999:17;;11971:46;;;;;;;;;;;:::i;:::-;;;;;;;;11900:243;12047:30;12038:39;;;;;;;;:::i;:::-;;:5;:39;;;;;;;;:::i;:::-;;;12034:109;;12123:8;12100:32;;;;;;;;;;;:::i;:::-;;;;;;;;12034:109;11617:532;;;:::o;7129:1551::-;7255:17;7274:16;7292:14;8209:66;8204:1;8196:10;;:79;8192:164;;;8307:1;8311:30;8343:1;8291:54;;;;;;;;8192:164;8450:14;8467:24;8477:4;8483:1;8486;8489;8467:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:41;;8523:1;8505:20;;:6;:20;;;8501:113;;8557:1;8561:29;8600:1;8592:10;;8541:62;;;;;;;;;8501:113;8632:6;8640:20;8670:1;8662:10;;8624:49;;;;;;;7129:1551;;;;;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:307::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2159:307;;;:::o;2472:148::-;2570:6;2565:3;2560;2547:30;2611:1;2602:6;2597:3;2593:16;2586:27;2472:148;;;:::o;2626:423::-;2703:5;2728:65;2744:48;2785:6;2744:48;:::i;:::-;2728:65;:::i;:::-;2719:74;;2816:6;2809:5;2802:21;2854:4;2847:5;2843:16;2892:3;2883:6;2878:3;2874:16;2871:25;2868:112;;;2899:79;;:::i;:::-;2868:112;2989:54;3036:6;3031:3;3026;2989:54;:::i;:::-;2709:340;2626:423;;;;;:::o;3068:338::-;3123:5;3172:3;3165:4;3157:6;3153:17;3149:27;3139:122;;3180:79;;:::i;:::-;3139:122;3297:6;3284:20;3322:78;3396:3;3388:6;3381:4;3373:6;3369:17;3322:78;:::i;:::-;3313:87;;3129:277;3068:338;;;;:::o;3412:797::-;3498:6;3506;3514;3563:2;3551:9;3542:7;3538:23;3534:32;3531:119;;;3569:79;;:::i;:::-;3531:119;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:53;3887:7;3878:6;3867:9;3863:22;3842:53;:::i;:::-;3832:63;;3787:118;3972:2;3961:9;3957:18;3944:32;4003:18;3995:6;3992:30;3989:117;;;4025:79;;:::i;:::-;3989:117;4130:62;4184:7;4175:6;4164:9;4160:22;4130:62;:::i;:::-;4120:72;;3915:287;3412:797;;;;;:::o;4215:99::-;4267:6;4301:5;4295:12;4285:22;;4215:99;;;:::o;4320:169::-;4404:11;4438:6;4433:3;4426:19;4478:4;4473:3;4469:14;4454:29;;4320:169;;;;:::o;4495:139::-;4584:6;4579:3;4574;4568:23;4625:1;4616:6;4611:3;4607:16;4600:27;4495:139;;;:::o;4640:377::-;4728:3;4756:39;4789:5;4756:39;:::i;:::-;4811:71;4875:6;4870:3;4811:71;:::i;:::-;4804:78;;4891:65;4949:6;4944:3;4937:4;4930:5;4926:16;4891:65;:::i;:::-;4981:29;5003:6;4981:29;:::i;:::-;4976:3;4972:39;4965:46;;4732:285;4640:377;;;;:::o;5023:313::-;5136:4;5174:2;5163:9;5159:18;5151:26;;5223:9;5217:4;5213:20;5209:1;5198:9;5194:17;5187:47;5251:78;5324:4;5315:6;5251:78;:::i;:::-;5243:86;;5023:313;;;;:::o;5342:474::-;5410:6;5418;5467:2;5455:9;5446:7;5442:23;5438:32;5435:119;;;5473:79;;:::i;:::-;5435:119;5593:1;5618:53;5663:7;5654:6;5643:9;5639:22;5618:53;:::i;:::-;5608:63;;5564:117;5720:2;5746:53;5791:7;5782:6;5771:9;5767:22;5746:53;:::i;:::-;5736:63;;5691:118;5342:474;;;;;:::o;5822:90::-;5856:7;5899:5;5892:13;5885:21;5874:32;;5822:90;;;:::o;5918:109::-;5999:21;6014:5;5999:21;:::i;:::-;5994:3;5987:34;5918:109;;:::o;6033:210::-;6120:4;6158:2;6147:9;6143:18;6135:26;;6171:65;6233:1;6222:9;6218:17;6209:6;6171:65;:::i;:::-;6033:210;;;;:::o;6249:118::-;6336:24;6354:5;6336:24;:::i;:::-;6331:3;6324:37;6249:118;;:::o;6373:222::-;6466:4;6504:2;6493:9;6489:18;6481:26;;6517:71;6585:1;6574:9;6570:17;6561:6;6517:71;:::i;:::-;6373:222;;;;:::o;6601:118::-;6688:24;6706:5;6688:24;:::i;:::-;6683:3;6676:37;6601:118;;:::o;6725:222::-;6818:4;6856:2;6845:9;6841:18;6833:26;;6869:71;6937:1;6926:9;6922:17;6913:6;6869:71;:::i;:::-;6725:222;;;;:::o;6953:619::-;7030:6;7038;7046;7095:2;7083:9;7074:7;7070:23;7066:32;7063:119;;;7101:79;;:::i;:::-;7063:119;7221:1;7246:53;7291:7;7282:6;7271:9;7267:22;7246:53;:::i;:::-;7236:63;;7192:117;7348:2;7374:53;7419:7;7410:6;7399:9;7395:22;7374:53;:::i;:::-;7364:63;;7319:118;7476:2;7502:53;7547:7;7538:6;7527:9;7523:22;7502:53;:::i;:::-;7492:63;;7447:118;6953:619;;;;;:::o;7578:77::-;7615:7;7644:5;7633:16;;7578:77;;;:::o;7661:122::-;7734:24;7752:5;7734:24;:::i;:::-;7727:5;7724:35;7714:63;;7773:1;7770;7763:12;7714:63;7661:122;:::o;7789:139::-;7835:5;7873:6;7860:20;7851:29;;7889:33;7916:5;7889:33;:::i;:::-;7789:139;;;;:::o;7934:652::-;8011:6;8019;8068:2;8056:9;8047:7;8043:23;8039:32;8036:119;;;8074:79;;:::i;:::-;8036:119;8194:1;8219:53;8264:7;8255:6;8244:9;8240:22;8219:53;:::i;:::-;8209:63;;8165:117;8349:2;8338:9;8334:18;8321:32;8380:18;8372:6;8369:30;8366:117;;;8402:79;;:::i;:::-;8366:117;8507:62;8561:7;8552:6;8541:9;8537:22;8507:62;:::i;:::-;8497:72;;8292:287;7934:652;;;;;:::o;8592:86::-;8627:7;8667:4;8660:5;8656:16;8645:27;;8592:86;;;:::o;8684:112::-;8767:22;8783:5;8767:22;:::i;:::-;8762:3;8755:35;8684:112;;:::o;8802:214::-;8891:4;8929:2;8918:9;8914:18;8906:26;;8942:67;9006:1;8995:9;8991:17;8982:6;8942:67;:::i;:::-;8802:214;;;;:::o;9022:118::-;9109:24;9127:5;9109:24;:::i;:::-;9104:3;9097:37;9022:118;;:::o;9146:222::-;9239:4;9277:2;9266:9;9262:18;9254:26;;9290:71;9358:1;9347:9;9343:17;9334:6;9290:71;:::i;:::-;9146:222;;;;:::o;9374:329::-;9433:6;9482:2;9470:9;9461:7;9457:23;9453:32;9450:119;;;9488:79;;:::i;:::-;9450:119;9608:1;9633:53;9678:7;9669:6;9658:9;9654:22;9633:53;:::i;:::-;9623:63;;9579:117;9374:329;;;;:::o;9709:::-;9768:6;9817:2;9805:9;9796:7;9792:23;9788:32;9785:119;;;9823:79;;:::i;:::-;9785:119;9943:1;9968:53;10013:7;10004:6;9993:9;9989:22;9968:53;:::i;:::-;9958:63;;9914:117;9709:329;;;;:::o;10044:474::-;10112:6;10120;10169:2;10157:9;10148:7;10144:23;10140:32;10137:119;;;10175:79;;:::i;:::-;10137:119;10295:1;10320:53;10365:7;10356:6;10345:9;10341:22;10320:53;:::i;:::-;10310:63;;10266:117;10422:2;10448:53;10493:7;10484:6;10473:9;10469:22;10448:53;:::i;:::-;10438:63;;10393:118;10044:474;;;;;:::o;10524:165::-;10664:17;10660:1;10652:6;10648:14;10641:41;10524:165;:::o;10695:366::-;10837:3;10858:67;10922:2;10917:3;10858:67;:::i;:::-;10851:74;;10934:93;11023:3;10934:93;:::i;:::-;11052:2;11047:3;11043:12;11036:19;;10695:366;;;:::o;11067:419::-;11233:4;11271:2;11260:9;11256:18;11248:26;;11320:9;11314:4;11310:20;11306:1;11295:9;11291:17;11284:47;11348:131;11474:4;11348:131;:::i;:::-;11340:139;;11067:419;;;:::o;11492:164::-;11632:16;11628:1;11620:6;11616:14;11609:40;11492:164;:::o;11662:366::-;11804:3;11825:67;11889:2;11884:3;11825:67;:::i;:::-;11818:74;;11901:93;11990:3;11901:93;:::i;:::-;12019:2;12014:3;12010:12;12003:19;;11662:366;;;:::o;12034:419::-;12200:4;12238:2;12227:9;12223:18;12215:26;;12287:9;12281:4;12277:20;12273:1;12262:9;12258:17;12251:47;12315:131;12441:4;12315:131;:::i;:::-;12307:139;;12034:419;;;:::o;12459:180::-;12507:77;12504:1;12497:88;12604:4;12601:1;12594:15;12628:4;12625:1;12618:15;12645:320;12689:6;12726:1;12720:4;12716:12;12706:22;;12773:1;12767:4;12763:12;12794:18;12784:81;;12850:4;12842:6;12838:17;12828:27;;12784:81;12912:2;12904:6;12901:14;12881:18;12878:38;12875:84;;12931:18;;:::i;:::-;12875:84;12696:269;12645:320;;;:::o;12971:94::-;13004:8;13052:5;13048:2;13044:14;13023:35;;12971:94;;;:::o;13071:::-;13110:7;13139:20;13153:5;13139:20;:::i;:::-;13128:31;;13071:94;;;:::o;13171:100::-;13210:7;13239:26;13259:5;13239:26;:::i;:::-;13228:37;;13171:100;;;:::o;13277:157::-;13382:45;13402:24;13420:5;13402:24;:::i;:::-;13382:45;:::i;:::-;13377:3;13370:58;13277:157;;:::o;13440:79::-;13479:7;13508:5;13497:16;;13440:79;;;:::o;13525:157::-;13630:45;13650:24;13668:5;13650:24;:::i;:::-;13630:45;:::i;:::-;13625:3;13618:58;13525:157;;:::o;13688:397::-;13828:3;13843:75;13914:3;13905:6;13843:75;:::i;:::-;13943:2;13938:3;13934:12;13927:19;;13956:75;14027:3;14018:6;13956:75;:::i;:::-;14056:2;14051:3;14047:12;14040:19;;14076:3;14069:10;;13688:397;;;;;:::o;14091:679::-;14287:3;14302:75;14373:3;14364:6;14302:75;:::i;:::-;14402:2;14397:3;14393:12;14386:19;;14415:75;14486:3;14477:6;14415:75;:::i;:::-;14515:2;14510:3;14506:12;14499:19;;14528:75;14599:3;14590:6;14528:75;:::i;:::-;14628:2;14623:3;14619:12;14612:19;;14641:75;14712:3;14703:6;14641:75;:::i;:::-;14741:2;14736:3;14732:12;14725:19;;14761:3;14754:10;;14091:679;;;;;;;:::o;14776:180::-;14824:77;14821:1;14814:88;14921:4;14918:1;14911:15;14945:4;14942:1;14935:15;14962:233;15001:3;15024:24;15042:5;15024:24;:::i;:::-;15015:33;;15070:66;15063:5;15060:77;15057:103;;15140:18;;:::i;:::-;15057:103;15187:1;15180:5;15176:13;15169:20;;14962:233;;;:::o;15201:148::-;15303:11;15340:3;15325:18;;15201:148;;;;:::o;15355:214::-;15495:66;15491:1;15483:6;15479:14;15472:90;15355:214;:::o;15575:402::-;15735:3;15756:85;15838:2;15833:3;15756:85;:::i;:::-;15749:92;;15850:93;15939:3;15850:93;:::i;:::-;15968:2;15963:3;15959:12;15952:19;;15575:402;;;:::o;15983:79::-;16022:7;16051:5;16040:16;;15983:79;;;:::o;16068:157::-;16173:45;16193:24;16211:5;16193:24;:::i;:::-;16173:45;:::i;:::-;16168:3;16161:58;16068:157;;:::o;16231:522::-;16444:3;16466:148;16610:3;16466:148;:::i;:::-;16459:155;;16624:75;16695:3;16686:6;16624:75;:::i;:::-;16724:2;16719:3;16715:12;16708:19;;16744:3;16737:10;;16231:522;;;;:::o;16759:442::-;16908:4;16946:2;16935:9;16931:18;16923:26;;16959:71;17027:1;17016:9;17012:17;17003:6;16959:71;:::i;:::-;17040:72;17108:2;17097:9;17093:18;17084:6;17040:72;:::i;:::-;17122;17190:2;17179:9;17175:18;17166:6;17122:72;:::i;:::-;16759:442;;;;;;:::o;17207:191::-;17247:3;17266:20;17284:1;17266:20;:::i;:::-;17261:25;;17300:20;17318:1;17300:20;:::i;:::-;17295:25;;17343:1;17340;17336:9;17329:16;;17364:3;17361:1;17358:10;17355:36;;;17371:18;;:::i;:::-;17355:36;17207:191;;;;:::o;17404:180::-;17452:77;17449:1;17442:88;17549:4;17546:1;17539:15;17573:4;17570:1;17563:15;17590:545;17763:4;17801:3;17790:9;17786:19;17778:27;;17815:71;17883:1;17872:9;17868:17;17859:6;17815:71;:::i;:::-;17896:68;17960:2;17949:9;17945:18;17936:6;17896:68;:::i;:::-;17974:72;18042:2;18031:9;18027:18;18018:6;17974:72;:::i;:::-;18056;18124:2;18113:9;18109:18;18100:6;18056:72;:::i;:::-;17590:545;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","badMint(address,uint256,bytes)":"f9c7cb75","balanceOf(address)":"70a08231","decimals()":"313ce567","getMessageHash(address,uint256)":"512c91df","goodMint(address,uint256,bytes)":"00392073","mintedAddress(address)":"630303c6","name()":"06fdde03","nonceMint(address,uint256,bytes)":"7ce19002","signer()":"238ac933","symbol()":"95d89b41","toEthSignedMessageHash(bytes32)":"918a15cf","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","verify(bytes32,bytes)":"258ae582"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"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\"},{\"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\":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\":[{\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"badMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"goodMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"mintedAddress\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"nonceMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"toEthSignedMessageHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"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\":\"bytes32\",\"name\":\"_msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"toEthSignedMessageHash(bytes32)\":{\"details\":\"\\u83b7\\u5f97\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6d88\\u606f `hash`\\uff1a\\u6d88\\u606f\\u54c8\\u5e0c \\u9075\\u4ece\\u4ee5\\u592a\\u574a\\u7b7e\\u540d\\u6807\\u51c6\\uff1ahttps://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] \\u4ee5\\u53ca`EIP191`:https://eips.ethereum.org/EIPS/eip-191` \\u6dfb\\u52a0\\\"\\\\x19Ethereum Signed Message:\\\\n32\\\"\\u5b57\\u6bb5\\uff0c\\u9632\\u6b62\\u7b7e\\u540d\\u7684\\u662f\\u53ef\\u6267\\u884c\\u4ea4\\u6613\\u3002\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"badMint(address,uint256,bytes)\":{\"notice\":\"\\u6709\\u7b7e\\u540d\\u91cd\\u8bbf\\u6f0f\\u6d1e\\u7684\\u94f8\\u9020\\u51fd\\u6570 to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 \\u7b7e\\u540d\\uff1a 0x5a4f1ad4d8bd6b5582e658087633230d9810a0b7b8afa791e3f94cc38947f6cb1069519caf5bba7b975df29cbfdb4ada355027589a989435bf88e825841452f61b\"},\"getMessageHash(address,uint256)\":{\"notice\":\"\\u5c06to\\u5730\\u5740\\uff08address\\u7c7b\\u578b\\uff09\\u548camount\\uff08uint256\\u7c7b\\u578b\\uff09\\u62fc\\u6210\\u6d88\\u606fmsgHash to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 \\u5bf9\\u5e94\\u7684\\u6d88\\u606fmsgHash: 0xb4a4ba10fbd6886a312ec31c54137f5714ddc0e93274da8746a36d2fa96768be\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S06_SignatureReplay/SingatureReplay.sol\":\"SigReplay\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"src/S06_SignatureReplay/SingatureReplay.sol\":{\"keccak256\":\"0x00c73c9f837433088b5386318fcb1bdb80f5959bb17d3f995cd088425db014d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96151305ea2db9207940e885467e411b0851e371b321b6ec4124fe941632cf0\",\"dweb:/ipfs/Qmdm6PV4zjckgqWqfhMp24FA9G2Sv5tQ6pgvQfhgaYmoqY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"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":[{"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":"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":[{"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"badMint"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"goodMint"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"mintedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"nonceMint"},{"inputs":[],"stateMutability":"view","type":"function","name":"signer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":"bytes32","name":"_msgHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"toEthSignedMessageHash(bytes32)":{"details":"获得以太坊签名消息 `hash`:消息哈希 遵从以太坊签名标准:https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] 以及`EIP191`:https://eips.ethereum.org/EIPS/eip-191` 添加\"\\x19Ethereum Signed Message:\\n32\"字段,防止签名的是可执行交易。"},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{"badMint(address,uint256,bytes)":{"notice":"有签名重访漏洞的铸造函数 to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 签名: 0x5a4f1ad4d8bd6b5582e658087633230d9810a0b7b8afa791e3f94cc38947f6cb1069519caf5bba7b975df29cbfdb4ada355027589a989435bf88e825841452f61b"},"getMessageHash(address,uint256)":{"notice":"将to地址(address类型)和amount(uint256类型)拼成消息msgHash to: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 amount: 1000 对应的消息msgHash: 0xb4a4ba10fbd6886a312ec31c54137f5714ddc0e93274da8746a36d2fa96768be"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S06_SignatureReplay/SingatureReplay.sol":"SigReplay"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"src/S06_SignatureReplay/SingatureReplay.sol":{"keccak256":"0x00c73c9f837433088b5386318fcb1bdb80f5959bb17d3f995cd088425db014d2","urls":["bzz-raw://b96151305ea2db9207940e885467e411b0851e371b321b6ec4124fe941632cf0","dweb:/ipfs/Qmdm6PV4zjckgqWqfhMp24FA9G2Sv5tQ6pgvQfhgaYmoqY"],"license":"MIT"}},"version":1},"id":126} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json index c691e0c3..bd049adf 100644 --- a/out/StdError.sol/stdError.json +++ b/out/StdError.sol/stdError.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x610a8d61004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009c575f3560e01c8063986c5f681161006f578063986c5f6814610118578063b22dc54d14610136578063b67689da14610154578063d160e4de14610172578063fa784a44146101905761009c565b806305ee8612146100a057806310332977146100be5780631de45560146100dc5780638995290f146100fa575b5f5ffd5b6100a86101ae565b6040516100b59190610740565b60405180910390f35b6100c6610240565b6040516100d39190610740565b60405180910390f35b6100e46102d2565b6040516100f19190610740565b60405180910390f35b610102610364565b60405161010f9190610740565b60405180910390f35b6101206103f6565b60405161012d9190610740565b60405180910390f35b61013e610488565b60405161014b9190610740565b60405180910390f35b61015c61051a565b6040516101699190610740565b60405180910390f35b61017a6105ac565b6040516101879190610740565b60405180910390f35b61019861063e565b6040516101a59190610740565b60405180910390f35b60326040516024016101c091906107ae565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60016040516024016102529190610800565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60216040516024016102e49190610852565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601160405160240161037691906108a4565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b604160405160240161040891906108f6565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b603160405160240161049a9190610948565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b605160405160240161052c919061099a565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60226040516024016105be91906109ec565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60126040516024016106509190610a3e565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610712826106d0565b61071c81856106da565b935061072c8185602086016106ea565b610735816106f8565b840191505092915050565b5f6020820190508181035f8301526107588184610708565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61079861079361078e84610760565b610775565b610769565b9050919050565b6107a88161077e565b82525050565b5f6020820190506107c15f83018461079f565b92915050565b5f819050919050565b5f6107ea6107e56107e0846107c7565b610775565b610769565b9050919050565b6107fa816107d0565b82525050565b5f6020820190506108135f8301846107f1565b92915050565b5f819050919050565b5f61083c61083761083284610819565b610775565b610769565b9050919050565b61084c81610822565b82525050565b5f6020820190506108655f830184610843565b92915050565b5f819050919050565b5f61088e6108896108848461086b565b610775565b610769565b9050919050565b61089e81610874565b82525050565b5f6020820190506108b75f830184610895565b92915050565b5f819050919050565b5f6108e06108db6108d6846108bd565b610775565b610769565b9050919050565b6108f0816108c6565b82525050565b5f6020820190506109095f8301846108e7565b92915050565b5f819050919050565b5f61093261092d6109288461090f565b610775565b610769565b9050919050565b61094281610918565b82525050565b5f60208201905061095b5f830184610939565b92915050565b5f819050919050565b5f61098461097f61097a84610961565b610775565b610769565b9050919050565b6109948161096a565b82525050565b5f6020820190506109ad5f83018461098b565b92915050565b5f819050919050565b5f6109d66109d16109cc846109b3565b610775565b610769565b9050919050565b6109e6816109bc565b82525050565b5f6020820190506109ff5f8301846109dd565b92915050565b5f819050919050565b5f610a28610a23610a1e84610a05565b610775565b610769565b9050919050565b610a3881610a0e565b82525050565b5f602082019050610a515f830184610a2f565b9291505056fea264697066735822122022d69ba44462b7838e035cd850bcaaf4fd763a484ac38c792edec04827fa69fe64736f6c63430008220033","sourceMap":"177:850:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009c575f3560e01c8063986c5f681161006f578063986c5f6814610118578063b22dc54d14610136578063b67689da14610154578063d160e4de14610172578063fa784a44146101905761009c565b806305ee8612146100a057806310332977146100be5780631de45560146100dc5780638995290f146100fa575b5f5ffd5b6100a86101ae565b6040516100b59190610740565b60405180910390f35b6100c6610240565b6040516100d39190610740565b60405180910390f35b6100e46102d2565b6040516100f19190610740565b60405180910390f35b610102610364565b60405161010f9190610740565b60405180910390f35b6101206103f6565b60405161012d9190610740565b60405180910390f35b61013e610488565b60405161014b9190610740565b60405180910390f35b61015c61051a565b6040516101699190610740565b60405180910390f35b61017a6105ac565b6040516101879190610740565b60405180910390f35b61019861063e565b6040516101a59190610740565b60405180910390f35b60326040516024016101c091906107ae565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60016040516024016102529190610800565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60216040516024016102e49190610852565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601160405160240161037691906108a4565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b604160405160240161040891906108f6565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b603160405160240161049a9190610948565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b605160405160240161052c919061099a565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60226040516024016105be91906109ec565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60126040516024016106509190610a3e565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610712826106d0565b61071c81856106da565b935061072c8185602086016106ea565b610735816106f8565b840191505092915050565b5f6020820190508181035f8301526107588184610708565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61079861079361078e84610760565b610775565b610769565b9050919050565b6107a88161077e565b82525050565b5f6020820190506107c15f83018461079f565b92915050565b5f819050919050565b5f6107ea6107e56107e0846107c7565b610775565b610769565b9050919050565b6107fa816107d0565b82525050565b5f6020820190506108135f8301846107f1565b92915050565b5f819050919050565b5f61083c61083761083284610819565b610775565b610769565b9050919050565b61084c81610822565b82525050565b5f6020820190506108655f830184610843565b92915050565b5f819050919050565b5f61088e6108896108848461086b565b610775565b610769565b9050919050565b61089e81610874565b82525050565b5f6020820190506108b75f830184610895565b92915050565b5f819050919050565b5f6108e06108db6108d6846108bd565b610775565b610769565b9050919050565b6108f0816108c6565b82525050565b5f6020820190506109095f8301846108e7565b92915050565b5f819050919050565b5f61093261092d6109288461090f565b610775565b610769565b9050919050565b61094281610918565b82525050565b5f60208201905061095b5f830184610939565b92915050565b5f819050919050565b5f61098461097f61097a84610961565b610775565b610769565b9050919050565b6109948161096a565b82525050565b5f6020820190506109ad5f83018461098b565b92915050565b5f819050919050565b5f6109d66109d16109cc846109b3565b610775565b610769565b9050919050565b6109e6816109bc565b82525050565b5f6020820190506109ff5f8301846109dd565b92915050565b5f819050919050565b5f610a28610a23610a1e84610a05565b610775565b610769565b9050919050565b610a3881610a0e565b82525050565b5f602082019050610a515f830184610a2f565b9291505056fea264697066735822122022d69ba44462b7838e035cd850bcaaf4fd763a484ac38c792edec04827fa69fe64736f6c63430008220033","sourceMap":"177:850:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;200:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;292:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;846:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;669:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;940:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;573:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;385:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;755;835:4;793:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:85;:::o;200:86::-;281:4;239:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;200:86;:::o;476:91::-;562:4;520:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:91;:::o;292:87::-;374:4;332:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;292:87;:::o;846:88::-;929:4;887:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;846:88;:::o;669:80::-;744:4;702:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:80;:::o;940:84::-;1019:4;977:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:84;:::o;573:90::-;658:4;616:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;573:90;:::o;385:85::-;465:4;423:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:85;:::o;7:98:145:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:176::-;202:11;236:6;231:3;224:19;276:4;271:3;267:14;252:29;;111:176;;;;:::o;293:139::-;382:6;377:3;372;366:23;423:1;414:6;409:3;405:16;398:27;293:139;;;:::o;438:102::-;479:6;530:2;526:7;521:2;514:5;510:14;506:28;496:38;;438:102;;;:::o;546:389::-;640:3;668:38;700:5;668:38;:::i;:::-;722:78;793:6;788:3;722:78;:::i;:::-;715:85;;809:65;867:6;862:3;855:4;848:5;844:16;809:65;:::i;:::-;899:29;921:6;899:29;:::i;:::-;894:3;890:39;883:46;;644:291;546:389;;;;:::o;941:325::-;1060:4;1098:2;1087:9;1083:18;1075:26;;1147:9;1141:4;1137:20;1133:1;1122:9;1118:17;1111:47;1175:84;1254:4;1245:6;1175:84;:::i;:::-;1167:92;;941:325;;;;:::o;1272:86::-;1318:7;1347:5;1336:16;;1272:86;;;:::o;1364:::-;1399:7;1439:4;1432:5;1428:16;1417:27;;1364:86;;;:::o;1456:60::-;1484:3;1505:5;1498:12;;1456:60;;;:::o;1522:156::-;1579:9;1612:60;1628:43;1637:33;1664:5;1637:33;:::i;:::-;1628:43;:::i;:::-;1612:60;:::i;:::-;1599:73;;1522:156;;;:::o;1684:145::-;1778:44;1816:5;1778:44;:::i;:::-;1773:3;1766:57;1684:145;;:::o;1835:236::-;1935:4;1973:2;1962:9;1958:18;1950:26;;1986:78;2061:1;2050:9;2046:17;2037:6;1986:78;:::i;:::-;1835:236;;;;:::o;2077:85::-;2122:7;2151:5;2140:16;;2077:85;;;:::o;2168:154::-;2224:9;2257:59;2273:42;2282:32;2308:5;2282:32;:::i;:::-;2273:42;:::i;:::-;2257:59;:::i;:::-;2244:72;;2168:154;;;:::o;2328:143::-;2421:43;2458:5;2421:43;:::i;:::-;2416:3;2409:56;2328:143;;:::o;2477:234::-;2576:4;2614:2;2603:9;2599:18;2591:26;;2627:77;2701:1;2690:9;2686:17;2677:6;2627:77;:::i;:::-;2477:234;;;;:::o;2717:86::-;2763:7;2792:5;2781:16;;2717:86;;;:::o;2809:156::-;2866:9;2899:60;2915:43;2924:33;2951:5;2924:33;:::i;:::-;2915:43;:::i;:::-;2899:60;:::i;:::-;2886:73;;2809:156;;;:::o;2971:145::-;3065:44;3103:5;3065:44;:::i;:::-;3060:3;3053:57;2971:145;;:::o;3122:236::-;3222:4;3260:2;3249:9;3245:18;3237:26;;3273:78;3348:1;3337:9;3333:17;3324:6;3273:78;:::i;:::-;3122:236;;;;:::o;3364:86::-;3410:7;3439:5;3428:16;;3364:86;;;:::o;3456:156::-;3513:9;3546:60;3562:43;3571:33;3598:5;3571:33;:::i;:::-;3562:43;:::i;:::-;3546:60;:::i;:::-;3533:73;;3456:156;;;:::o;3618:145::-;3712:44;3750:5;3712:44;:::i;:::-;3707:3;3700:57;3618:145;;:::o;3769:236::-;3869:4;3907:2;3896:9;3892:18;3884:26;;3920:78;3995:1;3984:9;3980:17;3971:6;3920:78;:::i;:::-;3769:236;;;;:::o;4011:86::-;4057:7;4086:5;4075:16;;4011:86;;;:::o;4103:156::-;4160:9;4193:60;4209:43;4218:33;4245:5;4218:33;:::i;:::-;4209:43;:::i;:::-;4193:60;:::i;:::-;4180:73;;4103:156;;;:::o;4265:145::-;4359:44;4397:5;4359:44;:::i;:::-;4354:3;4347:57;4265:145;;:::o;4416:236::-;4516:4;4554:2;4543:9;4539:18;4531:26;;4567:78;4642:1;4631:9;4627:17;4618:6;4567:78;:::i;:::-;4416:236;;;;:::o;4658:86::-;4704:7;4733:5;4722:16;;4658:86;;;:::o;4750:156::-;4807:9;4840:60;4856:43;4865:33;4892:5;4865:33;:::i;:::-;4856:43;:::i;:::-;4840:60;:::i;:::-;4827:73;;4750:156;;;:::o;4912:145::-;5006:44;5044:5;5006:44;:::i;:::-;5001:3;4994:57;4912:145;;:::o;5063:236::-;5163:4;5201:2;5190:9;5186:18;5178:26;;5214:78;5289:1;5278:9;5274:17;5265:6;5214:78;:::i;:::-;5063:236;;;;:::o;5305:86::-;5351:7;5380:5;5369:16;;5305:86;;;:::o;5397:156::-;5454:9;5487:60;5503:43;5512:33;5539:5;5512:33;:::i;:::-;5503:43;:::i;:::-;5487:60;:::i;:::-;5474:73;;5397:156;;;:::o;5559:145::-;5653:44;5691:5;5653:44;:::i;:::-;5648:3;5641:57;5559:145;;:::o;5710:236::-;5810:4;5848:2;5837:9;5833:18;5825:26;;5861:78;5936:1;5925:9;5921:17;5912:6;5861:78;:::i;:::-;5710:236;;;;:::o;5952:86::-;5998:7;6027:5;6016:16;;5952:86;;;:::o;6044:156::-;6101:9;6134:60;6150:43;6159:33;6186:5;6159:33;:::i;:::-;6150:43;:::i;:::-;6134:60;:::i;:::-;6121:73;;6044:156;;;:::o;6206:145::-;6300:44;6338:5;6300:44;:::i;:::-;6295:3;6288:57;6206:145;;:::o;6357:236::-;6457:4;6495:2;6484:9;6480:18;6472:26;;6508:78;6583:1;6572:9;6568:17;6559:6;6508:78;:::i;:::-;6357:236;;;;:::o;6599:86::-;6645:7;6674:5;6663:16;;6599:86;;;:::o;6691:156::-;6748:9;6781:60;6797:43;6806:33;6833:5;6806:33;:::i;:::-;6797:43;:::i;:::-;6781:60;:::i;:::-;6768:73;;6691:156;;;:::o;6853:145::-;6947:44;6985:5;6947:44;:::i;:::-;6942:3;6935:57;6853:145;;:::o;7004:236::-;7104:4;7142:2;7131:9;7127:18;7119:26;;7155:78;7230:1;7219:9;7215:17;7206:6;7155:78;:::i;:::-;7004:236;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"}},"version":1},"id":5} \ No newline at end of file +{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x610a8d61004d600b8282823980515f1a6073146041577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009c575f3560e01c8063986c5f681161006f578063986c5f6814610118578063b22dc54d14610136578063b67689da14610154578063d160e4de14610172578063fa784a44146101905761009c565b806305ee8612146100a057806310332977146100be5780631de45560146100dc5780638995290f146100fa575b5f5ffd5b6100a86101ae565b6040516100b59190610740565b60405180910390f35b6100c6610240565b6040516100d39190610740565b60405180910390f35b6100e46102d2565b6040516100f19190610740565b60405180910390f35b610102610364565b60405161010f9190610740565b60405180910390f35b6101206103f6565b60405161012d9190610740565b60405180910390f35b61013e610488565b60405161014b9190610740565b60405180910390f35b61015c61051a565b6040516101699190610740565b60405180910390f35b61017a6105ac565b6040516101879190610740565b60405180910390f35b61019861063e565b6040516101a59190610740565b60405180910390f35b60326040516024016101c091906107ae565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60016040516024016102529190610800565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60216040516024016102e49190610852565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601160405160240161037691906108a4565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b604160405160240161040891906108f6565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b603160405160240161049a9190610948565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b605160405160240161052c919061099a565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60226040516024016105be91906109ec565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60126040516024016106509190610a3e565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610712826106d0565b61071c81856106da565b935061072c8185602086016106ea565b610735816106f8565b840191505092915050565b5f6020820190508181035f8301526107588184610708565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61079861079361078e84610760565b610775565b610769565b9050919050565b6107a88161077e565b82525050565b5f6020820190506107c15f83018461079f565b92915050565b5f819050919050565b5f6107ea6107e56107e0846107c7565b610775565b610769565b9050919050565b6107fa816107d0565b82525050565b5f6020820190506108135f8301846107f1565b92915050565b5f819050919050565b5f61083c61083761083284610819565b610775565b610769565b9050919050565b61084c81610822565b82525050565b5f6020820190506108655f830184610843565b92915050565b5f819050919050565b5f61088e6108896108848461086b565b610775565b610769565b9050919050565b61089e81610874565b82525050565b5f6020820190506108b75f830184610895565b92915050565b5f819050919050565b5f6108e06108db6108d6846108bd565b610775565b610769565b9050919050565b6108f0816108c6565b82525050565b5f6020820190506109095f8301846108e7565b92915050565b5f819050919050565b5f61093261092d6109288461090f565b610775565b610769565b9050919050565b61094281610918565b82525050565b5f60208201905061095b5f830184610939565b92915050565b5f819050919050565b5f61098461097f61097a84610961565b610775565b610769565b9050919050565b6109948161096a565b82525050565b5f6020820190506109ad5f83018461098b565b92915050565b5f819050919050565b5f6109d66109d16109cc846109b3565b610775565b610769565b9050919050565b6109e6816109bc565b82525050565b5f6020820190506109ff5f8301846109dd565b92915050565b5f819050919050565b5f610a28610a23610a1e84610a05565b610775565b610769565b9050919050565b610a3881610a0e565b82525050565b5f602082019050610a515f830184610a2f565b9291505056fea264697066735822122022d69ba44462b7838e035cd850bcaaf4fd763a484ac38c792edec04827fa69fe64736f6c63430008220033","sourceMap":"177:850:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040526004361061009c575f3560e01c8063986c5f681161006f578063986c5f6814610118578063b22dc54d14610136578063b67689da14610154578063d160e4de14610172578063fa784a44146101905761009c565b806305ee8612146100a057806310332977146100be5780631de45560146100dc5780638995290f146100fa575b5f5ffd5b6100a86101ae565b6040516100b59190610740565b60405180910390f35b6100c6610240565b6040516100d39190610740565b60405180910390f35b6100e46102d2565b6040516100f19190610740565b60405180910390f35b610102610364565b60405161010f9190610740565b60405180910390f35b6101206103f6565b60405161012d9190610740565b60405180910390f35b61013e610488565b60405161014b9190610740565b60405180910390f35b61015c61051a565b6040516101699190610740565b60405180910390f35b61017a6105ac565b6040516101879190610740565b60405180910390f35b61019861063e565b6040516101a59190610740565b60405180910390f35b60326040516024016101c091906107ae565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60016040516024016102529190610800565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60216040516024016102e49190610852565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601160405160240161037691906108a4565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b604160405160240161040891906108f6565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b603160405160240161049a9190610948565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b605160405160240161052c919061099a565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60226040516024016105be91906109ec565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60126040516024016106509190610a3e565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610712826106d0565b61071c81856106da565b935061072c8185602086016106ea565b610735816106f8565b840191505092915050565b5f6020820190508181035f8301526107588184610708565b905092915050565b5f819050919050565b5f60ff82169050919050565b5f819050919050565b5f61079861079361078e84610760565b610775565b610769565b9050919050565b6107a88161077e565b82525050565b5f6020820190506107c15f83018461079f565b92915050565b5f819050919050565b5f6107ea6107e56107e0846107c7565b610775565b610769565b9050919050565b6107fa816107d0565b82525050565b5f6020820190506108135f8301846107f1565b92915050565b5f819050919050565b5f61083c61083761083284610819565b610775565b610769565b9050919050565b61084c81610822565b82525050565b5f6020820190506108655f830184610843565b92915050565b5f819050919050565b5f61088e6108896108848461086b565b610775565b610769565b9050919050565b61089e81610874565b82525050565b5f6020820190506108b75f830184610895565b92915050565b5f819050919050565b5f6108e06108db6108d6846108bd565b610775565b610769565b9050919050565b6108f0816108c6565b82525050565b5f6020820190506109095f8301846108e7565b92915050565b5f819050919050565b5f61093261092d6109288461090f565b610775565b610769565b9050919050565b61094281610918565b82525050565b5f60208201905061095b5f830184610939565b92915050565b5f819050919050565b5f61098461097f61097a84610961565b610775565b610769565b9050919050565b6109948161096a565b82525050565b5f6020820190506109ad5f83018461098b565b92915050565b5f819050919050565b5f6109d66109d16109cc846109b3565b610775565b610769565b9050919050565b6109e6816109bc565b82525050565b5f6020820190506109ff5f8301846109dd565b92915050565b5f819050919050565b5f610a28610a23610a1e84610a05565b610775565b610769565b9050919050565b610a3881610a0e565b82525050565b5f602082019050610a515f830184610a2f565b9291505056fea264697066735822122022d69ba44462b7838e035cd850bcaaf4fd763a484ac38c792edec04827fa69fe64736f6c63430008220033","sourceMap":"177:850:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;200:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;292:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;846:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;669:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;940:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;573:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;385:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;755;835:4;793:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:85;:::o;200:86::-;281:4;239:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;200:86;:::o;476:91::-;562:4;520:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:91;:::o;292:87::-;374:4;332:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;292:87;:::o;846:88::-;929:4;887:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;846:88;:::o;669:80::-;744:4;702:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:80;:::o;940:84::-;1019:4;977:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:84;:::o;573:90::-;658:4;616:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;573:90;:::o;385:85::-;465:4;423:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:85;:::o;7:98:139:-;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:176::-;202:11;236:6;231:3;224:19;276:4;271:3;267:14;252:29;;111:176;;;;:::o;293:139::-;382:6;377:3;372;366:23;423:1;414:6;409:3;405:16;398:27;293:139;;;:::o;438:102::-;479:6;530:2;526:7;521:2;514:5;510:14;506:28;496:38;;438:102;;;:::o;546:389::-;640:3;668:38;700:5;668:38;:::i;:::-;722:78;793:6;788:3;722:78;:::i;:::-;715:85;;809:65;867:6;862:3;855:4;848:5;844:16;809:65;:::i;:::-;899:29;921:6;899:29;:::i;:::-;894:3;890:39;883:46;;644:291;546:389;;;;:::o;941:325::-;1060:4;1098:2;1087:9;1083:18;1075:26;;1147:9;1141:4;1137:20;1133:1;1122:9;1118:17;1111:47;1175:84;1254:4;1245:6;1175:84;:::i;:::-;1167:92;;941:325;;;;:::o;1272:86::-;1318:7;1347:5;1336:16;;1272:86;;;:::o;1364:::-;1399:7;1439:4;1432:5;1428:16;1417:27;;1364:86;;;:::o;1456:60::-;1484:3;1505:5;1498:12;;1456:60;;;:::o;1522:156::-;1579:9;1612:60;1628:43;1637:33;1664:5;1637:33;:::i;:::-;1628:43;:::i;:::-;1612:60;:::i;:::-;1599:73;;1522:156;;;:::o;1684:145::-;1778:44;1816:5;1778:44;:::i;:::-;1773:3;1766:57;1684:145;;:::o;1835:236::-;1935:4;1973:2;1962:9;1958:18;1950:26;;1986:78;2061:1;2050:9;2046:17;2037:6;1986:78;:::i;:::-;1835:236;;;;:::o;2077:85::-;2122:7;2151:5;2140:16;;2077:85;;;:::o;2168:154::-;2224:9;2257:59;2273:42;2282:32;2308:5;2282:32;:::i;:::-;2273:42;:::i;:::-;2257:59;:::i;:::-;2244:72;;2168:154;;;:::o;2328:143::-;2421:43;2458:5;2421:43;:::i;:::-;2416:3;2409:56;2328:143;;:::o;2477:234::-;2576:4;2614:2;2603:9;2599:18;2591:26;;2627:77;2701:1;2690:9;2686:17;2677:6;2627:77;:::i;:::-;2477:234;;;;:::o;2717:86::-;2763:7;2792:5;2781:16;;2717:86;;;:::o;2809:156::-;2866:9;2899:60;2915:43;2924:33;2951:5;2924:33;:::i;:::-;2915:43;:::i;:::-;2899:60;:::i;:::-;2886:73;;2809:156;;;:::o;2971:145::-;3065:44;3103:5;3065:44;:::i;:::-;3060:3;3053:57;2971:145;;:::o;3122:236::-;3222:4;3260:2;3249:9;3245:18;3237:26;;3273:78;3348:1;3337:9;3333:17;3324:6;3273:78;:::i;:::-;3122:236;;;;:::o;3364:86::-;3410:7;3439:5;3428:16;;3364:86;;;:::o;3456:156::-;3513:9;3546:60;3562:43;3571:33;3598:5;3571:33;:::i;:::-;3562:43;:::i;:::-;3546:60;:::i;:::-;3533:73;;3456:156;;;:::o;3618:145::-;3712:44;3750:5;3712:44;:::i;:::-;3707:3;3700:57;3618:145;;:::o;3769:236::-;3869:4;3907:2;3896:9;3892:18;3884:26;;3920:78;3995:1;3984:9;3980:17;3971:6;3920:78;:::i;:::-;3769:236;;;;:::o;4011:86::-;4057:7;4086:5;4075:16;;4011:86;;;:::o;4103:156::-;4160:9;4193:60;4209:43;4218:33;4245:5;4218:33;:::i;:::-;4209:43;:::i;:::-;4193:60;:::i;:::-;4180:73;;4103:156;;;:::o;4265:145::-;4359:44;4397:5;4359:44;:::i;:::-;4354:3;4347:57;4265:145;;:::o;4416:236::-;4516:4;4554:2;4543:9;4539:18;4531:26;;4567:78;4642:1;4631:9;4627:17;4618:6;4567:78;:::i;:::-;4416:236;;;;:::o;4658:86::-;4704:7;4733:5;4722:16;;4658:86;;;:::o;4750:156::-;4807:9;4840:60;4856:43;4865:33;4892:5;4865:33;:::i;:::-;4856:43;:::i;:::-;4840:60;:::i;:::-;4827:73;;4750:156;;;:::o;4912:145::-;5006:44;5044:5;5006:44;:::i;:::-;5001:3;4994:57;4912:145;;:::o;5063:236::-;5163:4;5201:2;5190:9;5186:18;5178:26;;5214:78;5289:1;5278:9;5274:17;5265:6;5214:78;:::i;:::-;5063:236;;;;:::o;5305:86::-;5351:7;5380:5;5369:16;;5305:86;;;:::o;5397:156::-;5454:9;5487:60;5503:43;5512:33;5539:5;5512:33;:::i;:::-;5503:43;:::i;:::-;5487:60;:::i;:::-;5474:73;;5397:156;;;:::o;5559:145::-;5653:44;5691:5;5653:44;:::i;:::-;5648:3;5641:57;5559:145;;:::o;5710:236::-;5810:4;5848:2;5837:9;5833:18;5825:26;;5861:78;5936:1;5925:9;5921:17;5912:6;5861:78;:::i;:::-;5710:236;;;;:::o;5952:86::-;5998:7;6027:5;6016:16;;5952:86;;;:::o;6044:156::-;6101:9;6134:60;6150:43;6159:33;6186:5;6159:33;:::i;:::-;6150:43;:::i;:::-;6134:60;:::i;:::-;6121:73;;6044:156;;;:::o;6206:145::-;6300:44;6338:5;6300:44;:::i;:::-;6295:3;6288:57;6206:145;;:::o;6357:236::-;6457:4;6495:2;6484:9;6480:18;6472:26;;6508:78;6583:1;6572:9;6568:17;6559:6;6508:78;:::i;:::-;6357:236;;;;:::o;6599:86::-;6645:7;6674:5;6663:16;;6599:86;;;:::o;6691:156::-;6748:9;6781:60;6797:43;6806:33;6833:5;6806:33;:::i;:::-;6797:43;:::i;:::-;6781:60;:::i;:::-;6768:73;;6691:156;;;:::o;6853:145::-;6947:44;6985:5;6947:44;:::i;:::-;6942:3;6935:57;6853:145;;:::o;7004:236::-;7104:4;7142:2;7131:9;7127:18;7119:26;;7155:78;7230:1;7219:9;7215:17;7206:6;7155:78;:::i;:::-;7004:236;;;;:::o","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/String.sol/Strings.json b/out/String.sol/Strings.json index a8ac38d5..26344d3b 100644 --- a/out/String.sol/Strings.json +++ b/out/String.sol/Strings.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ba5e178cdce3a6b04d4af1ad56a2ceb65004e710c8315b4d7d572dd6ec22086f64736f6c63430008220033","sourceMap":"162:2235:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ba5e178cdce3a6b04d4af1ad56a2ceb65004e710c8315b4d7d572dd6ec22086f64736f6c63430008220033","sourceMap":"162:2235:89:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/String.sol\":\"Strings\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/String.sol":"Strings"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"}},"version":1},"id":89} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ba5e178cdce3a6b04d4af1ad56a2ceb65004e710c8315b4d7d572dd6ec22086f64736f6c63430008220033","sourceMap":"162:2235:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220ba5e178cdce3a6b04d4af1ad56a2ceb65004e710c8315b4d7d572dd6ec22086f64736f6c63430008220033","sourceMap":"162:2235:83:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/String.sol\":\"Strings\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/String.sol":"Strings"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"}},"version":1},"id":83} \ No newline at end of file diff --git a/out/TimeManipulation.sol/TimeManipulation.json b/out/TimeManipulation.sol/TimeManipulation.json index 8ecfda07..f97aab88 100644 --- a/out/TimeManipulation.sol/TimeManipulation.json +++ b/out/TimeManipulation.sol/TimeManipulation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"luckyMint","inputs":[],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033","sourceMap":"126:494:140:-:0;;;253:30;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;126:494:140;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;126:494:140:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033","sourceMap":"126:494:140:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3852:578;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2103:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;359:259:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300:25;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;3852:578::-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;2103:118::-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;359:259:140:-;397:12;448:1;441:3;423:15;:21;;;;:::i;:::-;:26;420:192;;464:30;470:10;482:11;;464:5;:30::i;:::-;516:11;;:13;;;;;;;;;:::i;:::-;;;;;;553:4;543:14;;420:192;;;596:5;586:15;;420:192;359:259;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;9624:327:25:-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;5378:115::-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;6047:272:25:-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:442::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11078:71;11146:1;11135:9;11131:17;11122:6;11078:71;:::i;:::-;11159:72;11227:2;11216:9;11212:18;11203:6;11159:72;:::i;:::-;11241;11309:2;11298:9;11294:18;11285:6;11241:72;:::i;:::-;10878:442;;;;;;:::o;11326:148::-;11428:11;11465:3;11450:18;;11326:148;;;;:::o;11480:390::-;11586:3;11614:39;11647:5;11614:39;:::i;:::-;11669:89;11751:6;11746:3;11669:89;:::i;:::-;11662:96;;11767:65;11825:6;11820:3;11813:4;11806:5;11802:16;11767:65;:::i;:::-;11857:6;11852:3;11848:16;11841:23;;11590:280;11480:390;;;;:::o;11876:435::-;12056:3;12078:95;12169:3;12160:6;12078:95;:::i;:::-;12071:102;;12190:95;12281:3;12272:6;12190:95;:::i;:::-;12183:102;;12302:3;12295:10;;11876:435;;;;;:::o;12317:180::-;12365:77;12362:1;12355:88;12462:4;12459:1;12452:15;12486:4;12483:1;12476:15;12503:176;12535:1;12552:20;12570:1;12552:20;:::i;:::-;12547:25;;12586:20;12604:1;12586:20;:::i;:::-;12581:25;;12625:1;12615:35;;12630:18;;:::i;:::-;12615:35;12671:1;12668;12664:9;12659:14;;12503:176;;;;:::o;12685:180::-;12733:77;12730:1;12723:88;12830:4;12827:1;12820:15;12854:4;12851:1;12844:15;12871:233;12910:3;12933:24;12951:5;12933:24;:::i;:::-;12924:33;;12979:66;12972:5;12969:77;12966:103;;13049:18;;:::i;:::-;12966:103;13096:1;13089:5;13085:13;13078:20;;12871:233;;;:::o;13110:98::-;13161:6;13195:5;13189:12;13179:22;;13110:98;;;:::o;13214:168::-;13297:11;13331:6;13326:3;13319:19;13371:4;13366:3;13362:14;13347:29;;13214:168;;;;:::o;13388:373::-;13474:3;13502:38;13534:5;13502:38;:::i;:::-;13556:70;13619:6;13614:3;13556:70;:::i;:::-;13549:77;;13635:65;13693:6;13688:3;13681:4;13674:5;13670:16;13635:65;:::i;:::-;13725:29;13747:6;13725:29;:::i;:::-;13720:3;13716:39;13709:46;;13478:283;13388:373;;;;:::o;13767:640::-;13962:4;14000:3;13989:9;13985:19;13977:27;;14014:71;14082:1;14071:9;14067:17;14058:6;14014:71;:::i;:::-;14095:72;14163:2;14152:9;14148:18;14139:6;14095:72;:::i;:::-;14177;14245:2;14234:9;14230:18;14221:6;14177:72;:::i;:::-;14296:9;14290:4;14286:20;14281:2;14270:9;14266:18;14259:48;14324:76;14395:4;14386:6;14324:76;:::i;:::-;14316:84;;13767:640;;;;;;;:::o;14413:141::-;14469:5;14500:6;14494:13;14485:22;;14516:32;14542:5;14516:32;:::i;:::-;14413:141;;;;:::o;14560:349::-;14629:6;14678:2;14666:9;14657:7;14653:23;14649:32;14646:119;;;14684:79;;:::i;:::-;14646:119;14804:1;14829:63;14884:7;14875:6;14864:9;14860:22;14829:63;:::i;:::-;14819:73;;14775:127;14560:349;;;;:::o;14915:332::-;15036:4;15074:2;15063:9;15059:18;15051:26;;15087:71;15155:1;15144:9;15140:17;15131:6;15087:71;:::i;:::-;15168:72;15236:2;15225:9;15221:18;15212:6;15168:72;:::i;:::-;14915:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","luckyMint()":"ffd5a7be","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"luckyMint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S14_TimeManipulation/src/TimeManipulation.sol\":\"TimeManipulation\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S14_TimeManipulation/src/TimeManipulation.sol\":{\"keccak256\":\"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178\",\"dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"luckyMint","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S14_TimeManipulation/src/TimeManipulation.sol":"TimeManipulation"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S14_TimeManipulation/src/TimeManipulation.sol":{"keccak256":"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33","urls":["bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178","dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ"],"license":"MIT"}},"version":1},"id":140} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"luckyMint","inputs":[],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033","sourceMap":"126:494:134:-:0;;;253:30;;;;;;;;;;1380:113:25;;;;;;;;;;;;;;;;;;;;;;;;1454:5;1446;:13;;;;;;:::i;:::-;;1479:7;1469;:17;;;;;;:::i;:::-;;1380:113;;126:494:134;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;126:494:134:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033","sourceMap":"126:494:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1527:300:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3852:578;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4464:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2103:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1861:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2394:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3487:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2529:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3665:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;359:259:134;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:300:25;1629:4;1679:25;1664:40;;;:11;:40;;;;:104;;;;1735:33;1720:48;;;:11;:48;;;;1664:104;:156;;;;1784:36;1808:11;1784:23;:36::i;:::-;1664:156;1645:175;;1527:300;;;:::o;2263:89::-;2308:13;2340:5;2333:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:89;:::o;3299:154::-;3366:7;3385:22;3399:7;3385:13;:22::i;:::-;;3425:21;3438:7;3425:12;:21::i;:::-;3418:28;;3299:154;;;:::o;3152:113::-;3223:35;3232:2;3236:7;3245:12;:10;:12::i;:::-;3223:8;:35::i;:::-;3152:113;;:::o;3852:578::-;3960:1;3946:16;;:2;:16;;;3942:87;;4015:1;3985:33;;;;;;;;;;;:::i;:::-;;;;;;;;3942:87;4247:21;4271:34;4279:2;4283:7;4292:12;:10;:12::i;:::-;4271:7;:34::i;:::-;4247:58;;4336:4;4319:21;;:13;:21;;;4315:109;;4384:4;4390:7;4399:13;4363:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;4315:109;3932:498;3852:578;;;:::o;4464:132::-;4550:39;4567:4;4573:2;4577:7;4550:39;;;;;;;;;;;;:16;:39::i;:::-;4464:132;;;:::o;2103:118::-;2166:7;2192:22;2206:7;2192:13;:22::i;:::-;2185:29;;2103:118;;;:::o;1861:208::-;1924:7;1964:1;1947:19;;:5;:19;;;1943:87;;2016:1;1989:30;;;;;;;;;;;:::i;:::-;;;;;;;;1943:87;2046:9;:16;2056:5;2046:16;;;;;;;;;;;;;;;;2039:23;;1861:208;;;:::o;2394:93::-;2441:13;2473:7;2466:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:93;:::o;3487:144::-;3572:52;3591:12;:10;:12::i;:::-;3605:8;3615;3572:18;:52::i;:::-;3487:144;;:::o;4630:233::-;4743:31;4756:4;4762:2;4766:7;4743:12;:31::i;:::-;4784:72;4818:12;:10;:12::i;:::-;4832:4;4838:2;4842:7;4851:4;4784:33;:72::i;:::-;4630:233;;;;:::o;2529:255::-;2593:13;2618:22;2632:7;2618:13;:22::i;:::-;;2651:21;2675:10;:8;:10::i;:::-;2651:34;;2726:1;2708:7;2702:21;:25;:75;;;;;;;;;;;;;;;;;2744:7;2753:18;:7;:16;:18::i;:::-;2730:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:75;2695:82;;;2529:255;;;:::o;3665:153::-;3753:4;3776:18;:25;3795:5;3776:25;;;;;;;;;;;;;;;:35;3802:8;3776:35;;;;;;;;;;;;;;;;;;;;;;;;;3769:42;;3665:153;;;;:::o;359:259:134:-;397:12;448:1;441:3;423:15;:21;;;;:::i;:::-;:26;420:192;;464:30;470:10;482:11;;464:5;:30::i;:::-;516:11;;:13;;;;;;;;;:::i;:::-;;;;;;553:4;543:14;;420:192;;;596:5;586:15;;420:192;359:259;:::o;730:146:39:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;15957:241:25:-;16020:7;16039:13;16055:17;16064:7;16055:8;:17::i;:::-;16039:33;;16103:1;16086:19;;:5;:19;;;16082:88;;16151:7;16128:31;;;;;;;;;;;:::i;:::-;;;;;;;;16082:88;16186:5;16179:12;;;15957:241;;;:::o;5609:127::-;5679:7;5705:15;:24;5721:7;5705:24;;;;;;;;;;;;;;;;;;;;;5698:31;;5609:127;;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;14138:120:25:-;14218:33;14227:2;14231:7;14240:4;14246;14218:8;:33::i;:::-;14138:120;;;:::o;8507:795::-;8593:7;8612:12;8627:17;8636:7;8627:8;:17::i;:::-;8612:32;;8720:1;8704:18;;:4;:18;;;8700:86;;8738:37;8755:4;8761;8767:7;8738:16;:37::i;:::-;8700:86;8846:1;8830:18;;:4;:18;;;8826:256;;8946:48;8963:1;8967:7;8984:1;8988:5;8946:8;:48::i;:::-;9056:1;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;;:20;;;;;;;;;;;8826:256;9110:1;9096:16;;:2;:16;;;9092:107;;9173:1;9156:9;:13;9166:2;9156:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;9092:107;9228:2;9209:7;:16;9217:7;9209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9265:7;9261:2;9246:27;;9255:4;9246:27;;;;;;;;;;;;9291:4;9284:11;;;8507:795;;;;;:::o;15311:411::-;15435:1;15418:19;;:5;:19;;;15414:90;;15490:1;15460:33;;;;;;;;;;;:::i;:::-;;;;;;;;15414:90;15537:1;15517:22;;:8;:22;;;15513:91;;15584:8;15562:31;;;;;;;;;;;:::i;:::-;;;;;;;;15513:91;15651:8;15613:18;:25;15632:5;15613:25;;;;;;;;;;;;;;;:35;15639:8;15613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15696:8;15674:41;;15689:5;15674:41;;;15706:8;15674:41;;;;;;:::i;:::-;;;;;;;;15311:411;;;:::o;994:926:29:-;1191:1;1174:2;:14;;;:18;1170:744;;;1228:2;1212:36;;;1249:8;1259:4;1265:7;1274:4;1212:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1208:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1586:1;1569:6;:13;:18;1565:325;;1709:2;1673:39;;;;;;;;;;;:::i;:::-;;;;;;;;1565:325;1842:6;1836:13;1829:4;1821:6;1817:17;1810:40;1208:696;1336:41;;;1326:51;;;:6;:51;;;;1322:182;;1482:2;1446:39;;;;;;;;;;;:::i;:::-;;;;;;;;1322:182;1280:238;1170:744;994:926;;;;;:::o;3026:92:25:-;3077:13;3102:9;;;;;;;;;;;;;;3026:92;:::o;1251:634:35:-;1307:13;1356:14;1393:1;1373:17;1384:5;1373:10;:17::i;:::-;:21;1356:38;;1408:20;1442:6;1431:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1408:41;;1463:11;1561:6;1554:4;1546:6;1542:17;1538:30;1531:37;;1595:247;1602:4;1595:247;;;1626:5;;;;;;;;1730:10;1725:2;1718:5;1714:14;1709:32;1704:3;1696:46;1786:2;1777:11;;;;;;:::i;:::-;;;;;1819:1;1810:5;:10;1595:247;1806:21;1595:247;1862:6;1855:13;;;;;1251:634;;;:::o;9624:327:25:-;9705:1;9691:16;;:2;:16;;;9687:87;;9760:1;9730:33;;;;;;;;;;;:::i;:::-;;;;;;;;9687:87;9783:21;9807:32;9815:2;9819:7;9836:1;9807:7;:32::i;:::-;9783:56;;9878:1;9853:27;;:13;:27;;;9849:96;;9931:1;9903:31;;;;;;;;;;;:::i;:::-;;;;;;;;9849:96;9677:274;9624:327;;:::o;5378:115::-;5444:7;5470;:16;5478:7;5470:16;;;;;;;;;;;;;;;;;;;;;5463:23;;5378:115;;;:::o;14440:662::-;14600:9;:31;;;;14629:1;14613:18;;:4;:18;;;;14600:31;14596:460;;;14647:13;14663:22;14677:7;14663:13;:22::i;:::-;14647:38;;14829:1;14813:18;;:4;:18;;;;:35;;;;;14844:4;14835:13;;:5;:13;;;;14813:35;:69;;;;;14853:29;14870:5;14877:4;14853:16;:29::i;:::-;14852:30;14813:69;14809:142;;;14931:4;14909:27;;;;;;;;;;;:::i;:::-;;;;;;;;14809:142;14969:9;14965:81;;;15023:7;15019:2;15003:28;;15012:5;15003:28;;;;;;;;;;;;14965:81;14633:423;14596:460;15093:2;15066:15;:24;15082:7;15066:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14440:662;;;;:::o;6751:368::-;6863:38;6877:5;6884:7;6893;6863:13;:38::i;:::-;6858:255;;6938:1;6921:19;;:5;:19;;;6917:186;;6990:7;6967:31;;;;;;;;;;;:::i;:::-;;;;;;;;6917:186;7071:7;7080;7044:44;;;;;;;;;;;;:::i;:::-;;;;;;;;6858:255;6751:368;;;:::o;29471:916:41:-;29524:7;29543:14;29560:1;29543:18;;29608:8;29599:5;:17;29595:103;;29645:8;29636:17;;;;;;:::i;:::-;;;;;29681:2;29671:12;;;;29595:103;29724:8;29715:5;:17;29711:103;;29761:8;29752:17;;;;;;:::i;:::-;;;;;29797:2;29787:12;;;;29711:103;29840:8;29831:5;:17;29827:103;;29877:8;29868:17;;;;;;:::i;:::-;;;;;29913:2;29903:12;;;;29827:103;29956:7;29947:5;:16;29943:100;;29992:7;29983:16;;;;;;:::i;:::-;;;;;30027:1;30017:11;;;;29943:100;30069:7;30060:5;:16;30056:100;;30105:7;30096:16;;;;;;:::i;:::-;;;;;30140:1;30130:11;;;;30056:100;30182:7;30173:5;:16;30169:100;;30218:7;30209:16;;;;;;:::i;:::-;;;;;30253:1;30243:11;;;;30169:100;30295:7;30286:5;:16;30282:66;;30332:1;30322:11;;;;30282:66;30374:6;30367:13;;;29471:916;;;:::o;6047:272:25:-;6150:4;6204:1;6185:21;;:7;:21;;;;:127;;;;;6232:7;6223:16;;:5;:16;;;:52;;;;6243:32;6260:5;6267:7;6243:16;:32::i;:::-;6223:52;:88;;;;6304:7;6279:32;;:21;6292:7;6279:12;:21::i;:::-;:32;;;6223:88;6185:127;6166:146;;6047:272;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:442::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11078:71;11146:1;11135:9;11131:17;11122:6;11078:71;:::i;:::-;11159:72;11227:2;11216:9;11212:18;11203:6;11159:72;:::i;:::-;11241;11309:2;11298:9;11294:18;11285:6;11241:72;:::i;:::-;10878:442;;;;;;:::o;11326:148::-;11428:11;11465:3;11450:18;;11326:148;;;;:::o;11480:390::-;11586:3;11614:39;11647:5;11614:39;:::i;:::-;11669:89;11751:6;11746:3;11669:89;:::i;:::-;11662:96;;11767:65;11825:6;11820:3;11813:4;11806:5;11802:16;11767:65;:::i;:::-;11857:6;11852:3;11848:16;11841:23;;11590:280;11480:390;;;;:::o;11876:435::-;12056:3;12078:95;12169:3;12160:6;12078:95;:::i;:::-;12071:102;;12190:95;12281:3;12272:6;12190:95;:::i;:::-;12183:102;;12302:3;12295:10;;11876:435;;;;;:::o;12317:180::-;12365:77;12362:1;12355:88;12462:4;12459:1;12452:15;12486:4;12483:1;12476:15;12503:176;12535:1;12552:20;12570:1;12552:20;:::i;:::-;12547:25;;12586:20;12604:1;12586:20;:::i;:::-;12581:25;;12625:1;12615:35;;12630:18;;:::i;:::-;12615:35;12671:1;12668;12664:9;12659:14;;12503:176;;;;:::o;12685:180::-;12733:77;12730:1;12723:88;12830:4;12827:1;12820:15;12854:4;12851:1;12844:15;12871:233;12910:3;12933:24;12951:5;12933:24;:::i;:::-;12924:33;;12979:66;12972:5;12969:77;12966:103;;13049:18;;:::i;:::-;12966:103;13096:1;13089:5;13085:13;13078:20;;12871:233;;;:::o;13110:98::-;13161:6;13195:5;13189:12;13179:22;;13110:98;;;:::o;13214:168::-;13297:11;13331:6;13326:3;13319:19;13371:4;13366:3;13362:14;13347:29;;13214:168;;;;:::o;13388:373::-;13474:3;13502:38;13534:5;13502:38;:::i;:::-;13556:70;13619:6;13614:3;13556:70;:::i;:::-;13549:77;;13635:65;13693:6;13688:3;13681:4;13674:5;13670:16;13635:65;:::i;:::-;13725:29;13747:6;13725:29;:::i;:::-;13720:3;13716:39;13709:46;;13478:283;13388:373;;;;:::o;13767:640::-;13962:4;14000:3;13989:9;13985:19;13977:27;;14014:71;14082:1;14071:9;14067:17;14058:6;14014:71;:::i;:::-;14095:72;14163:2;14152:9;14148:18;14139:6;14095:72;:::i;:::-;14177;14245:2;14234:9;14230:18;14221:6;14177:72;:::i;:::-;14296:9;14290:4;14286:20;14281:2;14270:9;14266:18;14259:48;14324:76;14395:4;14386:6;14324:76;:::i;:::-;14316:84;;13767:640;;;;;;;:::o;14413:141::-;14469:5;14500:6;14494:13;14485:22;;14516:32;14542:5;14516:32;:::i;:::-;14413:141;;;;:::o;14560:349::-;14629:6;14678:2;14666:9;14657:7;14653:23;14649:32;14646:119;;;14684:79;;:::i;:::-;14646:119;14804:1;14829:63;14884:7;14875:6;14864:9;14860:22;14829:63;:::i;:::-;14819:73;;14775:127;14560:349;;;;:::o;14915:332::-;15036:4;15074:2;15063:9;15059:18;15051:26;;15087:71;15155:1;15144:9;15140:17;15131:6;15087:71;:::i;:::-;15168:72;15236:2;15225:9;15221:18;15212:6;15168:72;:::i;:::-;14915:332;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","luckyMint()":"ffd5a7be","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"luckyMint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-721. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S14_TimeManipulation/src/TimeManipulation.sol\":\"TimeManipulation\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S14_TimeManipulation/src/TimeManipulation.sol\":{\"keccak256\":\"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178\",\"dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"luckyMint","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S14_TimeManipulation/src/TimeManipulation.sol":"TimeManipulation"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S14_TimeManipulation/src/TimeManipulation.sol":{"keccak256":"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33","urls":["bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178","dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ"],"license":"MIT"}},"version":1},"id":134} \ No newline at end of file diff --git a/out/TimeManipulation.t.sol/TimeManipulationTest.json b/out/TimeManipulation.t.sol/TimeManipulationTest.json index dcacedf0..e40e9ef8 100644 --- a/out/TimeManipulation.t.sol/TimeManipulationTest.json +++ b/out/TimeManipulation.t.sol/TimeManipulationTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TimeManipulation"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testMint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff021916908315150217905550737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ffa1864960016040518263ffffffff1660e01b81526004016100869190610160565b602060405180830381865afa1580156100a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c591906101d7565b60205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561010f575f5ffd5b50610202565b5f819050919050565b5f819050919050565b5f819050919050565b5f61014a61014561014084610115565b610127565b61011e565b9050919050565b61015a81610130565b82525050565b5f6020820190506101735f830184610151565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b6144328061020f5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610219578063ba414fa614610237578063e20c9f7114610255578063fa7626d414610273576100f3565b806385226c81146101b5578063916a17c6146101d35780639642ddaf146101f1578063b0464fdc146101fb576100f3565b80633e5e3c23116100d15780633e5e3c231461013d5780633f7286f41461015b57806347ccca021461017957806366d9a9a014610197576100f3565b80630a9254e4146100f75780631ed7831c146101015780632ade38801461011f575b5f5ffd5b6100ff610291565b005b6101096102f9565b60405161011691906117e0565b60405180910390f35b610127610384565b6040516101349190611a20565b60405180910390f35b610145610508565b60405161015291906117e0565b60405180910390f35b610163610593565b60405161017091906117e0565b60405180910390f35b61018161061e565b60405161018e9190611a9b565b60405180910390f35b61019f610644565b6040516101ac9190611c92565b60405180910390f35b6101bd6107c6565b6040516101ca9190611d35565b60405180910390f35b6101db61089a565b6040516101e89190611e4a565b60405180910390f35b6101f96109e1565b005b6102036111aa565b6040516102109190611e4a565b60405180910390f35b6102216112f1565b60405161022e9190611d35565b60405180910390f35b61023f6113c5565b60405161024c9190611e84565b60405180910390f35b61025d6114cc565b60405161026a91906117e0565b60405180910390f35b61027b611557565b6040516102889190611e84565b60405180910390f35b60405161029d906116e2565b604051809103905ff0801580156102b6573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561037a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610331575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156104ff578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156104e8578382905f5260205f2001805461045d90611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611eca565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b505050505081526020019060010190610440565b5050505081525050815260200190600101906103a7565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561058957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610540575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561061457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116105cb575b5050505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156107bd578382905f5260205f2090600202016040518060400160405290815f8201805461069790611eca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c390611eca565b801561070e5780601f106106e55761010080835404028352916020019161070e565b820191905f5260205f20905b8154815290600101906020018083116106f157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107a557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107525790505b50505050508152505081526020019060010190610667565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610891578382905f5260205f2001805461080690611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611eca565b801561087d5780601f106108545761010080835404028352916020019161087d565b820191905f5260205f20905b81548152906001019060200180831161086057829003601f168201915b5050505050815260200190600101906107e9565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156109d8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156109c057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096d5790505b505050505081525050815260200190600101906108bd565b50505050905090565b610a026040518060600160405280602781526020016143d660279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf0260a96040518263ffffffff1660e01b8152600401610a509190611f3c565b5f604051808303815f87803b158015610a67575f5ffd5b505af1158015610a79573d5f5f3e3d5ffd5b50505050610abc6040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166306447d5660205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b2a9190611f64565b5f604051808303815f87803b158015610b41575f5ffd5b505af1158015610b53573d5f5f3e3d5ffd5b50505050610c506040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610c0c9190611f64565b602060405180830381865afa158015610c27573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610cbc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612000565b50610dda6040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610d969190611f64565b602060405180830381865afa158015610db1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611fab565b611602565b610dfb6040518060600160405280602781526020016143af60279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026142686040518263ffffffff1660e01b8152600401610e4a9190612064565b5f604051808303815f87803b158015610e61575f5ffd5b505af1158015610e73573d5f5f3e3d5ffd5b50505050610eb66040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b610faf6040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610f6b9190611f64565b602060405180830381865afa158015610f86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610faa9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af115801561101b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103f9190612000565b506111396040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016110f59190611f64565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190611fab565b611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611192575f5ffd5b505af11580156111a4573d5f5f3e3d5ffd5b50505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156112e8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156112d057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127d5790505b505050505081525050815260200190600101906111cd565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156113bc578382905f5260205f2001805461133190611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90611eca565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b505050505081526020019060010190611314565b50505050905090565b5f60085f9054906101000a900460ff16156113e357600190506114c9565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611485929190612095565b602060405180830381865afa1580156114a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c491906120e6565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561154d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611504575b5050505050905090565b601f5f9054906101000a900460ff1681565b6115ff8160405160240161157d9190612159565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b50565b61169a8282604051602401611618929190612188565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b5050565b6116b5816116ad6116b86116d7565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6116ef819050919050565b6121cb806121e483390190565b6116f76121b6565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61174b82611722565b9050919050565b61175b81611741565b82525050565b5f61176c8383611752565b60208301905092915050565b5f602082019050919050565b5f61178e826116f9565b6117988185611703565b93506117a383611713565b805f5b838110156117d35781516117ba8882611761565b97506117c583611778565b9250506001810190506117a6565b5085935050505092915050565b5f6020820190508181035f8301526117f88184611784565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61189482611852565b61189e818561185c565b93506118ae81856020860161186c565b6118b78161187a565b840191505092915050565b5f6118cd838361188a565b905092915050565b5f602082019050919050565b5f6118eb82611829565b6118f58185611833565b93508360208202850161190785611843565b805f5b85811015611942578484038952815161192385826118c2565b945061192e836118d5565b925060208a0199505060018101905061190a565b50829750879550505050505092915050565b5f604083015f8301516119695f860182611752565b506020830151848203602086015261198182826118e1565b9150508091505092915050565b5f6119998383611954565b905092915050565b5f602082019050919050565b5f6119b782611800565b6119c1818561180a565b9350836020820285016119d38561181a565b805f5b85811015611a0e57848403895281516119ef858261198e565b94506119fa836119a1565b925060208a019950506001810190506119d6565b50829750879550505050505092915050565b5f6020820190508181035f830152611a3881846119ad565b905092915050565b5f819050919050565b5f611a63611a5e611a5984611722565b611a40565b611722565b9050919050565b5f611a7482611a49565b9050919050565b5f611a8582611a6a565b9050919050565b611a9581611a7b565b82525050565b5f602082019050611aae5f830184611a8c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b3a81611b06565b82525050565b5f611b4b8383611b31565b60208301905092915050565b5f602082019050919050565b5f611b6d82611add565b611b778185611ae7565b9350611b8283611af7565b805f5b83811015611bb2578151611b998882611b40565b9750611ba483611b57565b925050600181019050611b85565b5085935050505092915050565b5f604083015f8301518482035f860152611bd9828261188a565b91505060208301518482036020860152611bf38282611b63565b9150508091505092915050565b5f611c0b8383611bbf565b905092915050565b5f602082019050919050565b5f611c2982611ab4565b611c338185611abe565b935083602082028501611c4585611ace565b805f5b85811015611c805784840389528151611c618582611c00565b9450611c6c83611c13565b925060208a01995050600181019050611c48565b50829750879550505050505092915050565b5f6020820190508181035f830152611caa8184611c1f565b905092915050565b5f82825260208201905092915050565b5f611ccc82611829565b611cd68185611cb2565b935083602082028501611ce885611843565b805f5b85811015611d235784840389528151611d0485826118c2565b9450611d0f836118d5565b925060208a01995050600181019050611ceb565b50829750879550505050505092915050565b5f6020820190508181035f830152611d4d8184611cc2565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151611d935f860182611752565b5060208301518482036020860152611dab8282611b63565b9150508091505092915050565b5f611dc38383611d7e565b905092915050565b5f602082019050919050565b5f611de182611d55565b611deb8185611d5f565b935083602082028501611dfd85611d6f565b805f5b85811015611e385784840389528151611e198582611db8565b9450611e2483611dcb565b925060208a01995050600181019050611e00565b50829750879550505050505092915050565b5f6020820190508181035f830152611e628184611dd7565b905092915050565b5f8115159050919050565b611e7e81611e6a565b82525050565b5f602082019050611e975f830184611e75565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ee157607f821691505b602082108103611ef457611ef3611e9d565b5b50919050565b5f819050919050565b5f819050919050565b5f611f26611f21611f1c84611efa565b611a40565b611f03565b9050919050565b611f3681611f0c565b82525050565b5f602082019050611f4f5f830184611f2d565b92915050565b611f5e81611741565b82525050565b5f602082019050611f775f830184611f55565b92915050565b5f5ffd5b611f8a81611f03565b8114611f94575f5ffd5b50565b5f81519050611fa581611f81565b92915050565b5f60208284031215611fc057611fbf611f7d565b5b5f611fcd84828501611f97565b91505092915050565b611fdf81611e6a565b8114611fe9575f5ffd5b50565b5f81519050611ffa81611fd6565b92915050565b5f6020828403121561201557612014611f7d565b5b5f61202284828501611fec565b91505092915050565b5f819050919050565b5f61204e6120496120448461202b565b611a40565b611f03565b9050919050565b61205e81612034565b82525050565b5f6020820190506120775f830184612055565b92915050565b5f819050919050565b61208f8161207d565b82525050565b5f6040820190506120a85f830185611f55565b6120b56020830184612086565b9392505050565b6120c58161207d565b81146120cf575f5ffd5b50565b5f815190506120e0816120bc565b92915050565b5f602082840312156120fb576120fa611f7d565b5b5f612108848285016120d2565b91505092915050565b5f82825260208201905092915050565b5f61212b82611852565b6121358185612111565b935061214581856020860161186c565b61214e8161187a565b840191505092915050565b5f6020820190508181035f8301526121718184612121565b905092915050565b61218281611f03565b82525050565b5f6040820190508181035f8301526121a08185612121565b90506121af6020830184612179565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033436f6e646974696f6e20323a20626c6f636b2e74696d657374616d70202520313730203d3d2030436f6e646974696f6e20313a20626c6f636b2e74696d657374616d7020252031373020213d2030a26469706673582212201b1f6d80e0a3e90f2b4c215d45aeaa59c9249e6f2cf01a2c699632df952a18ce64736f6c63430008220033","sourceMap":"165:1208:141:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;351:42:0;307:7:141;;;315:1;307:10;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;291:26;;;;;;;;;;;;;;;;;;;;165:1208;;;;;;;;;;;;7:85:145;52:7;81:5;70:16;;7:85;;;:::o;98:77::-;135:7;164:5;153:16;;98:77;;;:::o;181:60::-;209:3;230:5;223:12;;181:60;;;:::o;247:158::-;305:9;338:61;356:42;365:32;391:5;365:32;:::i;:::-;356:42;:::i;:::-;338:61;:::i;:::-;325:74;;247:158;;;:::o;411:147::-;506:45;545:5;506:45;:::i;:::-;501:3;494:58;411:147;;:::o;564:238::-;665:4;703:2;692:9;688:18;680:26;;716:79;792:1;781:9;777:17;768:6;716:79;:::i;:::-;564:238;;;;:::o;889:117::-;998:1;995;988:12;1135:126;1172:7;1212:42;1205:5;1201:54;1190:65;;1135:126;;;:::o;1267:96::-;1304:7;1333:24;1351:5;1333:24;:::i;:::-;1322:35;;1267:96;;;:::o;1369:122::-;1442:24;1460:5;1442:24;:::i;:::-;1435:5;1432:35;1422:63;;1481:1;1478;1471:12;1422:63;1369:122;:::o;1497:143::-;1554:5;1585:6;1579:13;1570:22;;1601:33;1628:5;1601:33;:::i;:::-;1497:143;;;;:::o;1646:351::-;1716:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:119;;;1771:79;;:::i;:::-;1733:119;1891:1;1916:64;1972:7;1963:6;1952:9;1948:22;1916:64;:::i;:::-;1906:74;;1862:128;1646:351;;;;:::o;165:1208:141:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610219578063ba414fa614610237578063e20c9f7114610255578063fa7626d414610273576100f3565b806385226c81146101b5578063916a17c6146101d35780639642ddaf146101f1578063b0464fdc146101fb576100f3565b80633e5e3c23116100d15780633e5e3c231461013d5780633f7286f41461015b57806347ccca021461017957806366d9a9a014610197576100f3565b80630a9254e4146100f75780631ed7831c146101015780632ade38801461011f575b5f5ffd5b6100ff610291565b005b6101096102f9565b60405161011691906117e0565b60405180910390f35b610127610384565b6040516101349190611a20565b60405180910390f35b610145610508565b60405161015291906117e0565b60405180910390f35b610163610593565b60405161017091906117e0565b60405180910390f35b61018161061e565b60405161018e9190611a9b565b60405180910390f35b61019f610644565b6040516101ac9190611c92565b60405180910390f35b6101bd6107c6565b6040516101ca9190611d35565b60405180910390f35b6101db61089a565b6040516101e89190611e4a565b60405180910390f35b6101f96109e1565b005b6102036111aa565b6040516102109190611e4a565b60405180910390f35b6102216112f1565b60405161022e9190611d35565b60405180910390f35b61023f6113c5565b60405161024c9190611e84565b60405180910390f35b61025d6114cc565b60405161026a91906117e0565b60405180910390f35b61027b611557565b6040516102889190611e84565b60405180910390f35b60405161029d906116e2565b604051809103905ff0801580156102b6573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561037a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610331575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156104ff578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156104e8578382905f5260205f2001805461045d90611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611eca565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b505050505081526020019060010190610440565b5050505081525050815260200190600101906103a7565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561058957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610540575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561061457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116105cb575b5050505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156107bd578382905f5260205f2090600202016040518060400160405290815f8201805461069790611eca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c390611eca565b801561070e5780601f106106e55761010080835404028352916020019161070e565b820191905f5260205f20905b8154815290600101906020018083116106f157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107a557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107525790505b50505050508152505081526020019060010190610667565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610891578382905f5260205f2001805461080690611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611eca565b801561087d5780601f106108545761010080835404028352916020019161087d565b820191905f5260205f20905b81548152906001019060200180831161086057829003601f168201915b5050505050815260200190600101906107e9565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156109d8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156109c057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096d5790505b505050505081525050815260200190600101906108bd565b50505050905090565b610a026040518060600160405280602781526020016143d660279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf0260a96040518263ffffffff1660e01b8152600401610a509190611f3c565b5f604051808303815f87803b158015610a67575f5ffd5b505af1158015610a79573d5f5f3e3d5ffd5b50505050610abc6040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166306447d5660205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b2a9190611f64565b5f604051808303815f87803b158015610b41575f5ffd5b505af1158015610b53573d5f5f3e3d5ffd5b50505050610c506040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610c0c9190611f64565b602060405180830381865afa158015610c27573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610cbc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612000565b50610dda6040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610d969190611f64565b602060405180830381865afa158015610db1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611fab565b611602565b610dfb6040518060600160405280602781526020016143af60279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026142686040518263ffffffff1660e01b8152600401610e4a9190612064565b5f604051808303815f87803b158015610e61575f5ffd5b505af1158015610e73573d5f5f3e3d5ffd5b50505050610eb66040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b610faf6040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610f6b9190611f64565b602060405180830381865afa158015610f86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610faa9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af115801561101b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103f9190612000565b506111396040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016110f59190611f64565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190611fab565b611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611192575f5ffd5b505af11580156111a4573d5f5f3e3d5ffd5b50505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156112e8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156112d057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127d5790505b505050505081525050815260200190600101906111cd565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156113bc578382905f5260205f2001805461133190611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90611eca565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b505050505081526020019060010190611314565b50505050905090565b5f60085f9054906101000a900460ff16156113e357600190506114c9565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611485929190612095565b602060405180830381865afa1580156114a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c491906120e6565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561154d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611504575b5050505050905090565b601f5f9054906101000a900460ff1681565b6115ff8160405160240161157d9190612159565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b50565b61169a8282604051602401611618929190612188565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b5050565b6116b5816116ad6116b86116d7565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6116ef819050919050565b6121cb806121e483390190565b6116f76121b6565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61174b82611722565b9050919050565b61175b81611741565b82525050565b5f61176c8383611752565b60208301905092915050565b5f602082019050919050565b5f61178e826116f9565b6117988185611703565b93506117a383611713565b805f5b838110156117d35781516117ba8882611761565b97506117c583611778565b9250506001810190506117a6565b5085935050505092915050565b5f6020820190508181035f8301526117f88184611784565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61189482611852565b61189e818561185c565b93506118ae81856020860161186c565b6118b78161187a565b840191505092915050565b5f6118cd838361188a565b905092915050565b5f602082019050919050565b5f6118eb82611829565b6118f58185611833565b93508360208202850161190785611843565b805f5b85811015611942578484038952815161192385826118c2565b945061192e836118d5565b925060208a0199505060018101905061190a565b50829750879550505050505092915050565b5f604083015f8301516119695f860182611752565b506020830151848203602086015261198182826118e1565b9150508091505092915050565b5f6119998383611954565b905092915050565b5f602082019050919050565b5f6119b782611800565b6119c1818561180a565b9350836020820285016119d38561181a565b805f5b85811015611a0e57848403895281516119ef858261198e565b94506119fa836119a1565b925060208a019950506001810190506119d6565b50829750879550505050505092915050565b5f6020820190508181035f830152611a3881846119ad565b905092915050565b5f819050919050565b5f611a63611a5e611a5984611722565b611a40565b611722565b9050919050565b5f611a7482611a49565b9050919050565b5f611a8582611a6a565b9050919050565b611a9581611a7b565b82525050565b5f602082019050611aae5f830184611a8c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b3a81611b06565b82525050565b5f611b4b8383611b31565b60208301905092915050565b5f602082019050919050565b5f611b6d82611add565b611b778185611ae7565b9350611b8283611af7565b805f5b83811015611bb2578151611b998882611b40565b9750611ba483611b57565b925050600181019050611b85565b5085935050505092915050565b5f604083015f8301518482035f860152611bd9828261188a565b91505060208301518482036020860152611bf38282611b63565b9150508091505092915050565b5f611c0b8383611bbf565b905092915050565b5f602082019050919050565b5f611c2982611ab4565b611c338185611abe565b935083602082028501611c4585611ace565b805f5b85811015611c805784840389528151611c618582611c00565b9450611c6c83611c13565b925060208a01995050600181019050611c48565b50829750879550505050505092915050565b5f6020820190508181035f830152611caa8184611c1f565b905092915050565b5f82825260208201905092915050565b5f611ccc82611829565b611cd68185611cb2565b935083602082028501611ce885611843565b805f5b85811015611d235784840389528151611d0485826118c2565b9450611d0f836118d5565b925060208a01995050600181019050611ceb565b50829750879550505050505092915050565b5f6020820190508181035f830152611d4d8184611cc2565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151611d935f860182611752565b5060208301518482036020860152611dab8282611b63565b9150508091505092915050565b5f611dc38383611d7e565b905092915050565b5f602082019050919050565b5f611de182611d55565b611deb8185611d5f565b935083602082028501611dfd85611d6f565b805f5b85811015611e385784840389528151611e198582611db8565b9450611e2483611dcb565b925060208a01995050600181019050611e00565b50829750879550505050505092915050565b5f6020820190508181035f830152611e628184611dd7565b905092915050565b5f8115159050919050565b611e7e81611e6a565b82525050565b5f602082019050611e975f830184611e75565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ee157607f821691505b602082108103611ef457611ef3611e9d565b5b50919050565b5f819050919050565b5f819050919050565b5f611f26611f21611f1c84611efa565b611a40565b611f03565b9050919050565b611f3681611f0c565b82525050565b5f602082019050611f4f5f830184611f2d565b92915050565b611f5e81611741565b82525050565b5f602082019050611f775f830184611f55565b92915050565b5f5ffd5b611f8a81611f03565b8114611f94575f5ffd5b50565b5f81519050611fa581611f81565b92915050565b5f60208284031215611fc057611fbf611f7d565b5b5f611fcd84828501611f97565b91505092915050565b611fdf81611e6a565b8114611fe9575f5ffd5b50565b5f81519050611ffa81611fd6565b92915050565b5f6020828403121561201557612014611f7d565b5b5f61202284828501611fec565b91505092915050565b5f819050919050565b5f61204e6120496120448461202b565b611a40565b611f03565b9050919050565b61205e81612034565b82525050565b5f6020820190506120775f830184612055565b92915050565b5f819050919050565b61208f8161207d565b82525050565b5f6040820190506120a85f830185611f55565b6120b56020830184612086565b9392505050565b6120c58161207d565b81146120cf575f5ffd5b50565b5f815190506120e0816120bc565b92915050565b5f602082840312156120fb576120fa611f7d565b5b5f612108848285016120d2565b91505092915050565b5f82825260208201905092915050565b5f61212b82611852565b6121358185612111565b935061214581856020860161186c565b61214e8161187a565b840191505092915050565b5f6020820190508181035f8301526121718184612121565b905092915050565b61218281611f03565b82525050565b5f6040820190508181035f8301526121a08185612121565b90506121af6020830184612179565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033436f6e646974696f6e20323a20626c6f636b2e74696d657374616d70202520313730203d3d2030436f6e646974696f6e20313a20626c6f636b2e74696d657374616d7020252031373020213d2030a26469706673582212201b1f6d80e0a3e90f2b4c215d45aeaa59c9249e6f2cf01a2c699632df952a18ce64736f6c63430008220033","sourceMap":"165:1208:141:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:69;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;209:27:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;444:927:141;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;324:69:141;364:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;358:3;;:28;;;;;;;;;;;;;;;;;;324:69::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;209:27:141:-;;;;;;;;;;;;;:::o;4465:186:6:-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;444:927:141:-;481:54;;;;;;;;;;;;;;;;;;:11;:54::i;:::-;351:42:0;583:7:141;;;591:3;583:12;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:51;;;;;;;;;;;;;;;;;;640:15;605:11;:51::i;:::-;351:42:0;778:13:141;;;792:5;;;;;;;;;;;778:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:66;;;;;;;;;;;;;;;;;;853:3;;;;;;;;;;;:13;;;867:5;;;;;;;;;;;853:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;808:11;:66::i;:::-;884:3;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;909:65;;;;;;;;;;;;;;;;;;953:3;;;;;;;;;;;:13;;;967:5;;;;;;;;;;;953:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;909:11;:65::i;:::-;1025:54;;;;;;;;;;;;;;;;;;:11;:54::i;:::-;351:42:0;1089:7:141;;;1097:5;1089:14;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1113:51;;;;;;;;;;;;;;;;;;1148:15;1113:11;:51::i;:::-;1174:66;;;;;;;;;;;;;;;;;;1219:3;;;;;;;;;;;:13;;;1233:5;;;;;;;;;;;1219:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1174:11;:66::i;:::-;1250:3;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1275:65;;;;;;;;;;;;;;;;;;1319:3;;;;;;;;;;;:13;;;1333:5;;;;;;;;;;;1319:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:11;:65::i;:::-;351:42:0;1350:12:141;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:927::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;6018:121:15:-;6073:59;6128:2;6089:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:15;:59::i;:::-;6018:121;:::o;6966:145::-;7033:71;7096:2;7100;7049:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7033:15;:71::i;:::-;6966:145;;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;186:268::-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:60::-;8446:3;8467:5;8460:12;;8418:60;;;:::o;8484:142::-;8534:9;8567:53;8585:34;8594:24;8612:5;8594:24;:::i;:::-;8585:34;:::i;:::-;8567:53;:::i;:::-;8554:66;;8484:142;;;:::o;8632:126::-;8682:9;8715:37;8746:5;8715:37;:::i;:::-;8702:50;;8632:126;;;:::o;8764:152::-;8840:9;8873:37;8904:5;8873:37;:::i;:::-;8860:50;;8764:152;;;:::o;8922:183::-;9035:63;9092:5;9035:63;:::i;:::-;9030:3;9023:76;8922:183;;:::o;9111:274::-;9230:4;9268:2;9257:9;9253:18;9245:26;;9281:97;9375:1;9364:9;9360:17;9351:6;9281:97;:::i;:::-;9111:274;;;;:::o;9391:152::-;9496:6;9530:5;9524:12;9514:22;;9391:152;;;:::o;9549:222::-;9686:11;9720:6;9715:3;9708:19;9760:4;9755:3;9751:14;9736:29;;9549:222;;;;:::o;9777:170::-;9882:4;9905:3;9897:11;;9935:4;9930:3;9926:14;9918:22;;9777:170;;;:::o;9953:113::-;10019:6;10053:5;10047:12;10037:22;;9953:113;;;:::o;10072:173::-;10160:11;10194:6;10189:3;10182:19;10234:4;10229:3;10225:14;10210:29;;10072:173;;;;:::o;10251:131::-;10317:4;10340:3;10332:11;;10370:4;10365:3;10361:14;10353:22;;10251:131;;;:::o;10388:149::-;10424:7;10464:66;10457:5;10453:78;10442:89;;10388:149;;;:::o;10543:105::-;10618:23;10635:5;10618:23;:::i;:::-;10613:3;10606:36;10543:105;;:::o;10654:175::-;10721:10;10742:44;10782:3;10774:6;10742:44;:::i;:::-;10818:4;10813:3;10809:14;10795:28;;10654:175;;;;:::o;10835:112::-;10904:4;10936;10931:3;10927:14;10919:22;;10835:112;;;:::o;10981:704::-;11088:3;11117:53;11164:5;11117:53;:::i;:::-;11186:75;11254:6;11249:3;11186:75;:::i;:::-;11179:82;;11285:55;11334:5;11285:55;:::i;:::-;11363:7;11394:1;11379:281;11404:6;11401:1;11398:13;11379:281;;;11480:6;11474:13;11507:61;11564:3;11549:13;11507:61;:::i;:::-;11500:68;;11591:59;11643:6;11591:59;:::i;:::-;11581:69;;11439:221;11426:1;11423;11419:9;11414:14;;11379:281;;;11383:14;11676:3;11669:10;;11093:592;;;10981:704;;;;:::o;11783:730::-;11918:3;11954:4;11949:3;11945:14;12045:4;12038:5;12034:16;12028:23;12098:3;12092:4;12088:14;12081:4;12076:3;12072:14;12065:38;12124:73;12192:4;12178:12;12124:73;:::i;:::-;12116:81;;11969:239;12295:4;12288:5;12284:16;12278:23;12348:3;12342:4;12338:14;12331:4;12326:3;12322:14;12315:38;12374:101;12470:4;12456:12;12374:101;:::i;:::-;12366:109;;12218:268;12503:4;12496:11;;11923:590;11783:730;;;;:::o;12519:308::-;12664:10;12699:122;12817:3;12809:6;12699:122;:::i;:::-;12685:136;;12519:308;;;;:::o;12833:151::-;12941:4;12973;12968:3;12964:14;12956:22;;12833:151;;;:::o;13086:1215::-;13281:3;13310:92;13396:5;13310:92;:::i;:::-;13418:124;13535:6;13530:3;13418:124;:::i;:::-;13411:131;;13568:3;13613:4;13605:6;13601:17;13596:3;13592:27;13643:94;13731:5;13643:94;:::i;:::-;13760:7;13791:1;13776:480;13801:6;13798:1;13795:13;13776:480;;;13872:9;13866:4;13862:20;13857:3;13850:33;13923:6;13917:13;13951:140;14086:4;14071:13;13951:140;:::i;:::-;13943:148;;14114:98;14205:6;14114:98;:::i;:::-;14104:108;;14241:4;14236:3;14232:14;14225:21;;13836:420;13823:1;13820;13816:9;13811:14;;13776:480;;;13780:14;14272:4;14265:11;;14292:3;14285:10;;13286:1015;;;;;13086:1215;;;;:::o;14307:525::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:184;14820:4;14811:6;14641:184;:::i;:::-;14633:192;;14307:525;;;;:::o;14838:194::-;14947:11;14981:6;14976:3;14969:19;15021:4;15016:3;15012:14;14997:29;;14838:194;;;;:::o;15066:991::-;15205:3;15234:64;15292:5;15234:64;:::i;:::-;15314:96;15403:6;15398:3;15314:96;:::i;:::-;15307:103;;15436:3;15481:4;15473:6;15469:17;15464:3;15460:27;15511:66;15571:5;15511:66;:::i;:::-;15600:7;15631:1;15616:396;15641:6;15638:1;15635:13;15616:396;;;15712:9;15706:4;15702:20;15697:3;15690:33;15763:6;15757:13;15791:84;15870:4;15855:13;15791:84;:::i;:::-;15783:92;;15898:70;15961:6;15898:70;:::i;:::-;15888:80;;15997:4;15992:3;15988:14;15981:21;;15676:336;15663:1;15660;15656:9;15651:14;;15616:396;;;15620:14;16028:4;16021:11;;16048:3;16041:10;;15210:847;;;;;15066:991;;;;:::o;16063:413::-;16226:4;16264:2;16253:9;16249:18;16241:26;;16313:9;16307:4;16303:20;16299:1;16288:9;16284:17;16277:47;16341:128;16464:4;16455:6;16341:128;:::i;:::-;16333:136;;16063:413;;;;:::o;16482:144::-;16579:6;16613:5;16607:12;16597:22;;16482:144;;;:::o;16632:214::-;16761:11;16795:6;16790:3;16783:19;16835:4;16830:3;16826:14;16811:29;;16632:214;;;;:::o;16852:162::-;16949:4;16972:3;16964:11;;17002:4;16997:3;16993:14;16985:22;;16852:162;;;:::o;17096:639::-;17215:3;17251:4;17246:3;17242:14;17338:4;17331:5;17327:16;17321:23;17357:63;17414:4;17409:3;17405:14;17391:12;17357:63;:::i;:::-;17266:164;17517:4;17510:5;17506:16;17500:23;17570:3;17564:4;17560:14;17553:4;17548:3;17544:14;17537:38;17596:101;17692:4;17678:12;17596:101;:::i;:::-;17588:109;;17440:268;17725:4;17718:11;;17220:515;17096:639;;;;:::o;17741:276::-;17870:10;17905:106;18007:3;17999:6;17905:106;:::i;:::-;17891:120;;17741:276;;;;:::o;18023:143::-;18123:4;18155;18150:3;18146:14;18138:22;;18023:143;;;:::o;18252:1151::-;18431:3;18460:84;18538:5;18460:84;:::i;:::-;18560:116;18669:6;18664:3;18560:116;:::i;:::-;18553:123;;18702:3;18747:4;18739:6;18735:17;18730:3;18726:27;18777:86;18857:5;18777:86;:::i;:::-;18886:7;18917:1;18902:456;18927:6;18924:1;18921:13;18902:456;;;18998:9;18992:4;18988:20;18983:3;18976:33;19049:6;19043:13;19077:124;19196:4;19181:13;19077:124;:::i;:::-;19069:132;;19224:90;19307:6;19224:90;:::i;:::-;19214:100;;19343:4;19338:3;19334:14;19327:21;;18962:396;18949:1;18946;18942:9;18937:14;;18902:456;;;18906:14;19374:4;19367:11;;19394:3;19387:10;;18436:967;;;;;18252:1151;;;;:::o;19409:493::-;19612:4;19650:2;19639:9;19635:18;19627:26;;19699:9;19693:4;19689:20;19685:1;19674:9;19670:17;19663:47;19727:168;19890:4;19881:6;19727:168;:::i;:::-;19719:176;;19409:493;;;;:::o;19908:90::-;19942:7;19985:5;19978:13;19971:21;19960:32;;19908:90;;;:::o;20004:109::-;20085:21;20100:5;20085:21;:::i;:::-;20080:3;20073:34;20004:109;;:::o;20119:210::-;20206:4;20244:2;20233:9;20229:18;20221:26;;20257:65;20319:1;20308:9;20304:17;20295:6;20257:65;:::i;:::-;20119:210;;;;:::o;20335:180::-;20383:77;20380:1;20373:88;20480:4;20477:1;20470:15;20504:4;20501:1;20494:15;20521:320;20565:6;20602:1;20596:4;20592:12;20582:22;;20649:1;20643:4;20639:12;20670:18;20660:81;;20726:4;20718:6;20714:17;20704:27;;20660:81;20788:2;20780:6;20777:14;20757:18;20754:38;20751:84;;20807:18;;:::i;:::-;20751:84;20572:269;20521:320;;;:::o;20847:87::-;20894:7;20923:5;20912:16;;20847:87;;;:::o;20940:77::-;20977:7;21006:5;20995:16;;20940:77;;;:::o;21023:162::-;21083:9;21116:63;21134:44;21143:34;21171:5;21143:34;:::i;:::-;21134:44;:::i;:::-;21116:63;:::i;:::-;21103:76;;21023:162;;;:::o;21191:151::-;21288:47;21329:5;21288:47;:::i;:::-;21283:3;21276:60;21191:151;;:::o;21348:242::-;21451:4;21489:2;21478:9;21474:18;21466:26;;21502:81;21580:1;21569:9;21565:17;21556:6;21502:81;:::i;:::-;21348:242;;;;:::o;21596:118::-;21683:24;21701:5;21683:24;:::i;:::-;21678:3;21671:37;21596:118;;:::o;21720:222::-;21813:4;21851:2;21840:9;21836:18;21828:26;;21864:71;21932:1;21921:9;21917:17;21908:6;21864:71;:::i;:::-;21720:222;;;;:::o;22029:117::-;22138:1;22135;22128:12;22275:122;22348:24;22366:5;22348:24;:::i;:::-;22341:5;22338:35;22328:63;;22387:1;22384;22377:12;22328:63;22275:122;:::o;22403:143::-;22460:5;22491:6;22485:13;22476:22;;22507:33;22534:5;22507:33;:::i;:::-;22403:143;;;;:::o;22552:351::-;22622:6;22671:2;22659:9;22650:7;22646:23;22642:32;22639:119;;;22677:79;;:::i;:::-;22639:119;22797:1;22822:64;22878:7;22869:6;22858:9;22854:22;22822:64;:::i;:::-;22812:74;;22768:128;22552:351;;;;:::o;22909:116::-;22979:21;22994:5;22979:21;:::i;:::-;22972:5;22969:32;22959:60;;23015:1;23012;23005:12;22959:60;22909:116;:::o;23031:137::-;23085:5;23116:6;23110:13;23101:22;;23132:30;23156:5;23132:30;:::i;:::-;23031:137;;;;:::o;23174:345::-;23241:6;23290:2;23278:9;23269:7;23265:23;23261:32;23258:119;;;23296:79;;:::i;:::-;23258:119;23416:1;23441:61;23494:7;23485:6;23474:9;23470:22;23441:61;:::i;:::-;23431:71;;23387:125;23174:345;;;;:::o;23525:89::-;23574:7;23603:5;23592:16;;23525:89;;;:::o;23620:166::-;23682:9;23715:65;23733:46;23742:36;23772:5;23742:36;:::i;:::-;23733:46;:::i;:::-;23715:65;:::i;:::-;23702:78;;23620:166;;;:::o;23792:155::-;23891:49;23934:5;23891:49;:::i;:::-;23886:3;23879:62;23792:155;;:::o;23953:246::-;24058:4;24096:2;24085:9;24081:18;24073:26;;24109:83;24189:1;24178:9;24174:17;24165:6;24109:83;:::i;:::-;23953:246;;;;:::o;24205:77::-;24242:7;24271:5;24260:16;;24205:77;;;:::o;24288:118::-;24375:24;24393:5;24375:24;:::i;:::-;24370:3;24363:37;24288:118;;:::o;24412:332::-;24533:4;24571:2;24560:9;24556:18;24548:26;;24584:71;24652:1;24641:9;24637:17;24628:6;24584:71;:::i;:::-;24665:72;24733:2;24722:9;24718:18;24709:6;24665:72;:::i;:::-;24412:332;;;;;:::o;24750:122::-;24823:24;24841:5;24823:24;:::i;:::-;24816:5;24813:35;24803:63;;24862:1;24859;24852:12;24803:63;24750:122;:::o;24878:143::-;24935:5;24966:6;24960:13;24951:22;;24982:33;25009:5;24982:33;:::i;:::-;24878:143;;;;:::o;25027:351::-;25097:6;25146:2;25134:9;25125:7;25121:23;25117:32;25114:119;;;25152:79;;:::i;:::-;25114:119;25272:1;25297:64;25353:7;25344:6;25333:9;25329:22;25297:64;:::i;:::-;25287:74;;25243:128;25027:351;;;;:::o;25384:169::-;25468:11;25502:6;25497:3;25490:19;25542:4;25537:3;25533:14;25518:29;;25384:169;;;;:::o;25559:377::-;25647:3;25675:39;25708:5;25675:39;:::i;:::-;25730:71;25794:6;25789:3;25730:71;:::i;:::-;25723:78;;25810:65;25868:6;25863:3;25856:4;25849:5;25845:16;25810:65;:::i;:::-;25900:29;25922:6;25900:29;:::i;:::-;25895:3;25891:39;25884:46;;25651:285;25559:377;;;;:::o;25942:313::-;26055:4;26093:2;26082:9;26078:18;26070:26;;26142:9;26136:4;26132:20;26128:1;26117:9;26113:17;26106:47;26170:78;26243:4;26234:6;26170:78;:::i;:::-;26162:86;;25942:313;;;;:::o;26261:118::-;26348:24;26366:5;26348:24;:::i;:::-;26343:3;26336:37;26261:118;;:::o;26385:423::-;26526:4;26564:2;26553:9;26549:18;26541:26;;26613:9;26607:4;26603:20;26599:1;26588:9;26584:17;26577:47;26641:78;26714:4;26705:6;26641:78;:::i;:::-;26633:86;;26729:72;26797:2;26786:9;26782:18;26773:6;26729:72;:::i;:::-;26385:423;;;;;:::o;26814:180::-;26862:77;26859:1;26852:88;26959:4;26956:1;26949:15;26983:4;26980:1;26973:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","nft()":"47ccca02","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testMint()":"9642ddaf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract TimeManipulation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S14_TimeManipulation/test/TimeManipulation.t.sol\":\"TimeManipulationTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S14_TimeManipulation/src/TimeManipulation.sol\":{\"keccak256\":\"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178\",\"dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ\"]},\"src/S14_TimeManipulation/test/TimeManipulation.t.sol\":{\"keccak256\":\"0x00216f91b285fa39ef2993c448286d9b0b3587ba85266497516b0eb9f6953686\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://01d1cd88c28bdba44c95bb444bfffa64e43424fba6ee27aeb35cc891d94e3b29\",\"dweb:/ipfs/QmWsh1ytMcFi4SqtadCpDirZBjZVadofVZ13jT9fkaa2VQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nft","outputs":[{"internalType":"contract TimeManipulation","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testMint"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S14_TimeManipulation/test/TimeManipulation.t.sol":"TimeManipulationTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S14_TimeManipulation/src/TimeManipulation.sol":{"keccak256":"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33","urls":["bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178","dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ"],"license":"MIT"},"src/S14_TimeManipulation/test/TimeManipulation.t.sol":{"keccak256":"0x00216f91b285fa39ef2993c448286d9b0b3587ba85266497516b0eb9f6953686","urls":["bzz-raw://01d1cd88c28bdba44c95bb444bfffa64e43424fba6ee27aeb35cc891d94e3b29","dweb:/ipfs/QmWsh1ytMcFi4SqtadCpDirZBjZVadofVZ13jT9fkaa2VQ"],"license":"UNLICENSED"}},"version":1},"id":141} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TimeManipulation"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testMint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff021916908315150217905550737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663ffa1864960016040518263ffffffff1660e01b81526004016100869190610160565b602060405180830381865afa1580156100a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c591906101d7565b60205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561010f575f5ffd5b50610202565b5f819050919050565b5f819050919050565b5f819050919050565b5f61014a61014561014084610115565b610127565b61011e565b9050919050565b61015a81610130565b82525050565b5f6020820190506101735f830184610151565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b6144328061020f5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610219578063ba414fa614610237578063e20c9f7114610255578063fa7626d414610273576100f3565b806385226c81146101b5578063916a17c6146101d35780639642ddaf146101f1578063b0464fdc146101fb576100f3565b80633e5e3c23116100d15780633e5e3c231461013d5780633f7286f41461015b57806347ccca021461017957806366d9a9a014610197576100f3565b80630a9254e4146100f75780631ed7831c146101015780632ade38801461011f575b5f5ffd5b6100ff610291565b005b6101096102f9565b60405161011691906117e0565b60405180910390f35b610127610384565b6040516101349190611a20565b60405180910390f35b610145610508565b60405161015291906117e0565b60405180910390f35b610163610593565b60405161017091906117e0565b60405180910390f35b61018161061e565b60405161018e9190611a9b565b60405180910390f35b61019f610644565b6040516101ac9190611c92565b60405180910390f35b6101bd6107c6565b6040516101ca9190611d35565b60405180910390f35b6101db61089a565b6040516101e89190611e4a565b60405180910390f35b6101f96109e1565b005b6102036111aa565b6040516102109190611e4a565b60405180910390f35b6102216112f1565b60405161022e9190611d35565b60405180910390f35b61023f6113c5565b60405161024c9190611e84565b60405180910390f35b61025d6114cc565b60405161026a91906117e0565b60405180910390f35b61027b611557565b6040516102889190611e84565b60405180910390f35b60405161029d906116e2565b604051809103905ff0801580156102b6573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561037a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610331575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156104ff578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156104e8578382905f5260205f2001805461045d90611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611eca565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b505050505081526020019060010190610440565b5050505081525050815260200190600101906103a7565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561058957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610540575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561061457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116105cb575b5050505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156107bd578382905f5260205f2090600202016040518060400160405290815f8201805461069790611eca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c390611eca565b801561070e5780601f106106e55761010080835404028352916020019161070e565b820191905f5260205f20905b8154815290600101906020018083116106f157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107a557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107525790505b50505050508152505081526020019060010190610667565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610891578382905f5260205f2001805461080690611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611eca565b801561087d5780601f106108545761010080835404028352916020019161087d565b820191905f5260205f20905b81548152906001019060200180831161086057829003601f168201915b5050505050815260200190600101906107e9565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156109d8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156109c057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096d5790505b505050505081525050815260200190600101906108bd565b50505050905090565b610a026040518060600160405280602781526020016143d660279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf0260a96040518263ffffffff1660e01b8152600401610a509190611f3c565b5f604051808303815f87803b158015610a67575f5ffd5b505af1158015610a79573d5f5f3e3d5ffd5b50505050610abc6040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166306447d5660205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b2a9190611f64565b5f604051808303815f87803b158015610b41575f5ffd5b505af1158015610b53573d5f5f3e3d5ffd5b50505050610c506040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610c0c9190611f64565b602060405180830381865afa158015610c27573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610cbc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612000565b50610dda6040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610d969190611f64565b602060405180830381865afa158015610db1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611fab565b611602565b610dfb6040518060600160405280602781526020016143af60279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026142686040518263ffffffff1660e01b8152600401610e4a9190612064565b5f604051808303815f87803b158015610e61575f5ffd5b505af1158015610e73573d5f5f3e3d5ffd5b50505050610eb66040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b610faf6040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610f6b9190611f64565b602060405180830381865afa158015610f86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610faa9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af115801561101b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103f9190612000565b506111396040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016110f59190611f64565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190611fab565b611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611192575f5ffd5b505af11580156111a4573d5f5f3e3d5ffd5b50505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156112e8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156112d057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127d5790505b505050505081525050815260200190600101906111cd565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156113bc578382905f5260205f2001805461133190611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90611eca565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b505050505081526020019060010190611314565b50505050905090565b5f60085f9054906101000a900460ff16156113e357600190506114c9565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611485929190612095565b602060405180830381865afa1580156114a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c491906120e6565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561154d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611504575b5050505050905090565b601f5f9054906101000a900460ff1681565b6115ff8160405160240161157d9190612159565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b50565b61169a8282604051602401611618929190612188565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b5050565b6116b5816116ad6116b86116d7565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6116ef819050919050565b6121cb806121e483390190565b6116f76121b6565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61174b82611722565b9050919050565b61175b81611741565b82525050565b5f61176c8383611752565b60208301905092915050565b5f602082019050919050565b5f61178e826116f9565b6117988185611703565b93506117a383611713565b805f5b838110156117d35781516117ba8882611761565b97506117c583611778565b9250506001810190506117a6565b5085935050505092915050565b5f6020820190508181035f8301526117f88184611784565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61189482611852565b61189e818561185c565b93506118ae81856020860161186c565b6118b78161187a565b840191505092915050565b5f6118cd838361188a565b905092915050565b5f602082019050919050565b5f6118eb82611829565b6118f58185611833565b93508360208202850161190785611843565b805f5b85811015611942578484038952815161192385826118c2565b945061192e836118d5565b925060208a0199505060018101905061190a565b50829750879550505050505092915050565b5f604083015f8301516119695f860182611752565b506020830151848203602086015261198182826118e1565b9150508091505092915050565b5f6119998383611954565b905092915050565b5f602082019050919050565b5f6119b782611800565b6119c1818561180a565b9350836020820285016119d38561181a565b805f5b85811015611a0e57848403895281516119ef858261198e565b94506119fa836119a1565b925060208a019950506001810190506119d6565b50829750879550505050505092915050565b5f6020820190508181035f830152611a3881846119ad565b905092915050565b5f819050919050565b5f611a63611a5e611a5984611722565b611a40565b611722565b9050919050565b5f611a7482611a49565b9050919050565b5f611a8582611a6a565b9050919050565b611a9581611a7b565b82525050565b5f602082019050611aae5f830184611a8c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b3a81611b06565b82525050565b5f611b4b8383611b31565b60208301905092915050565b5f602082019050919050565b5f611b6d82611add565b611b778185611ae7565b9350611b8283611af7565b805f5b83811015611bb2578151611b998882611b40565b9750611ba483611b57565b925050600181019050611b85565b5085935050505092915050565b5f604083015f8301518482035f860152611bd9828261188a565b91505060208301518482036020860152611bf38282611b63565b9150508091505092915050565b5f611c0b8383611bbf565b905092915050565b5f602082019050919050565b5f611c2982611ab4565b611c338185611abe565b935083602082028501611c4585611ace565b805f5b85811015611c805784840389528151611c618582611c00565b9450611c6c83611c13565b925060208a01995050600181019050611c48565b50829750879550505050505092915050565b5f6020820190508181035f830152611caa8184611c1f565b905092915050565b5f82825260208201905092915050565b5f611ccc82611829565b611cd68185611cb2565b935083602082028501611ce885611843565b805f5b85811015611d235784840389528151611d0485826118c2565b9450611d0f836118d5565b925060208a01995050600181019050611ceb565b50829750879550505050505092915050565b5f6020820190508181035f830152611d4d8184611cc2565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151611d935f860182611752565b5060208301518482036020860152611dab8282611b63565b9150508091505092915050565b5f611dc38383611d7e565b905092915050565b5f602082019050919050565b5f611de182611d55565b611deb8185611d5f565b935083602082028501611dfd85611d6f565b805f5b85811015611e385784840389528151611e198582611db8565b9450611e2483611dcb565b925060208a01995050600181019050611e00565b50829750879550505050505092915050565b5f6020820190508181035f830152611e628184611dd7565b905092915050565b5f8115159050919050565b611e7e81611e6a565b82525050565b5f602082019050611e975f830184611e75565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ee157607f821691505b602082108103611ef457611ef3611e9d565b5b50919050565b5f819050919050565b5f819050919050565b5f611f26611f21611f1c84611efa565b611a40565b611f03565b9050919050565b611f3681611f0c565b82525050565b5f602082019050611f4f5f830184611f2d565b92915050565b611f5e81611741565b82525050565b5f602082019050611f775f830184611f55565b92915050565b5f5ffd5b611f8a81611f03565b8114611f94575f5ffd5b50565b5f81519050611fa581611f81565b92915050565b5f60208284031215611fc057611fbf611f7d565b5b5f611fcd84828501611f97565b91505092915050565b611fdf81611e6a565b8114611fe9575f5ffd5b50565b5f81519050611ffa81611fd6565b92915050565b5f6020828403121561201557612014611f7d565b5b5f61202284828501611fec565b91505092915050565b5f819050919050565b5f61204e6120496120448461202b565b611a40565b611f03565b9050919050565b61205e81612034565b82525050565b5f6020820190506120775f830184612055565b92915050565b5f819050919050565b61208f8161207d565b82525050565b5f6040820190506120a85f830185611f55565b6120b56020830184612086565b9392505050565b6120c58161207d565b81146120cf575f5ffd5b50565b5f815190506120e0816120bc565b92915050565b5f602082840312156120fb576120fa611f7d565b5b5f612108848285016120d2565b91505092915050565b5f82825260208201905092915050565b5f61212b82611852565b6121358185612111565b935061214581856020860161186c565b61214e8161187a565b840191505092915050565b5f6020820190508181035f8301526121718184612121565b905092915050565b61218281611f03565b82525050565b5f6040820190508181035f8301526121a08185612121565b90506121af6020830184612179565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033436f6e646974696f6e20323a20626c6f636b2e74696d657374616d70202520313730203d3d2030436f6e646974696f6e20313a20626c6f636b2e74696d657374616d7020252031373020213d2030a26469706673582212201b1f6d80e0a3e90f2b4c215d45aeaa59c9249e6f2cf01a2c699632df952a18ce64736f6c63430008220033","sourceMap":"165:1208:135:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;351:42:0;307:7:135;;;315:1;307:10;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;291:26;;;;;;;;;;;;;;;;;;;;165:1208;;;;;;;;;;;;7:85:139;52:7;81:5;70:16;;7:85;;;:::o;98:77::-;135:7;164:5;153:16;;98:77;;;:::o;181:60::-;209:3;230:5;223:12;;181:60;;;:::o;247:158::-;305:9;338:61;356:42;365:32;391:5;365:32;:::i;:::-;356:42;:::i;:::-;338:61;:::i;:::-;325:74;;247:158;;;:::o;411:147::-;506:45;545:5;506:45;:::i;:::-;501:3;494:58;411:147;;:::o;564:238::-;665:4;703:2;692:9;688:18;680:26;;716:79;792:1;781:9;777:17;768:6;716:79;:::i;:::-;564:238;;;;:::o;889:117::-;998:1;995;988:12;1135:126;1172:7;1212:42;1205:5;1201:54;1190:65;;1135:126;;;:::o;1267:96::-;1304:7;1333:24;1351:5;1333:24;:::i;:::-;1322:35;;1267:96;;;:::o;1369:122::-;1442:24;1460:5;1442:24;:::i;:::-;1435:5;1432:35;1422:63;;1481:1;1478;1471:12;1422:63;1369:122;:::o;1497:143::-;1554:5;1585:6;1579:13;1570:22;;1601:33;1628:5;1601:33;:::i;:::-;1497:143;;;;:::o;1646:351::-;1716:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:119;;;1771:79;;:::i;:::-;1733:119;1891:1;1916:64;1972:7;1963:6;1952:9;1948:22;1916:64;:::i;:::-;1906:74;;1862:128;1646:351;;;;:::o;165:1208:135:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610219578063ba414fa614610237578063e20c9f7114610255578063fa7626d414610273576100f3565b806385226c81146101b5578063916a17c6146101d35780639642ddaf146101f1578063b0464fdc146101fb576100f3565b80633e5e3c23116100d15780633e5e3c231461013d5780633f7286f41461015b57806347ccca021461017957806366d9a9a014610197576100f3565b80630a9254e4146100f75780631ed7831c146101015780632ade38801461011f575b5f5ffd5b6100ff610291565b005b6101096102f9565b60405161011691906117e0565b60405180910390f35b610127610384565b6040516101349190611a20565b60405180910390f35b610145610508565b60405161015291906117e0565b60405180910390f35b610163610593565b60405161017091906117e0565b60405180910390f35b61018161061e565b60405161018e9190611a9b565b60405180910390f35b61019f610644565b6040516101ac9190611c92565b60405180910390f35b6101bd6107c6565b6040516101ca9190611d35565b60405180910390f35b6101db61089a565b6040516101e89190611e4a565b60405180910390f35b6101f96109e1565b005b6102036111aa565b6040516102109190611e4a565b60405180910390f35b6102216112f1565b60405161022e9190611d35565b60405180910390f35b61023f6113c5565b60405161024c9190611e84565b60405180910390f35b61025d6114cc565b60405161026a91906117e0565b60405180910390f35b61027b611557565b6040516102889190611e84565b60405180910390f35b60405161029d906116e2565b604051809103905ff0801580156102b6573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060601680548060200260200160405190810160405280929190818152602001828054801561037a57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610331575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156104ff578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156104e8578382905f5260205f2001805461045d90611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461048990611eca565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b505050505081526020019060010190610440565b5050505081525050815260200190600101906103a7565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561058957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610540575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561061457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116105cb575b5050505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156107bd578382905f5260205f2090600202016040518060400160405290815f8201805461069790611eca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c390611eca565b801561070e5780601f106106e55761010080835404028352916020019161070e565b820191905f5260205f20905b8154815290600101906020018083116106f157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107a557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107525790505b50505050508152505081526020019060010190610667565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610891578382905f5260205f2001805461080690611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611eca565b801561087d5780601f106108545761010080835404028352916020019161087d565b820191905f5260205f20905b81548152906001019060200180831161086057829003601f168201915b5050505050815260200190600101906107e9565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156109d8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156109c057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096d5790505b505050505081525050815260200190600101906108bd565b50505050905090565b610a026040518060600160405280602781526020016143d660279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf0260a96040518263ffffffff1660e01b8152600401610a509190611f3c565b5f604051808303815f87803b158015610a67575f5ffd5b505af1158015610a79573d5f5f3e3d5ffd5b50505050610abc6040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166306447d5660205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b2a9190611f64565b5f604051808303815f87803b158015610b41575f5ffd5b505af1158015610b53573d5f5f3e3d5ffd5b50505050610c506040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610c0c9190611f64565b602060405180830381865afa158015610c27573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610cbc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612000565b50610dda6040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610d969190611f64565b602060405180830381865afa158015610db1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611fab565b611602565b610dfb6040518060600160405280602781526020016143af60279139611569565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663e5d6bf026142686040518263ffffffff1660e01b8152600401610e4a9190612064565b5f604051808303815f87803b158015610e61575f5ffd5b505af1158015610e73573d5f5f3e3d5ffd5b50505050610eb66040518060400160405280601381526020017f626c6f636b2e74696d657374616d703a2025730000000000000000000000000081525042611602565b610faf6040518060400160405280601d81526020017f616c6963652062616c616e6365206265666f7265206d696e743a202573000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610f6b9190611f64565b602060405180830381865afa158015610f86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610faa9190611fab565b611602565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffd5a7be6040518163ffffffff1660e01b81526004016020604051808303815f875af115801561101b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103f9190612000565b506111396040518060400160405280601c81526020017f616c6963652062616c616e6365206166746572206d696e743a20257300000000815250601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016110f59190611f64565b602060405180830381865afa158015611110573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111349190611fab565b611602565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611192575f5ffd5b505af11580156111a4573d5f5f3e3d5ffd5b50505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156112e8578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156112d057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127d5790505b505050505081525050815260200190600101906111cd565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156113bc578382905f5260205f2001805461133190611eca565b80601f016020809104026020016040519081016040528092919081815260200182805461135d90611eca565b80156113a85780601f1061137f576101008083540402835291602001916113a8565b820191905f5260205f20905b81548152906001019060200180831161138b57829003601f168201915b505050505081526020019060010190611314565b50505050905090565b5f60085f9054906101000a900460ff16156113e357600190506114c9565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611485929190612095565b602060405180830381865afa1580156114a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c491906120e6565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561154d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611504575b5050505050905090565b601f5f9054906101000a900460ff1681565b6115ff8160405160240161157d9190612159565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b50565b61169a8282604051602401611618929190612188565b6040516020818303038152906040527fb60e72cc000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061169e565b5050565b6116b5816116ad6116b86116d7565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b6116ef819050919050565b6121cb806121e483390190565b6116f76121b6565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61174b82611722565b9050919050565b61175b81611741565b82525050565b5f61176c8383611752565b60208301905092915050565b5f602082019050919050565b5f61178e826116f9565b6117988185611703565b93506117a383611713565b805f5b838110156117d35781516117ba8882611761565b97506117c583611778565b9250506001810190506117a6565b5085935050505092915050565b5f6020820190508181035f8301526117f88184611784565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61189482611852565b61189e818561185c565b93506118ae81856020860161186c565b6118b78161187a565b840191505092915050565b5f6118cd838361188a565b905092915050565b5f602082019050919050565b5f6118eb82611829565b6118f58185611833565b93508360208202850161190785611843565b805f5b85811015611942578484038952815161192385826118c2565b945061192e836118d5565b925060208a0199505060018101905061190a565b50829750879550505050505092915050565b5f604083015f8301516119695f860182611752565b506020830151848203602086015261198182826118e1565b9150508091505092915050565b5f6119998383611954565b905092915050565b5f602082019050919050565b5f6119b782611800565b6119c1818561180a565b9350836020820285016119d38561181a565b805f5b85811015611a0e57848403895281516119ef858261198e565b94506119fa836119a1565b925060208a019950506001810190506119d6565b50829750879550505050505092915050565b5f6020820190508181035f830152611a3881846119ad565b905092915050565b5f819050919050565b5f611a63611a5e611a5984611722565b611a40565b611722565b9050919050565b5f611a7482611a49565b9050919050565b5f611a8582611a6a565b9050919050565b611a9581611a7b565b82525050565b5f602082019050611aae5f830184611a8c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b3a81611b06565b82525050565b5f611b4b8383611b31565b60208301905092915050565b5f602082019050919050565b5f611b6d82611add565b611b778185611ae7565b9350611b8283611af7565b805f5b83811015611bb2578151611b998882611b40565b9750611ba483611b57565b925050600181019050611b85565b5085935050505092915050565b5f604083015f8301518482035f860152611bd9828261188a565b91505060208301518482036020860152611bf38282611b63565b9150508091505092915050565b5f611c0b8383611bbf565b905092915050565b5f602082019050919050565b5f611c2982611ab4565b611c338185611abe565b935083602082028501611c4585611ace565b805f5b85811015611c805784840389528151611c618582611c00565b9450611c6c83611c13565b925060208a01995050600181019050611c48565b50829750879550505050505092915050565b5f6020820190508181035f830152611caa8184611c1f565b905092915050565b5f82825260208201905092915050565b5f611ccc82611829565b611cd68185611cb2565b935083602082028501611ce885611843565b805f5b85811015611d235784840389528151611d0485826118c2565b9450611d0f836118d5565b925060208a01995050600181019050611ceb565b50829750879550505050505092915050565b5f6020820190508181035f830152611d4d8184611cc2565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f830151611d935f860182611752565b5060208301518482036020860152611dab8282611b63565b9150508091505092915050565b5f611dc38383611d7e565b905092915050565b5f602082019050919050565b5f611de182611d55565b611deb8185611d5f565b935083602082028501611dfd85611d6f565b805f5b85811015611e385784840389528151611e198582611db8565b9450611e2483611dcb565b925060208a01995050600181019050611e00565b50829750879550505050505092915050565b5f6020820190508181035f830152611e628184611dd7565b905092915050565b5f8115159050919050565b611e7e81611e6a565b82525050565b5f602082019050611e975f830184611e75565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611ee157607f821691505b602082108103611ef457611ef3611e9d565b5b50919050565b5f819050919050565b5f819050919050565b5f611f26611f21611f1c84611efa565b611a40565b611f03565b9050919050565b611f3681611f0c565b82525050565b5f602082019050611f4f5f830184611f2d565b92915050565b611f5e81611741565b82525050565b5f602082019050611f775f830184611f55565b92915050565b5f5ffd5b611f8a81611f03565b8114611f94575f5ffd5b50565b5f81519050611fa581611f81565b92915050565b5f60208284031215611fc057611fbf611f7d565b5b5f611fcd84828501611f97565b91505092915050565b611fdf81611e6a565b8114611fe9575f5ffd5b50565b5f81519050611ffa81611fd6565b92915050565b5f6020828403121561201557612014611f7d565b5b5f61202284828501611fec565b91505092915050565b5f819050919050565b5f61204e6120496120448461202b565b611a40565b611f03565b9050919050565b61205e81612034565b82525050565b5f6020820190506120775f830184612055565b92915050565b5f819050919050565b61208f8161207d565b82525050565b5f6040820190506120a85f830185611f55565b6120b56020830184612086565b9392505050565b6120c58161207d565b81146120cf575f5ffd5b50565b5f815190506120e0816120bc565b92915050565b5f602082840312156120fb576120fa611f7d565b5b5f612108848285016120d2565b91505092915050565b5f82825260208201905092915050565b5f61212b82611852565b6121358185612111565b935061214581856020860161186c565b61214e8161187a565b840191505092915050565b5f6020820190508181035f8301526121718184612121565b905092915050565b61218281611f03565b82525050565b5f6040820190508181035f8301526121a08185612121565b90506121af6020830184612179565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe608060405234801561000f575f5ffd5b5060405180602001604052805f81525060405180602001604052805f815250815f908161003c91906102a2565b50806001908161004c91906102a2565b505050610371565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100cf57607f821691505b6020821081036100e2576100e161008b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610109565b61014e8683610109565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61019261018d61018884610166565b61016f565b610166565b9050919050565b5f819050919050565b6101ab83610178565b6101bf6101b782610199565b848454610115565b825550505050565b5f5f905090565b6101d66101c7565b6101e18184846101a2565b505050565b5f5b82811015610207576101fc5f8284016101ce565b6001810190506101e8565b505050565b601f82111561025a578282111561025957610226816100e8565b61022f836100fa565b610238856100fa565b6020861015610245575f90505b808301610254828403826101e6565b505050505b5b505050565b5f82821c905092915050565b5f61027a5f198460080261025f565b1980831691505092915050565b5f610292838361026b565b9150826002028217905092915050565b6102ab82610054565b67ffffffffffffffff8111156102c4576102c361005e565b5b6102ce82546100b8565b6102d982828561020c565b5f60209050601f83116001811461030a575f84156102f8578287015190505b6103028582610287565b865550610369565b601f198416610318866100e8565b5f5b8281101561033f5784890151825560018201915060208501945060208101905061031a565b8683101561035c5784890151610358601f89168261026b565b8355505b6001600288020188555050505b505050505050565b611e4d8061037e5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063e985e9c5146102a4578063ffd5a7be146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f5ffd5b61010660048036038101906101019190611654565b6102f2565b6040516101139190611699565b60405180910390f35b6101246103d3565b6040516101319190611722565b60405180910390f35b610154600480360381019061014f9190611775565b610462565b60405161016191906117df565b60405180910390f35b610184600480360381019061017f9190611822565b61047d565b005b6101a0600480360381019061019b9190611860565b610493565b005b6101bc60048036038101906101b79190611860565b610592565b005b6101d860048036038101906101d39190611775565b6105b1565b6040516101e591906117df565b60405180910390f35b610208600480360381019061020391906118b0565b6105c2565b60405161021591906118ea565b60405180910390f35b610226610678565b6040516102339190611722565b60405180910390f35b6102566004803603810190610251919061192d565b610708565b005b610272600480360381019061026d9190611a97565b61071e565b005b61028e60048036038101906102899190611775565b610743565b60405161029b9190611722565b60405180910390f35b6102be60048036038101906102b99190611b17565b6107a9565b6040516102cb9190611699565b60405180910390f35b6102dc610837565b6040516102e99190611699565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103bc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103cc57506103cb8261087e565b5b9050919050565b60605f80546103e190611b82565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611b82565b80156104585780601f1061042f57610100808354040283529160200191610458565b820191905f5260205f20905b81548152906001019060200180831161043b57829003601f168201915b5050505050905090565b5f61046c826108e7565b506104768261096d565b9050919050565b61048f828261048a6109a6565b6109ad565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610503575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104fa91906117df565b60405180910390fd5b5f61051683836105116109a6565b6109bf565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058c578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161058393929190611bb2565b60405180910390fd5b50505050565b6105ac83838360405180602001604052805f81525061071e565b505050565b5f6105bb826108e7565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610633575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161062a91906117df565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461068790611b82565b80601f01602080910402602001604051908101604052809291908181526020018280546106b390611b82565b80156106fe5780601f106106d5576101008083540402835291602001916106fe565b820191905f5260205f20905b8154815290600101906020018083116106e157829003601f168201915b5050505050905090565b61071a6107136109a6565b8383610bca565b5050565b610729848484610493565b61073d6107346109a6565b85858585610da3565b50505050565b606061074e826108e7565b505f610758610f4f565b90505f8151116107765760405180602001604052805f8152506107a1565b8061078084610f65565b604051602001610791929190611c21565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f5f60aa426108469190611c71565b03610877576108573360065461102f565b60065f81548092919061086990611cce565b91905055506001905061087b565b5f90505b90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6108f283611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361096457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161095b91906118ea565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6109ba838383600161115b565b505050565b5f5f6109ca84611122565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0b57610a0a81848661131a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9657610a4a5f855f5f61115b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b1557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c3a575f6040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401610c3191906117df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610caa57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610ca191906117df565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d969190611699565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f48578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610e019493929190611d67565b6020604051808303815f875af1925050508015610e3c57506040513d601f19601f82011682018060405250810190610e399190611dc5565b60015b610ebd573d805f8114610e6a576040519150601f19603f3d011682016040523d82523d5f602084013e610e6f565b606091505b505f815103610eb557836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610eac91906117df565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f4657836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f3d91906117df565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001610f73846113dd565b0190505f8167ffffffffffffffff811115610f9157610f90611973565b5b6040519080825280601f01601f191660200182016040528015610fc35781602001600182028036833780820191505090505b5090505f82602083010190505b600115611024578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161101957611018611c44565b5b0494505f8503610fd0575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161109691906117df565b60405180910390fd5b5f6110ab83835f6109bf565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111d575f6040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161111491906117df565b60405180910390fd5b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061119357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156112c5575f6111a2846108e7565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561120c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561121f575061121d81846107a9565b155b1561126157826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161125891906117df565b60405180910390fd5b81156112c357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61132583838361152e565b6113d8575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361139957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161139091906118ea565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016113cf929190611df0565b60405180910390fd5b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611439577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161142f5761142e611c44565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611476576d04ee2d6d415b85acef8100000000838161146c5761146b611c44565b5b0492506020810190505b662386f26fc1000083106114a557662386f26fc10000838161149b5761149a611c44565b5b0492506010810190505b6305f5e10083106114ce576305f5e10083816114c4576114c3611c44565b5b0492506008810190505b61271083106114f35761271083816114e9576114e8611c44565b5b0492506004810190505b60648310611516576064838161150c5761150b611c44565b5b0492506002810190505b600a8310611525576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115a657506115a584846107a9565b5b806115e457508273ffffffffffffffffffffffffffffffffffffffff166115cc8361096d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611633816115ff565b811461163d575f5ffd5b50565b5f8135905061164e8161162a565b92915050565b5f60208284031215611669576116686115f7565b5b5f61167684828501611640565b91505092915050565b5f8115159050919050565b6116938161167f565b82525050565b5f6020820190506116ac5f83018461168a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116f4826116b2565b6116fe81856116bc565b935061170e8185602086016116cc565b611717816116da565b840191505092915050565b5f6020820190508181035f83015261173a81846116ea565b905092915050565b5f819050919050565b61175481611742565b811461175e575f5ffd5b50565b5f8135905061176f8161174b565b92915050565b5f6020828403121561178a576117896115f7565b5b5f61179784828501611761565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117c9826117a0565b9050919050565b6117d9816117bf565b82525050565b5f6020820190506117f25f8301846117d0565b92915050565b611801816117bf565b811461180b575f5ffd5b50565b5f8135905061181c816117f8565b92915050565b5f5f60408385031215611838576118376115f7565b5b5f6118458582860161180e565b925050602061185685828601611761565b9150509250929050565b5f5f5f60608486031215611877576118766115f7565b5b5f6118848682870161180e565b93505060206118958682870161180e565b92505060406118a686828701611761565b9150509250925092565b5f602082840312156118c5576118c46115f7565b5b5f6118d28482850161180e565b91505092915050565b6118e481611742565b82525050565b5f6020820190506118fd5f8301846118db565b92915050565b61190c8161167f565b8114611916575f5ffd5b50565b5f8135905061192781611903565b92915050565b5f5f60408385031215611943576119426115f7565b5b5f6119508582860161180e565b925050602061196185828601611919565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119a9826116da565b810181811067ffffffffffffffff821117156119c8576119c7611973565b5b80604052505050565b5f6119da6115ee565b90506119e682826119a0565b919050565b5f67ffffffffffffffff821115611a0557611a04611973565b5b611a0e826116da565b9050602081019050919050565b828183375f83830152505050565b5f611a3b611a36846119eb565b6119d1565b905082815260208101848484011115611a5757611a5661196f565b5b611a62848285611a1b565b509392505050565b5f82601f830112611a7e57611a7d61196b565b5b8135611a8e848260208601611a29565b91505092915050565b5f5f5f5f60808587031215611aaf57611aae6115f7565b5b5f611abc8782880161180e565b9450506020611acd8782880161180e565b9350506040611ade87828801611761565b925050606085013567ffffffffffffffff811115611aff57611afe6115fb565b5b611b0b87828801611a6a565b91505092959194509250565b5f5f60408385031215611b2d57611b2c6115f7565b5b5f611b3a8582860161180e565b9250506020611b4b8582860161180e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b9957607f821691505b602082108103611bac57611bab611b55565b5b50919050565b5f606082019050611bc55f8301866117d0565b611bd260208301856118db565b611bdf60408301846117d0565b949350505050565b5f81905092915050565b5f611bfb826116b2565b611c058185611be7565b9350611c158185602086016116cc565b80840191505092915050565b5f611c2c8285611bf1565b9150611c388284611bf1565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611c7b82611742565b9150611c8683611742565b925082611c9657611c95611c44565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cd882611742565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611d0a57611d09611ca1565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f611d3982611d15565b611d438185611d1f565b9350611d538185602086016116cc565b611d5c816116da565b840191505092915050565b5f608082019050611d7a5f8301876117d0565b611d8760208301866117d0565b611d9460408301856118db565b8181036060830152611da68184611d2f565b905095945050505050565b5f81519050611dbf8161162a565b92915050565b5f60208284031215611dda57611dd96115f7565b5b5f611de784828501611db1565b91505092915050565b5f604082019050611e035f8301856117d0565b611e1060208301846118db565b939250505056fea26469706673582212206a4e2a341ca78d6371e23d446fbea29967029bbd33e2a3e156cb3ffc2540de6b64736f6c63430008220033436f6e646974696f6e20323a20626c6f636b2e74696d657374616d70202520313730203d3d2030436f6e646974696f6e20313a20626c6f636b2e74696d657374616d7020252031373020213d2030a26469706673582212201b1f6d80e0a3e90f2b4c215d45aeaa59c9249e6f2cf01a2c699632df952a18ce64736f6c63430008220033","sourceMap":"165:1208:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:69;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;209:27:135;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;444:927:135;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;324:69:135;364:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;358:3;;:28;;;;;;;;;;;;;;;;;;324:69::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;209:27:135:-;;;;;;;;;;;;;:::o;4465:186:6:-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;444:927:135:-;481:54;;;;;;;;;;;;;;;;;;:11;:54::i;:::-;351:42:0;583:7:135;;;591:3;583:12;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:51;;;;;;;;;;;;;;;;;;640:15;605:11;:51::i;:::-;351:42:0;778:13:135;;;792:5;;;;;;;;;;;778:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:66;;;;;;;;;;;;;;;;;;853:3;;;;;;;;;;;:13;;;867:5;;;;;;;;;;;853:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;808:11;:66::i;:::-;884:3;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;909:65;;;;;;;;;;;;;;;;;;953:3;;;;;;;;;;;:13;;;967:5;;;;;;;;;;;953:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;909:11;:65::i;:::-;1025:54;;;;;;;;;;;;;;;;;;:11;:54::i;:::-;351:42:0;1089:7:135;;;1097:5;1089:14;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1113:51;;;;;;;;;;;;;;;;;;1148:15;1113:11;:51::i;:::-;1174:66;;;;;;;;;;;;;;;;;;1219:3;;;;;;;;;;;:13;;;1233:5;;;;;;;;;;;1219:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1174:11;:66::i;:::-;1250:3;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1275:65;;;;;;;;;;;;;;;;;;1319:3;;;;;;;;;;;:13;;;1333:5;;;;;;;;;;;1319:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:11;:65::i;:::-;351:42:0;1350:12:135;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:927::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;6018:121:15:-;6073:59;6128:2;6089:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:15;:59::i;:::-;6018:121;:::o;6966:145::-;7033:71;7096:2;7100;7049:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7033:15;:71::i;:::-;6966:145;;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;186:268::-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:60::-;8446:3;8467:5;8460:12;;8418:60;;;:::o;8484:142::-;8534:9;8567:53;8585:34;8594:24;8612:5;8594:24;:::i;:::-;8585:34;:::i;:::-;8567:53;:::i;:::-;8554:66;;8484:142;;;:::o;8632:126::-;8682:9;8715:37;8746:5;8715:37;:::i;:::-;8702:50;;8632:126;;;:::o;8764:152::-;8840:9;8873:37;8904:5;8873:37;:::i;:::-;8860:50;;8764:152;;;:::o;8922:183::-;9035:63;9092:5;9035:63;:::i;:::-;9030:3;9023:76;8922:183;;:::o;9111:274::-;9230:4;9268:2;9257:9;9253:18;9245:26;;9281:97;9375:1;9364:9;9360:17;9351:6;9281:97;:::i;:::-;9111:274;;;;:::o;9391:152::-;9496:6;9530:5;9524:12;9514:22;;9391:152;;;:::o;9549:222::-;9686:11;9720:6;9715:3;9708:19;9760:4;9755:3;9751:14;9736:29;;9549:222;;;;:::o;9777:170::-;9882:4;9905:3;9897:11;;9935:4;9930:3;9926:14;9918:22;;9777:170;;;:::o;9953:113::-;10019:6;10053:5;10047:12;10037:22;;9953:113;;;:::o;10072:173::-;10160:11;10194:6;10189:3;10182:19;10234:4;10229:3;10225:14;10210:29;;10072:173;;;;:::o;10251:131::-;10317:4;10340:3;10332:11;;10370:4;10365:3;10361:14;10353:22;;10251:131;;;:::o;10388:149::-;10424:7;10464:66;10457:5;10453:78;10442:89;;10388:149;;;:::o;10543:105::-;10618:23;10635:5;10618:23;:::i;:::-;10613:3;10606:36;10543:105;;:::o;10654:175::-;10721:10;10742:44;10782:3;10774:6;10742:44;:::i;:::-;10818:4;10813:3;10809:14;10795:28;;10654:175;;;;:::o;10835:112::-;10904:4;10936;10931:3;10927:14;10919:22;;10835:112;;;:::o;10981:704::-;11088:3;11117:53;11164:5;11117:53;:::i;:::-;11186:75;11254:6;11249:3;11186:75;:::i;:::-;11179:82;;11285:55;11334:5;11285:55;:::i;:::-;11363:7;11394:1;11379:281;11404:6;11401:1;11398:13;11379:281;;;11480:6;11474:13;11507:61;11564:3;11549:13;11507:61;:::i;:::-;11500:68;;11591:59;11643:6;11591:59;:::i;:::-;11581:69;;11439:221;11426:1;11423;11419:9;11414:14;;11379:281;;;11383:14;11676:3;11669:10;;11093:592;;;10981:704;;;;:::o;11783:730::-;11918:3;11954:4;11949:3;11945:14;12045:4;12038:5;12034:16;12028:23;12098:3;12092:4;12088:14;12081:4;12076:3;12072:14;12065:38;12124:73;12192:4;12178:12;12124:73;:::i;:::-;12116:81;;11969:239;12295:4;12288:5;12284:16;12278:23;12348:3;12342:4;12338:14;12331:4;12326:3;12322:14;12315:38;12374:101;12470:4;12456:12;12374:101;:::i;:::-;12366:109;;12218:268;12503:4;12496:11;;11923:590;11783:730;;;;:::o;12519:308::-;12664:10;12699:122;12817:3;12809:6;12699:122;:::i;:::-;12685:136;;12519:308;;;;:::o;12833:151::-;12941:4;12973;12968:3;12964:14;12956:22;;12833:151;;;:::o;13086:1215::-;13281:3;13310:92;13396:5;13310:92;:::i;:::-;13418:124;13535:6;13530:3;13418:124;:::i;:::-;13411:131;;13568:3;13613:4;13605:6;13601:17;13596:3;13592:27;13643:94;13731:5;13643:94;:::i;:::-;13760:7;13791:1;13776:480;13801:6;13798:1;13795:13;13776:480;;;13872:9;13866:4;13862:20;13857:3;13850:33;13923:6;13917:13;13951:140;14086:4;14071:13;13951:140;:::i;:::-;13943:148;;14114:98;14205:6;14114:98;:::i;:::-;14104:108;;14241:4;14236:3;14232:14;14225:21;;13836:420;13823:1;13820;13816:9;13811:14;;13776:480;;;13780:14;14272:4;14265:11;;14292:3;14285:10;;13286:1015;;;;;13086:1215;;;;:::o;14307:525::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:184;14820:4;14811:6;14641:184;:::i;:::-;14633:192;;14307:525;;;;:::o;14838:194::-;14947:11;14981:6;14976:3;14969:19;15021:4;15016:3;15012:14;14997:29;;14838:194;;;;:::o;15066:991::-;15205:3;15234:64;15292:5;15234:64;:::i;:::-;15314:96;15403:6;15398:3;15314:96;:::i;:::-;15307:103;;15436:3;15481:4;15473:6;15469:17;15464:3;15460:27;15511:66;15571:5;15511:66;:::i;:::-;15600:7;15631:1;15616:396;15641:6;15638:1;15635:13;15616:396;;;15712:9;15706:4;15702:20;15697:3;15690:33;15763:6;15757:13;15791:84;15870:4;15855:13;15791:84;:::i;:::-;15783:92;;15898:70;15961:6;15898:70;:::i;:::-;15888:80;;15997:4;15992:3;15988:14;15981:21;;15676:336;15663:1;15660;15656:9;15651:14;;15616:396;;;15620:14;16028:4;16021:11;;16048:3;16041:10;;15210:847;;;;;15066:991;;;;:::o;16063:413::-;16226:4;16264:2;16253:9;16249:18;16241:26;;16313:9;16307:4;16303:20;16299:1;16288:9;16284:17;16277:47;16341:128;16464:4;16455:6;16341:128;:::i;:::-;16333:136;;16063:413;;;;:::o;16482:144::-;16579:6;16613:5;16607:12;16597:22;;16482:144;;;:::o;16632:214::-;16761:11;16795:6;16790:3;16783:19;16835:4;16830:3;16826:14;16811:29;;16632:214;;;;:::o;16852:162::-;16949:4;16972:3;16964:11;;17002:4;16997:3;16993:14;16985:22;;16852:162;;;:::o;17096:639::-;17215:3;17251:4;17246:3;17242:14;17338:4;17331:5;17327:16;17321:23;17357:63;17414:4;17409:3;17405:14;17391:12;17357:63;:::i;:::-;17266:164;17517:4;17510:5;17506:16;17500:23;17570:3;17564:4;17560:14;17553:4;17548:3;17544:14;17537:38;17596:101;17692:4;17678:12;17596:101;:::i;:::-;17588:109;;17440:268;17725:4;17718:11;;17220:515;17096:639;;;;:::o;17741:276::-;17870:10;17905:106;18007:3;17999:6;17905:106;:::i;:::-;17891:120;;17741:276;;;;:::o;18023:143::-;18123:4;18155;18150:3;18146:14;18138:22;;18023:143;;;:::o;18252:1151::-;18431:3;18460:84;18538:5;18460:84;:::i;:::-;18560:116;18669:6;18664:3;18560:116;:::i;:::-;18553:123;;18702:3;18747:4;18739:6;18735:17;18730:3;18726:27;18777:86;18857:5;18777:86;:::i;:::-;18886:7;18917:1;18902:456;18927:6;18924:1;18921:13;18902:456;;;18998:9;18992:4;18988:20;18983:3;18976:33;19049:6;19043:13;19077:124;19196:4;19181:13;19077:124;:::i;:::-;19069:132;;19224:90;19307:6;19224:90;:::i;:::-;19214:100;;19343:4;19338:3;19334:14;19327:21;;18962:396;18949:1;18946;18942:9;18937:14;;18902:456;;;18906:14;19374:4;19367:11;;19394:3;19387:10;;18436:967;;;;;18252:1151;;;;:::o;19409:493::-;19612:4;19650:2;19639:9;19635:18;19627:26;;19699:9;19693:4;19689:20;19685:1;19674:9;19670:17;19663:47;19727:168;19890:4;19881:6;19727:168;:::i;:::-;19719:176;;19409:493;;;;:::o;19908:90::-;19942:7;19985:5;19978:13;19971:21;19960:32;;19908:90;;;:::o;20004:109::-;20085:21;20100:5;20085:21;:::i;:::-;20080:3;20073:34;20004:109;;:::o;20119:210::-;20206:4;20244:2;20233:9;20229:18;20221:26;;20257:65;20319:1;20308:9;20304:17;20295:6;20257:65;:::i;:::-;20119:210;;;;:::o;20335:180::-;20383:77;20380:1;20373:88;20480:4;20477:1;20470:15;20504:4;20501:1;20494:15;20521:320;20565:6;20602:1;20596:4;20592:12;20582:22;;20649:1;20643:4;20639:12;20670:18;20660:81;;20726:4;20718:6;20714:17;20704:27;;20660:81;20788:2;20780:6;20777:14;20757:18;20754:38;20751:84;;20807:18;;:::i;:::-;20751:84;20572:269;20521:320;;;:::o;20847:87::-;20894:7;20923:5;20912:16;;20847:87;;;:::o;20940:77::-;20977:7;21006:5;20995:16;;20940:77;;;:::o;21023:162::-;21083:9;21116:63;21134:44;21143:34;21171:5;21143:34;:::i;:::-;21134:44;:::i;:::-;21116:63;:::i;:::-;21103:76;;21023:162;;;:::o;21191:151::-;21288:47;21329:5;21288:47;:::i;:::-;21283:3;21276:60;21191:151;;:::o;21348:242::-;21451:4;21489:2;21478:9;21474:18;21466:26;;21502:81;21580:1;21569:9;21565:17;21556:6;21502:81;:::i;:::-;21348:242;;;;:::o;21596:118::-;21683:24;21701:5;21683:24;:::i;:::-;21678:3;21671:37;21596:118;;:::o;21720:222::-;21813:4;21851:2;21840:9;21836:18;21828:26;;21864:71;21932:1;21921:9;21917:17;21908:6;21864:71;:::i;:::-;21720:222;;;;:::o;22029:117::-;22138:1;22135;22128:12;22275:122;22348:24;22366:5;22348:24;:::i;:::-;22341:5;22338:35;22328:63;;22387:1;22384;22377:12;22328:63;22275:122;:::o;22403:143::-;22460:5;22491:6;22485:13;22476:22;;22507:33;22534:5;22507:33;:::i;:::-;22403:143;;;;:::o;22552:351::-;22622:6;22671:2;22659:9;22650:7;22646:23;22642:32;22639:119;;;22677:79;;:::i;:::-;22639:119;22797:1;22822:64;22878:7;22869:6;22858:9;22854:22;22822:64;:::i;:::-;22812:74;;22768:128;22552:351;;;;:::o;22909:116::-;22979:21;22994:5;22979:21;:::i;:::-;22972:5;22969:32;22959:60;;23015:1;23012;23005:12;22959:60;22909:116;:::o;23031:137::-;23085:5;23116:6;23110:13;23101:22;;23132:30;23156:5;23132:30;:::i;:::-;23031:137;;;;:::o;23174:345::-;23241:6;23290:2;23278:9;23269:7;23265:23;23261:32;23258:119;;;23296:79;;:::i;:::-;23258:119;23416:1;23441:61;23494:7;23485:6;23474:9;23470:22;23441:61;:::i;:::-;23431:71;;23387:125;23174:345;;;;:::o;23525:89::-;23574:7;23603:5;23592:16;;23525:89;;;:::o;23620:166::-;23682:9;23715:65;23733:46;23742:36;23772:5;23742:36;:::i;:::-;23733:46;:::i;:::-;23715:65;:::i;:::-;23702:78;;23620:166;;;:::o;23792:155::-;23891:49;23934:5;23891:49;:::i;:::-;23886:3;23879:62;23792:155;;:::o;23953:246::-;24058:4;24096:2;24085:9;24081:18;24073:26;;24109:83;24189:1;24178:9;24174:17;24165:6;24109:83;:::i;:::-;23953:246;;;;:::o;24205:77::-;24242:7;24271:5;24260:16;;24205:77;;;:::o;24288:118::-;24375:24;24393:5;24375:24;:::i;:::-;24370:3;24363:37;24288:118;;:::o;24412:332::-;24533:4;24571:2;24560:9;24556:18;24548:26;;24584:71;24652:1;24641:9;24637:17;24628:6;24584:71;:::i;:::-;24665:72;24733:2;24722:9;24718:18;24709:6;24665:72;:::i;:::-;24412:332;;;;;:::o;24750:122::-;24823:24;24841:5;24823:24;:::i;:::-;24816:5;24813:35;24803:63;;24862:1;24859;24852:12;24803:63;24750:122;:::o;24878:143::-;24935:5;24966:6;24960:13;24951:22;;24982:33;25009:5;24982:33;:::i;:::-;24878:143;;;;:::o;25027:351::-;25097:6;25146:2;25134:9;25125:7;25121:23;25117:32;25114:119;;;25152:79;;:::i;:::-;25114:119;25272:1;25297:64;25353:7;25344:6;25333:9;25329:22;25297:64;:::i;:::-;25287:74;;25243:128;25027:351;;;;:::o;25384:169::-;25468:11;25502:6;25497:3;25490:19;25542:4;25537:3;25533:14;25518:29;;25384:169;;;;:::o;25559:377::-;25647:3;25675:39;25708:5;25675:39;:::i;:::-;25730:71;25794:6;25789:3;25730:71;:::i;:::-;25723:78;;25810:65;25868:6;25863:3;25856:4;25849:5;25845:16;25810:65;:::i;:::-;25900:29;25922:6;25900:29;:::i;:::-;25895:3;25891:39;25884:46;;25651:285;25559:377;;;;:::o;25942:313::-;26055:4;26093:2;26082:9;26078:18;26070:26;;26142:9;26136:4;26132:20;26128:1;26117:9;26113:17;26106:47;26170:78;26243:4;26234:6;26170:78;:::i;:::-;26162:86;;25942:313;;;;:::o;26261:118::-;26348:24;26366:5;26348:24;:::i;:::-;26343:3;26336:37;26261:118;;:::o;26385:423::-;26526:4;26564:2;26553:9;26549:18;26541:26;;26613:9;26607:4;26603:20;26599:1;26588:9;26584:17;26577:47;26641:78;26714:4;26705:6;26641:78;:::i;:::-;26633:86;;26729:72;26797:2;26786:9;26782:18;26773:6;26729:72;:::i;:::-;26385:423;;;;;:::o;26814:180::-;26862:77;26859:1;26852:88;26959:4;26956:1;26949:15;26983:4;26980:1;26973:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","nft()":"47ccca02","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testMint()":"9642ddaf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nft\",\"outputs\":[{\"internalType\":\"contract TimeManipulation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S14_TimeManipulation/test/TimeManipulation.t.sol\":\"TimeManipulationTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5\",\"dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b\",\"dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/S14_TimeManipulation/src/TimeManipulation.sol\":{\"keccak256\":\"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178\",\"dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ\"]},\"src/S14_TimeManipulation/test/TimeManipulation.t.sol\":{\"keccak256\":\"0x00216f91b285fa39ef2993c448286d9b0b3587ba85266497516b0eb9f6953686\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://01d1cd88c28bdba44c95bb444bfffa64e43424fba6ee27aeb35cc891d94e3b29\",\"dweb:/ipfs/QmWsh1ytMcFi4SqtadCpDirZBjZVadofVZ13jT9fkaa2VQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nft","outputs":[{"internalType":"contract TimeManipulation","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testMint"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S14_TimeManipulation/test/TimeManipulation.t.sol":"TimeManipulationTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xf6bb0dc431a9c50e25756412ec14cfcd4dc61dd40b8dc0e1b58ec09fce6d5564","urls":["bzz-raw://eb87fef7e8ed754b8600cd5d42e4f23128059006368ffd19e4d50cc166471ee5","dweb:/ipfs/Qmc1vy1cevKreGUsG7S79gyhNvDtPnNz9qG47eYVHmMKLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f","urls":["bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3","dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x22538095debfab5015da181dbd554af7f4400c4e49d3c32eb827273ac4b533a4","urls":["bzz-raw://4752d8e8dc2014f6125b801f6327df2508a6801934405c10fe4c61fcab8a3a6b","dweb:/ipfs/QmUihiLkzV2a87ZnipnB1n2KQ3fFSkA4eX1ZfGtpWcyQ2P"],"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/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e","urls":["bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377","dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/S14_TimeManipulation/src/TimeManipulation.sol":{"keccak256":"0xc3698ce4064e29684f587dd5d274e3973164b64f2346ff2bc5df9fe5c6a03f33","urls":["bzz-raw://92f4b87d30842e7affc84afc95c2f8a7624201e805e5898b028357bf81962178","dweb:/ipfs/Qmefv8HChcrSW6NDkE4M5ap2Lf4Wgims4e3fHcidkAKRfZ"],"license":"MIT"},"src/S14_TimeManipulation/test/TimeManipulation.t.sol":{"keccak256":"0x00216f91b285fa39ef2993c448286d9b0b3587ba85266497516b0eb9f6953686","urls":["bzz-raw://01d1cd88c28bdba44c95bb444bfffa64e43424fba6ee27aeb35cc891d94e3b29","dweb:/ipfs/QmWsh1ytMcFi4SqtadCpDirZBjZVadofVZ13jT9fkaa2VQ"],"license":"UNLICENSED"}},"version":1},"id":135} \ No newline at end of file diff --git a/out/Timelock.sol/Timelock.json b/out/Timelock.sol/Timelock.json index 0fc0ae2e..af72182b 100644 --- a/out/Timelock.sol/Timelock.json +++ b/out/Timelock.sol/Timelock.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"GRACE_PERIOD","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cancelTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTxHash","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"queueTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"queuedTransactions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"CancelTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecuteTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"QueueTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5060405161168d38038061168d8339818101604052810190602e919060ab565b80600181905550335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060d1565b5f5ffd5b5f819050919050565b608d81607d565b81146096575f5ffd5b50565b5f8151905060a5816086565b92915050565b5f6020828403121560bd5760bc6079565b5b5f60c8848285016099565b91505092915050565b6115af806100de5f395ff3fe608060405260043610610090575f3560e01c8063796b89b911610058578063796b89b91461018e5780638f283970146101b8578063c1a287e2146101e0578063f2b065371461020a578063f851a4401461024657610090565b806304a71576146100945780630825f38f146100d05780633a66f90114610100578063591fcdfe1461013c5780636a42b8f814610164575b5f5ffd5b34801561009f575f5ffd5b506100ba60048036038101906100b59190610c82565b610270565b6040516100c79190610d49565b60405180910390f35b6100ea60048036038101906100e59190610c82565b6102ab565b6040516100f79190610dc2565b60405180910390f35b34801561010b575f5ffd5b5061012660048036038101906101219190610c82565b6105c1565b6040516101339190610d49565b60405180910390f35b348015610147575f5ffd5b50610162600480360381019061015d9190610c82565b610742565b005b34801561016f575f5ffd5b506101786108c2565b6040516101859190610df1565b60405180910390f35b348015610199575f5ffd5b506101a26108c8565b6040516101af9190610df1565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d99190610e0a565b6108cf565b005b3480156101eb575f5ffd5b506101f46109c2565b6040516102019190610df1565b60405180910390f35b348015610215575f5ffd5b50610230600480360381019061022b9190610e5f565b6109c9565b60405161023d9190610ea4565b60405180910390f35b348015610251575f5ffd5b5061025a6109e6565b6040516102679190610ecc565b60405180910390f35b5f858585858560405160200161028a959493929190610f37565b60405160208183030381529060405280519060200120905095945050505050565b60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033290610fe0565b60405180910390fd5b5f6103498787878787610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039f9061106e565b60405180910390fd5b826103b16108c8565b10156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990611122565b60405180910390fd5b62093a8083610401919061116d565b6104096108c8565b111561044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190611210565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555060605f865103610484578490506104b0565b85805190602001208560405160200161049e9291906112b3565b60405160208183030381529060405290505b5f5f8973ffffffffffffffffffffffffffffffffffffffff1689846040516104d891906112da565b5f6040518083038185875af1925050503d805f8114610512576040519150601f19603f3d011682016040523d82523d5f602084013e610517565b606091505b50915091508161055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390611360565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b6040516105a9949392919061137e565b60405180910390a38094505050505095945050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790610fe0565b60405180910390fd5b60015461065b6108c8565b610665919061116d565b8210156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611465565b60405180910390fd5b5f6106b58787878787610270565b9050600160025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f8888888860405161072d949392919061137e565b60405180910390a38091505095945050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790610fe0565b60405180910390fd5b5f6107de8686868686610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff1661083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906114f3565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87878787876040516108b2949392919061137e565b60405180910390a3505050505050565b60015481565b5f42905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061155b565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a250565b62093a8081565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4482610a1b565b9050919050565b610a5481610a3a565b8114610a5e575f5ffd5b50565b5f81359050610a6f81610a4b565b92915050565b5f819050919050565b610a8781610a75565b8114610a91575f5ffd5b50565b5f81359050610aa281610a7e565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610af682610ab0565b810181811067ffffffffffffffff82111715610b1557610b14610ac0565b5b80604052505050565b5f610b27610a0a565b9050610b338282610aed565b919050565b5f67ffffffffffffffff821115610b5257610b51610ac0565b5b610b5b82610ab0565b9050602081019050919050565b828183375f83830152505050565b5f610b88610b8384610b38565b610b1e565b905082815260208101848484011115610ba457610ba3610aac565b5b610baf848285610b68565b509392505050565b5f82601f830112610bcb57610bca610aa8565b5b8135610bdb848260208601610b76565b91505092915050565b5f67ffffffffffffffff821115610bfe57610bfd610ac0565b5b610c0782610ab0565b9050602081019050919050565b5f610c26610c2184610be4565b610b1e565b905082815260208101848484011115610c4257610c41610aac565b5b610c4d848285610b68565b509392505050565b5f82601f830112610c6957610c68610aa8565b5b8135610c79848260208601610c14565b91505092915050565b5f5f5f5f5f60a08688031215610c9b57610c9a610a13565b5b5f610ca888828901610a61565b9550506020610cb988828901610a94565b945050604086013567ffffffffffffffff811115610cda57610cd9610a17565b5b610ce688828901610bb7565b935050606086013567ffffffffffffffff811115610d0757610d06610a17565b5b610d1388828901610c55565b9250506080610d2488828901610a94565b9150509295509295909350565b5f819050919050565b610d4381610d31565b82525050565b5f602082019050610d5c5f830184610d3a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610d9482610d62565b610d9e8185610d6c565b9350610dae818560208601610d7c565b610db781610ab0565b840191505092915050565b5f6020820190508181035f830152610dda8184610d8a565b905092915050565b610deb81610a75565b82525050565b5f602082019050610e045f830184610de2565b92915050565b5f60208284031215610e1f57610e1e610a13565b5b5f610e2c84828501610a61565b91505092915050565b610e3e81610d31565b8114610e48575f5ffd5b50565b5f81359050610e5981610e35565b92915050565b5f60208284031215610e7457610e73610a13565b5b5f610e8184828501610e4b565b91505092915050565b5f8115159050919050565b610e9e81610e8a565b82525050565b5f602082019050610eb75f830184610e95565b92915050565b610ec681610a3a565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f610f0982610ee5565b610f138185610eef565b9350610f23818560208601610d7c565b610f2c81610ab0565b840191505092915050565b5f60a082019050610f4a5f830188610ebd565b610f576020830187610de2565b8181036040830152610f698186610eff565b90508181036060830152610f7d8185610d8a565b9050610f8c6080830184610de2565b9695505050505050565b7f54696d656c6f636b3a2043616c6c6572206e6f742061646d696e0000000000005f82015250565b5f610fca601a83610eef565b9150610fd582610f96565b602082019050919050565b5f6020820190508181035f830152610ff781610fbe565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000602082015250565b5f611058603d83610eef565b915061106382610ffe565b604082019050919050565b5f6020820190508181035f8301526110858161104c565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060208201527f6c6f636b2e000000000000000000000000000000000000000000000000000000604082015250565b5f61110c604583610eef565b91506111178261108c565b606082019050919050565b5f6020820190508181035f83015261113981611100565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61117782610a75565b915061118283610a75565b925082820190508082111561119a57611199611140565b5b92915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206973207374616c652e00000000000000000000000000602082015250565b5f6111fa603383610eef565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61127361126e8261122e565b611259565b82525050565b5f81905092915050565b5f61128d82610d62565b6112978185611279565b93506112a7818560208601610d7c565b80840191505092915050565b5f6112be8285611262565b6004820191506112ce8284611283565b91508190509392505050565b5f6112e58284611283565b915081905092915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000602082015250565b5f61134a603d83610eef565b9150611355826112f0565b604082019050919050565b5f6020820190508181035f8301526113778161133e565b9050919050565b5f6080820190506113915f830187610de2565b81810360208301526113a38186610eff565b905081810360408301526113b78185610d8a565b90506113c66060830184610de2565b95945050505050565b7f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374695f8201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360208201527f66792064656c61792e0000000000000000000000000000000000000000000000604082015250565b5f61144f604983610eef565b915061145a826113cf565b606082019050919050565b5f6020820190508181035f83015261147c81611443565b9050919050565b7f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a205472615f8201527f6e73616374696f6e206861736e2774206265656e207175657565642e00000000602082015250565b5f6114dd603c83610eef565b91506114e882611483565b604082019050919050565b5f6020820190508181035f83015261150a816114d1565b9050919050565b7f54696d656c6f636b3a2043616c6c6572206e6f742054696d656c6f636b0000005f82015250565b5f611545601d83610eef565b915061155082611511565b602082019050919050565b5f6020820190508181035f83015261157281611539565b905091905056fea264697066735822122005fca8fe397772333edfacb3e12ce4575c03d45548aa399da95db3f705ef637964736f6c63430008220033","sourceMap":"58:5865:104:-:0;;;1416:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1459:6;1451:5;:14;;;;1483:10;1475:5;;:18;;;;;;;;;;;;;;;;;;1416:84;58:5865;;88:117:145;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;58:5865:104:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610090575f3560e01c8063796b89b911610058578063796b89b91461018e5780638f283970146101b8578063c1a287e2146101e0578063f2b065371461020a578063f851a4401461024657610090565b806304a71576146100945780630825f38f146100d05780633a66f90114610100578063591fcdfe1461013c5780636a42b8f814610164575b5f5ffd5b34801561009f575f5ffd5b506100ba60048036038101906100b59190610c82565b610270565b6040516100c79190610d49565b60405180910390f35b6100ea60048036038101906100e59190610c82565b6102ab565b6040516100f79190610dc2565b60405180910390f35b34801561010b575f5ffd5b5061012660048036038101906101219190610c82565b6105c1565b6040516101339190610d49565b60405180910390f35b348015610147575f5ffd5b50610162600480360381019061015d9190610c82565b610742565b005b34801561016f575f5ffd5b506101786108c2565b6040516101859190610df1565b60405180910390f35b348015610199575f5ffd5b506101a26108c8565b6040516101af9190610df1565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d99190610e0a565b6108cf565b005b3480156101eb575f5ffd5b506101f46109c2565b6040516102019190610df1565b60405180910390f35b348015610215575f5ffd5b50610230600480360381019061022b9190610e5f565b6109c9565b60405161023d9190610ea4565b60405180910390f35b348015610251575f5ffd5b5061025a6109e6565b6040516102679190610ecc565b60405180910390f35b5f858585858560405160200161028a959493929190610f37565b60405160208183030381529060405280519060200120905095945050505050565b60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033290610fe0565b60405180910390fd5b5f6103498787878787610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039f9061106e565b60405180910390fd5b826103b16108c8565b10156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990611122565b60405180910390fd5b62093a8083610401919061116d565b6104096108c8565b111561044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190611210565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555060605f865103610484578490506104b0565b85805190602001208560405160200161049e9291906112b3565b60405160208183030381529060405290505b5f5f8973ffffffffffffffffffffffffffffffffffffffff1689846040516104d891906112da565b5f6040518083038185875af1925050503d805f8114610512576040519150601f19603f3d011682016040523d82523d5f602084013e610517565b606091505b50915091508161055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390611360565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b6040516105a9949392919061137e565b60405180910390a38094505050505095945050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790610fe0565b60405180910390fd5b60015461065b6108c8565b610665919061116d565b8210156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611465565b60405180910390fd5b5f6106b58787878787610270565b9050600160025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f8888888860405161072d949392919061137e565b60405180910390a38091505095945050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790610fe0565b60405180910390fd5b5f6107de8686868686610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff1661083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906114f3565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87878787876040516108b2949392919061137e565b60405180910390a3505050505050565b60015481565b5f42905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061155b565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a250565b62093a8081565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4482610a1b565b9050919050565b610a5481610a3a565b8114610a5e575f5ffd5b50565b5f81359050610a6f81610a4b565b92915050565b5f819050919050565b610a8781610a75565b8114610a91575f5ffd5b50565b5f81359050610aa281610a7e565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610af682610ab0565b810181811067ffffffffffffffff82111715610b1557610b14610ac0565b5b80604052505050565b5f610b27610a0a565b9050610b338282610aed565b919050565b5f67ffffffffffffffff821115610b5257610b51610ac0565b5b610b5b82610ab0565b9050602081019050919050565b828183375f83830152505050565b5f610b88610b8384610b38565b610b1e565b905082815260208101848484011115610ba457610ba3610aac565b5b610baf848285610b68565b509392505050565b5f82601f830112610bcb57610bca610aa8565b5b8135610bdb848260208601610b76565b91505092915050565b5f67ffffffffffffffff821115610bfe57610bfd610ac0565b5b610c0782610ab0565b9050602081019050919050565b5f610c26610c2184610be4565b610b1e565b905082815260208101848484011115610c4257610c41610aac565b5b610c4d848285610b68565b509392505050565b5f82601f830112610c6957610c68610aa8565b5b8135610c79848260208601610c14565b91505092915050565b5f5f5f5f5f60a08688031215610c9b57610c9a610a13565b5b5f610ca888828901610a61565b9550506020610cb988828901610a94565b945050604086013567ffffffffffffffff811115610cda57610cd9610a17565b5b610ce688828901610bb7565b935050606086013567ffffffffffffffff811115610d0757610d06610a17565b5b610d1388828901610c55565b9250506080610d2488828901610a94565b9150509295509295909350565b5f819050919050565b610d4381610d31565b82525050565b5f602082019050610d5c5f830184610d3a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610d9482610d62565b610d9e8185610d6c565b9350610dae818560208601610d7c565b610db781610ab0565b840191505092915050565b5f6020820190508181035f830152610dda8184610d8a565b905092915050565b610deb81610a75565b82525050565b5f602082019050610e045f830184610de2565b92915050565b5f60208284031215610e1f57610e1e610a13565b5b5f610e2c84828501610a61565b91505092915050565b610e3e81610d31565b8114610e48575f5ffd5b50565b5f81359050610e5981610e35565b92915050565b5f60208284031215610e7457610e73610a13565b5b5f610e8184828501610e4b565b91505092915050565b5f8115159050919050565b610e9e81610e8a565b82525050565b5f602082019050610eb75f830184610e95565b92915050565b610ec681610a3a565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f610f0982610ee5565b610f138185610eef565b9350610f23818560208601610d7c565b610f2c81610ab0565b840191505092915050565b5f60a082019050610f4a5f830188610ebd565b610f576020830187610de2565b8181036040830152610f698186610eff565b90508181036060830152610f7d8185610d8a565b9050610f8c6080830184610de2565b9695505050505050565b7f54696d656c6f636b3a2043616c6c6572206e6f742061646d696e0000000000005f82015250565b5f610fca601a83610eef565b9150610fd582610f96565b602082019050919050565b5f6020820190508181035f830152610ff781610fbe565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000602082015250565b5f611058603d83610eef565b915061106382610ffe565b604082019050919050565b5f6020820190508181035f8301526110858161104c565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060208201527f6c6f636b2e000000000000000000000000000000000000000000000000000000604082015250565b5f61110c604583610eef565b91506111178261108c565b606082019050919050565b5f6020820190508181035f83015261113981611100565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61117782610a75565b915061118283610a75565b925082820190508082111561119a57611199611140565b5b92915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206973207374616c652e00000000000000000000000000602082015250565b5f6111fa603383610eef565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61127361126e8261122e565b611259565b82525050565b5f81905092915050565b5f61128d82610d62565b6112978185611279565b93506112a7818560208601610d7c565b80840191505092915050565b5f6112be8285611262565b6004820191506112ce8284611283565b91508190509392505050565b5f6112e58284611283565b915081905092915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000602082015250565b5f61134a603d83610eef565b9150611355826112f0565b604082019050919050565b5f6020820190508181035f8301526113778161133e565b9050919050565b5f6080820190506113915f830187610de2565b81810360208301526113a38186610eff565b905081810360408301526113b78185610d8a565b90506113c66060830184610de2565b95945050505050565b7f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374695f8201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360208201527f66792064656c61792e0000000000000000000000000000000000000000000000604082015250565b5f61144f604983610eef565b915061145a826113cf565b606082019050919050565b5f6020820190508181035f83015261147c81611443565b9050919050565b7f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a205472615f8201527f6e73616374696f6e206861736e2774206265656e207175657565642e00000000602082015250565b5f6114dd603c83610eef565b91506114e882611483565b604082019050919050565b5f6020820190508181035f83015261150a816114d1565b9050919050565b7f54696d656c6f636b3a2043616c6c6572206e6f742054696d656c6f636b0000005f82015250565b5f611545601d83610eef565b915061155082611511565b602082019050919050565b5f6020820190508181035f83015261157281611539565b905091905056fea264697066735822122005fca8fe397772333edfacb3e12ce4575c03d45548aa399da95db3f705ef637964736f6c63430008220033","sourceMap":"58:5865:104:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5646:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3731:1681;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2140:691;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2938:611;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;843:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5477:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1594:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;752:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;898:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;707:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5646:275;5822:7;5869:6;5877:5;5884:9;5895:4;5901:11;5858:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5848:66;;;;;;5841:73;;5646:275;;;;;;;:::o;3731:1681::-;3889:12;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3913:14:::1;3930:54;3940:6;3948:5;3955:9;3966:4;3972:11;3930:9;:54::i;:::-;3913:71;;4056:18;:26;4075:6;4056:26;;;;;;;;;;;;;;;;;;;;;4048:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;4237:11;4214:19;:17;:19::i;:::-;:34;;4206:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;788:6;4398:11;:26;;;;:::i;:::-;4375:19;:17;:19::i;:::-;:49;;4367:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;4552:5;4523:18;:26;4542:6;4523:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;4595:21;4657:1;4636:9;4630:23;:28:::0;4626:453:::1;;4685:4;4674:15;;4626:453;;;5049:9;5033:27;;;;;;5063:4;5009:59;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4998:70;;4626:453;5123:12;5137:23;5164:6;:11;;5183:5;5190:8;5164:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5122:77;;;;5217:7;5209:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5333:6;5306:71;;5325:6;5306:71;5341:5;5348:9;5359:4;5365:11;5306:71;;;;;;;;;:::i;:::-;;;;;;;;5395:10;5388:17;;;;;;3731:1681:::0;;;;;;;:::o;2140:691::-;2288:7;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2409:5:::1;;2387:19;:17;:19::i;:::-;:27;;;;:::i;:::-;2372:11;:42;;2364:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;2566:14;2583:54;2593:6;2601:5;2608:9;2619:4;2625:11;2583:9;:54::i;:::-;2566:71;;2712:4;2683:18;:26;2702:6;2683:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2757:6;2732:69;;2749:6;2732:69;2765:5;2772:9;2783:4;2789:11;2732:69;;;;;;;;;:::i;:::-;;;;;;;;2818:6;2811:13;;;2140:691:::0;;;;;;;:::o;2938:611::-;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:14:::1;3168:54;3178:6;3186:5;3193:9;3204:4;3210:11;3168:9;:54::i;:::-;3151:71;;3288:18;:26;3307:6;3288:26;;;;;;;;;;;;;;;;;;;;;3280:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;3451:5;3422:18;:26;3441:6;3422:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3498:6;3472:70;;3490:6;3472:70;3506:5;3513:9;3524:4;3530:11;3472:70;;;;;;;;;:::i;:::-;;;;;;;;3077:472;2938:611:::0;;;;;:::o;843:17::-;;;;:::o;5477:95::-;5527:4;5550:15;5543:22;;5477:95;:::o;1594:126::-;1254:4;1232:27;;:10;:27;;;1224:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:8:::1;1663:5;;:16;;;;;;;;;;;;;;;;;;1704:8;1695:18;;;;;;;;;;;;1594:126:::0;:::o;752:42::-;788:6;752:42;:::o;898:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;707:20::-;;;;;;;;;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:308::-;2221:4;2311:18;2303:6;2300:30;2297:56;;;2333:18;;:::i;:::-;2297:56;2371:29;2393:6;2371:29;:::i;:::-;2363:37;;2455:4;2449;2445:15;2437:23;;2159:308;;;:::o;2473:148::-;2571:6;2566:3;2561;2548:30;2612:1;2603:6;2598:3;2594:16;2587:27;2473:148;;;:::o;2627:425::-;2705:5;2730:66;2746:49;2788:6;2746:49;:::i;:::-;2730:66;:::i;:::-;2721:75;;2819:6;2812:5;2805:21;2857:4;2850:5;2846:16;2895:3;2886:6;2881:3;2877:16;2874:25;2871:112;;;2902:79;;:::i;:::-;2871:112;2992:54;3039:6;3034:3;3029;2992:54;:::i;:::-;2711:341;2627:425;;;;;:::o;3072:340::-;3128:5;3177:3;3170:4;3162:6;3158:17;3154:27;3144:122;;3185:79;;:::i;:::-;3144:122;3302:6;3289:20;3327:79;3402:3;3394:6;3387:4;3379:6;3375:17;3327:79;:::i;:::-;3318:88;;3134:278;3072:340;;;;:::o;3418:307::-;3479:4;3569:18;3561:6;3558:30;3555:56;;;3591:18;;:::i;:::-;3555:56;3629:29;3651:6;3629:29;:::i;:::-;3621:37;;3713:4;3707;3703:15;3695:23;;3418:307;;;:::o;3731:423::-;3808:5;3833:65;3849:48;3890:6;3849:48;:::i;:::-;3833:65;:::i;:::-;3824:74;;3921:6;3914:5;3907:21;3959:4;3952:5;3948:16;3997:3;3988:6;3983:3;3979:16;3976:25;3973:112;;;4004:79;;:::i;:::-;3973:112;4094:54;4141:6;4136:3;4131;4094:54;:::i;:::-;3814:340;3731:423;;;;;:::o;4173:338::-;4228:5;4277:3;4270:4;4262:6;4258:17;4254:27;4244:122;;4285:79;;:::i;:::-;4244:122;4402:6;4389:20;4427:78;4501:3;4493:6;4486:4;4478:6;4474:17;4427:78;:::i;:::-;4418:87;;4234:277;4173:338;;;;:::o;4517:1269::-;4631:6;4639;4647;4655;4663;4712:3;4700:9;4691:7;4687:23;4683:33;4680:120;;;4719:79;;:::i;:::-;4680:120;4839:1;4864:53;4909:7;4900:6;4889:9;4885:22;4864:53;:::i;:::-;4854:63;;4810:117;4966:2;4992:53;5037:7;5028:6;5017:9;5013:22;4992:53;:::i;:::-;4982:63;;4937:118;5122:2;5111:9;5107:18;5094:32;5153:18;5145:6;5142:30;5139:117;;;5175:79;;:::i;:::-;5139:117;5280:63;5335:7;5326:6;5315:9;5311:22;5280:63;:::i;:::-;5270:73;;5065:288;5420:2;5409:9;5405:18;5392:32;5451:18;5443:6;5440:30;5437:117;;;5473:79;;:::i;:::-;5437:117;5578:62;5632:7;5623:6;5612:9;5608:22;5578:62;:::i;:::-;5568:72;;5363:287;5689:3;5716:53;5761:7;5752:6;5741:9;5737:22;5716:53;:::i;:::-;5706:63;;5660:119;4517:1269;;;;;;;;:::o;5792:77::-;5829:7;5858:5;5847:16;;5792:77;;;:::o;5875:118::-;5962:24;5980:5;5962:24;:::i;:::-;5957:3;5950:37;5875:118;;:::o;5999:222::-;6092:4;6130:2;6119:9;6115:18;6107:26;;6143:71;6211:1;6200:9;6196:17;6187:6;6143:71;:::i;:::-;5999:222;;;;:::o;6227:98::-;6278:6;6312:5;6306:12;6296:22;;6227:98;;;:::o;6331:168::-;6414:11;6448:6;6443:3;6436:19;6488:4;6483:3;6479:14;6464:29;;6331:168;;;;:::o;6505:139::-;6594:6;6589:3;6584;6578:23;6635:1;6626:6;6621:3;6617:16;6610:27;6505:139;;;:::o;6650:373::-;6736:3;6764:38;6796:5;6764:38;:::i;:::-;6818:70;6881:6;6876:3;6818:70;:::i;:::-;6811:77;;6897:65;6955:6;6950:3;6943:4;6936:5;6932:16;6897:65;:::i;:::-;6987:29;7009:6;6987:29;:::i;:::-;6982:3;6978:39;6971:46;;6740:283;6650:373;;;;:::o;7029:309::-;7140:4;7178:2;7167:9;7163:18;7155:26;;7227:9;7221:4;7217:20;7213:1;7202:9;7198:17;7191:47;7255:76;7326:4;7317:6;7255:76;:::i;:::-;7247:84;;7029:309;;;;:::o;7344:118::-;7431:24;7449:5;7431:24;:::i;:::-;7426:3;7419:37;7344:118;;:::o;7468:222::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7612:71;7680:1;7669:9;7665:17;7656:6;7612:71;:::i;:::-;7468:222;;;;:::o;7696:329::-;7755:6;7804:2;7792:9;7783:7;7779:23;7775:32;7772:119;;;7810:79;;:::i;:::-;7772:119;7930:1;7955:53;8000:7;7991:6;7980:9;7976:22;7955:53;:::i;:::-;7945:63;;7901:117;7696:329;;;;:::o;8031:122::-;8104:24;8122:5;8104:24;:::i;:::-;8097:5;8094:35;8084:63;;8143:1;8140;8133:12;8084:63;8031:122;:::o;8159:139::-;8205:5;8243:6;8230:20;8221:29;;8259:33;8286:5;8259:33;:::i;:::-;8159:139;;;;:::o;8304:329::-;8363:6;8412:2;8400:9;8391:7;8387:23;8383:32;8380:119;;;8418:79;;:::i;:::-;8380:119;8538:1;8563:53;8608:7;8599:6;8588:9;8584:22;8563:53;:::i;:::-;8553:63;;8509:117;8304:329;;;;:::o;8639:90::-;8673:7;8716:5;8709:13;8702:21;8691:32;;8639:90;;;:::o;8735:109::-;8816:21;8831:5;8816:21;:::i;:::-;8811:3;8804:34;8735:109;;:::o;8850:210::-;8937:4;8975:2;8964:9;8960:18;8952:26;;8988:65;9050:1;9039:9;9035:17;9026:6;8988:65;:::i;:::-;8850:210;;;;:::o;9066:118::-;9153:24;9171:5;9153:24;:::i;:::-;9148:3;9141:37;9066:118;;:::o;9190:222::-;9283:4;9321:2;9310:9;9306:18;9298:26;;9334:71;9402:1;9391:9;9387:17;9378:6;9334:71;:::i;:::-;9190:222;;;;:::o;9418:99::-;9470:6;9504:5;9498:12;9488:22;;9418:99;;;:::o;9523:169::-;9607:11;9641:6;9636:3;9629:19;9681:4;9676:3;9672:14;9657:29;;9523:169;;;;:::o;9698:377::-;9786:3;9814:39;9847:5;9814:39;:::i;:::-;9869:71;9933:6;9928:3;9869:71;:::i;:::-;9862:78;;9949:65;10007:6;10002:3;9995:4;9988:5;9984:16;9949:65;:::i;:::-;10039:29;10061:6;10039:29;:::i;:::-;10034:3;10030:39;10023:46;;9790:285;9698:377;;;;:::o;10081:842::-;10324:4;10362:3;10351:9;10347:19;10339:27;;10376:71;10444:1;10433:9;10429:17;10420:6;10376:71;:::i;:::-;10457:72;10525:2;10514:9;10510:18;10501:6;10457:72;:::i;:::-;10576:9;10570:4;10566:20;10561:2;10550:9;10546:18;10539:48;10604:78;10677:4;10668:6;10604:78;:::i;:::-;10596:86;;10729:9;10723:4;10719:20;10714:2;10703:9;10699:18;10692:48;10757:76;10828:4;10819:6;10757:76;:::i;:::-;10749:84;;10843:73;10911:3;10900:9;10896:19;10887:6;10843:73;:::i;:::-;10081:842;;;;;;;;:::o;10929:176::-;11069:28;11065:1;11057:6;11053:14;11046:52;10929:176;:::o;11111:366::-;11253:3;11274:67;11338:2;11333:3;11274:67;:::i;:::-;11267:74;;11350:93;11439:3;11350:93;:::i;:::-;11468:2;11463:3;11459:12;11452:19;;11111:366;;;:::o;11483:419::-;11649:4;11687:2;11676:9;11672:18;11664:26;;11736:9;11730:4;11726:20;11722:1;11711:9;11707:17;11700:47;11764:131;11890:4;11764:131;:::i;:::-;11756:139;;11483:419;;;:::o;11908:248::-;12048:34;12044:1;12036:6;12032:14;12025:58;12117:31;12112:2;12104:6;12100:15;12093:56;11908:248;:::o;12162:366::-;12304:3;12325:67;12389:2;12384:3;12325:67;:::i;:::-;12318:74;;12401:93;12490:3;12401:93;:::i;:::-;12519:2;12514:3;12510:12;12503:19;;12162:366;;;:::o;12534:419::-;12700:4;12738:2;12727:9;12723:18;12715:26;;12787:9;12781:4;12777:20;12773:1;12762:9;12758:17;12751:47;12815:131;12941:4;12815:131;:::i;:::-;12807:139;;12534:419;;;:::o;12959:293::-;13099:34;13095:1;13087:6;13083:14;13076:58;13168:34;13163:2;13155:6;13151:15;13144:59;13237:7;13232:2;13224:6;13220:15;13213:32;12959:293;:::o;13258:366::-;13400:3;13421:67;13485:2;13480:3;13421:67;:::i;:::-;13414:74;;13497:93;13586:3;13497:93;:::i;:::-;13615:2;13610:3;13606:12;13599:19;;13258:366;;;:::o;13630:419::-;13796:4;13834:2;13823:9;13819:18;13811:26;;13883:9;13877:4;13873:20;13869:1;13858:9;13854:17;13847:47;13911:131;14037:4;13911:131;:::i;:::-;13903:139;;13630:419;;;:::o;14055:180::-;14103:77;14100:1;14093:88;14200:4;14197:1;14190:15;14224:4;14221:1;14214:15;14241:191;14281:3;14300:20;14318:1;14300:20;:::i;:::-;14295:25;;14334:20;14352:1;14334:20;:::i;:::-;14329:25;;14377:1;14374;14370:9;14363:16;;14398:3;14395:1;14392:10;14389:36;;;14405:18;;:::i;:::-;14389:36;14241:191;;;;:::o;14438:238::-;14578:34;14574:1;14566:6;14562:14;14555:58;14647:21;14642:2;14634:6;14630:15;14623:46;14438:238;:::o;14682:366::-;14824:3;14845:67;14909:2;14904:3;14845:67;:::i;:::-;14838:74;;14921:93;15010:3;14921:93;:::i;:::-;15039:2;15034:3;15030:12;15023:19;;14682:366;;;:::o;15054:419::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:131;15461:4;15335:131;:::i;:::-;15327:139;;15054:419;;;:::o;15479:149::-;15515:7;15555:66;15548:5;15544:78;15533:89;;15479:149;;;:::o;15634:78::-;15672:7;15701:5;15690:16;;15634:78;;;:::o;15718:153::-;15821:43;15840:23;15857:5;15840:23;:::i;:::-;15821:43;:::i;:::-;15816:3;15809:56;15718:153;;:::o;15877:147::-;15978:11;16015:3;16000:18;;15877:147;;;;:::o;16030:386::-;16134:3;16162:38;16194:5;16162:38;:::i;:::-;16216:88;16297:6;16292:3;16216:88;:::i;:::-;16209:95;;16313:65;16371:6;16366:3;16359:4;16352:5;16348:16;16313:65;:::i;:::-;16403:6;16398:3;16394:16;16387:23;;16138:278;16030:386;;;;:::o;16422:407::-;16578:3;16593:73;16662:3;16653:6;16593:73;:::i;:::-;16691:1;16686:3;16682:11;16675:18;;16710:93;16799:3;16790:6;16710:93;:::i;:::-;16703:100;;16820:3;16813:10;;16422:407;;;;;:::o;16835:271::-;16965:3;16987:93;17076:3;17067:6;16987:93;:::i;:::-;16980:100;;17097:3;17090:10;;16835:271;;;;:::o;17112:248::-;17252:34;17248:1;17240:6;17236:14;17229:58;17321:31;17316:2;17308:6;17304:15;17297:56;17112:248;:::o;17366:366::-;17508:3;17529:67;17593:2;17588:3;17529:67;:::i;:::-;17522:74;;17605:93;17694:3;17605:93;:::i;:::-;17723:2;17718:3;17714:12;17707:19;;17366:366;;;:::o;17738:419::-;17904:4;17942:2;17931:9;17927:18;17919:26;;17991:9;17985:4;17981:20;17977:1;17966:9;17962:17;17955:47;18019:131;18145:4;18019:131;:::i;:::-;18011:139;;17738:419;;;:::o;18163:731::-;18378:4;18416:3;18405:9;18401:19;18393:27;;18430:71;18498:1;18487:9;18483:17;18474:6;18430:71;:::i;:::-;18548:9;18542:4;18538:20;18533:2;18522:9;18518:18;18511:48;18576:78;18649:4;18640:6;18576:78;:::i;:::-;18568:86;;18701:9;18695:4;18691:20;18686:2;18675:9;18671:18;18664:48;18729:76;18800:4;18791:6;18729:76;:::i;:::-;18721:84;;18815:72;18883:2;18872:9;18868:18;18859:6;18815:72;:::i;:::-;18163:731;;;;;;;:::o;18900:297::-;19040:34;19036:1;19028:6;19024:14;19017:58;19109:34;19104:2;19096:6;19092:15;19085:59;19178:11;19173:2;19165:6;19161:15;19154:36;18900:297;:::o;19203:366::-;19345:3;19366:67;19430:2;19425:3;19366:67;:::i;:::-;19359:74;;19442:93;19531:3;19442:93;:::i;:::-;19560:2;19555:3;19551:12;19544:19;;19203:366;;;:::o;19575:419::-;19741:4;19779:2;19768:9;19764:18;19756:26;;19828:9;19822:4;19818:20;19814:1;19803:9;19799:17;19792:47;19856:131;19982:4;19856:131;:::i;:::-;19848:139;;19575:419;;;:::o;20000:247::-;20140:34;20136:1;20128:6;20124:14;20117:58;20209:30;20204:2;20196:6;20192:15;20185:55;20000:247;:::o;20253:366::-;20395:3;20416:67;20480:2;20475:3;20416:67;:::i;:::-;20409:74;;20492:93;20581:3;20492:93;:::i;:::-;20610:2;20605:3;20601:12;20594:19;;20253:366;;;:::o;20625:419::-;20791:4;20829:2;20818:9;20814:18;20806:26;;20878:9;20872:4;20868:20;20864:1;20853:9;20849:17;20842:47;20906:131;21032:4;20906:131;:::i;:::-;20898:139;;20625:419;;;:::o;21050:179::-;21190:31;21186:1;21178:6;21174:14;21167:55;21050:179;:::o;21235:366::-;21377:3;21398:67;21462:2;21457:3;21398:67;:::i;:::-;21391:74;;21474:93;21563:3;21474:93;:::i;:::-;21592:2;21587:3;21583:12;21576:19;;21235:366;;;:::o;21607:419::-;21773:4;21811:2;21800:9;21796:18;21788:26;;21860:9;21854:4;21850:20;21846:1;21835:9;21831:17;21824:47;21888:131;22014:4;21888:131;:::i;:::-;21880:139;;21607:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","changeAdmin(address)":"8f283970","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","getBlockTimestamp()":"796b89b9","getTxHash(address,uint256,string,bytes,uint256)":"04a71576","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"getTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u53d6\\u6d88\\u7279\\u5b9a\\u4ea4\\u6613\\u3002 \\u8981\\u6c42\\uff1a\\u4ea4\\u6613\\u5728\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d\"},\"changeAdmin(address)\":{\"details\":\"\\u6539\\u53d8\\u7ba1\\u7406\\u5458\\u5730\\u5740\\uff0c\\u8c03\\u7528\\u8005\\u5fc5\\u987b\\u662fTimelock\\u5408\\u7ea6\\u3002\"},\"constructor\":{\"details\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316\\u4ea4\\u6613\\u9501\\u5b9a\\u65f6\\u95f4 \\uff08\\u79d2\\uff09\\u548c\\u7ba1\\u7406\\u5458\\u5730\\u5740\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u6267\\u884c\\u7279\\u5b9a\\u4ea4\\u6613\\u3002 \\u8981\\u6c42\\uff1a 1. \\u4ea4\\u6613\\u5728\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d 2. \\u8fbe\\u5230\\u4ea4\\u6613\\u7684\\u6267\\u884c\\u65f6\\u95f4 3. \\u4ea4\\u6613\\u6ca1\\u8fc7\\u671f\"},\"getBlockTimestamp()\":{\"details\":\"\\u83b7\\u53d6\\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233\"},\"getTxHash(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u5c06\\u4e00\\u5806\\u4e1c\\u897f\\u62fc\\u6210\\u4ea4\\u6613\\u7684\\u6807\\u8bc6\\u7b26\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u521b\\u5efa\\u4ea4\\u6613\\u5e76\\u6dfb\\u52a0\\u5230\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d\\u3002\",\"params\":{\"data\":\": call data\\uff0c\\u91cc\\u9762\\u662f\\u4e00\\u4e9b\\u53c2\\u6570\",\"executeTime\":\": \\u4ea4\\u6613\\u6267\\u884c\\u7684\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233 \\u8981\\u6c42\\uff1aexecuteTime \\u5927\\u4e8e \\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233+delay\",\"signature\":\": \\u8981\\u8c03\\u7528\\u7684\\u51fd\\u6570\\u7b7e\\u540d\\uff08function signature\\uff09\",\"target\":\": \\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\": \\u53d1\\u9001eth\\u6570\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/45_Timelock/Timelock.sol\":\"Timelock\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/45_Timelock/Timelock.sol\":{\"keccak256\":\"0xcb01a3d256ae70955d8a27ca75897a4c58250181ca1ce3cebb6c0bd83ebcdc60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d99d7790e939f8a932e4932a7fa3a78d57395d94df05cc1d0d6959b243447e1a\",\"dweb:/ipfs/Qmd6GwxxfbSi122H4YsWL6btRSyAGhi4gUSAg246VGJAZK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"CancelTransaction","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"ExecuteTransaction","anonymous":false},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"NewAdmin","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"QueueTransaction","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelTransaction"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeAdmin"},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"payable","type":"function","name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getTxHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"cancelTransaction(address,uint256,string,bytes,uint256)":{"details":"取消特定交易。 要求:交易在时间锁队列中"},"changeAdmin(address)":{"details":"改变管理员地址,调用者必须是Timelock合约。"},"constructor":{"details":"构造函数,初始化交易锁定时间 (秒)和管理员地址"},"executeTransaction(address,uint256,string,bytes,uint256)":{"details":"执行特定交易。 要求: 1. 交易在时间锁队列中 2. 达到交易的执行时间 3. 交易没过期"},"getBlockTimestamp()":{"details":"获取当前区块链时间戳"},"getTxHash(address,uint256,string,bytes,uint256)":{"details":"将一堆东西拼成交易的标识符"},"queueTransaction(address,uint256,string,bytes,uint256)":{"details":"创建交易并添加到时间锁队列中。","params":{"data":": call data,里面是一些参数","executeTime":": 交易执行的区块链时间戳 要求:executeTime 大于 当前区块链时间戳+delay","signature":": 要调用的函数签名(function signature)","target":": 目标合约地址","value":": 发送eth数额"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/45_Timelock/Timelock.sol":"Timelock"},"evmVersion":"prague","libraries":{}},"sources":{"src/45_Timelock/Timelock.sol":{"keccak256":"0xcb01a3d256ae70955d8a27ca75897a4c58250181ca1ce3cebb6c0bd83ebcdc60","urls":["bzz-raw://d99d7790e939f8a932e4932a7fa3a78d57395d94df05cc1d0d6959b243447e1a","dweb:/ipfs/Qmd6GwxxfbSi122H4YsWL6btRSyAGhi4gUSAg246VGJAZK"],"license":"MIT"}},"version":1},"id":104} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"GRACE_PERIOD","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cancelTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"executeTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTxHash","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"queueTransaction","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"signature","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"executeTime","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"queuedTransactions","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"CancelTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ExecuteTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"QueueTransaction","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"signature","type":"string","indexed":false,"internalType":"string"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"executeTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b5060405161168d38038061168d8339818101604052810190602e919060ab565b80600181905550335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060d1565b5f5ffd5b5f819050919050565b608d81607d565b81146096575f5ffd5b50565b5f8151905060a5816086565b92915050565b5f6020828403121560bd5760bc6079565b5b5f60c8848285016099565b91505092915050565b6115af806100de5f395ff3fe608060405260043610610090575f3560e01c8063796b89b911610058578063796b89b91461018e5780638f283970146101b8578063c1a287e2146101e0578063f2b065371461020a578063f851a4401461024657610090565b806304a71576146100945780630825f38f146100d05780633a66f90114610100578063591fcdfe1461013c5780636a42b8f814610164575b5f5ffd5b34801561009f575f5ffd5b506100ba60048036038101906100b59190610c82565b610270565b6040516100c79190610d49565b60405180910390f35b6100ea60048036038101906100e59190610c82565b6102ab565b6040516100f79190610dc2565b60405180910390f35b34801561010b575f5ffd5b5061012660048036038101906101219190610c82565b6105c1565b6040516101339190610d49565b60405180910390f35b348015610147575f5ffd5b50610162600480360381019061015d9190610c82565b610742565b005b34801561016f575f5ffd5b506101786108c2565b6040516101859190610df1565b60405180910390f35b348015610199575f5ffd5b506101a26108c8565b6040516101af9190610df1565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d99190610e0a565b6108cf565b005b3480156101eb575f5ffd5b506101f46109c2565b6040516102019190610df1565b60405180910390f35b348015610215575f5ffd5b50610230600480360381019061022b9190610e5f565b6109c9565b60405161023d9190610ea4565b60405180910390f35b348015610251575f5ffd5b5061025a6109e6565b6040516102679190610ecc565b60405180910390f35b5f858585858560405160200161028a959493929190610f37565b60405160208183030381529060405280519060200120905095945050505050565b60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033290610fe0565b60405180910390fd5b5f6103498787878787610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039f9061106e565b60405180910390fd5b826103b16108c8565b10156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990611122565b60405180910390fd5b62093a8083610401919061116d565b6104096108c8565b111561044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190611210565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555060605f865103610484578490506104b0565b85805190602001208560405160200161049e9291906112b3565b60405160208183030381529060405290505b5f5f8973ffffffffffffffffffffffffffffffffffffffff1689846040516104d891906112da565b5f6040518083038185875af1925050503d805f8114610512576040519150601f19603f3d011682016040523d82523d5f602084013e610517565b606091505b50915091508161055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390611360565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b6040516105a9949392919061137e565b60405180910390a38094505050505095945050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790610fe0565b60405180910390fd5b60015461065b6108c8565b610665919061116d565b8210156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611465565b60405180910390fd5b5f6106b58787878787610270565b9050600160025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f8888888860405161072d949392919061137e565b60405180910390a38091505095945050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790610fe0565b60405180910390fd5b5f6107de8686868686610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff1661083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906114f3565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87878787876040516108b2949392919061137e565b60405180910390a3505050505050565b60015481565b5f42905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061155b565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a250565b62093a8081565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4482610a1b565b9050919050565b610a5481610a3a565b8114610a5e575f5ffd5b50565b5f81359050610a6f81610a4b565b92915050565b5f819050919050565b610a8781610a75565b8114610a91575f5ffd5b50565b5f81359050610aa281610a7e565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610af682610ab0565b810181811067ffffffffffffffff82111715610b1557610b14610ac0565b5b80604052505050565b5f610b27610a0a565b9050610b338282610aed565b919050565b5f67ffffffffffffffff821115610b5257610b51610ac0565b5b610b5b82610ab0565b9050602081019050919050565b828183375f83830152505050565b5f610b88610b8384610b38565b610b1e565b905082815260208101848484011115610ba457610ba3610aac565b5b610baf848285610b68565b509392505050565b5f82601f830112610bcb57610bca610aa8565b5b8135610bdb848260208601610b76565b91505092915050565b5f67ffffffffffffffff821115610bfe57610bfd610ac0565b5b610c0782610ab0565b9050602081019050919050565b5f610c26610c2184610be4565b610b1e565b905082815260208101848484011115610c4257610c41610aac565b5b610c4d848285610b68565b509392505050565b5f82601f830112610c6957610c68610aa8565b5b8135610c79848260208601610c14565b91505092915050565b5f5f5f5f5f60a08688031215610c9b57610c9a610a13565b5b5f610ca888828901610a61565b9550506020610cb988828901610a94565b945050604086013567ffffffffffffffff811115610cda57610cd9610a17565b5b610ce688828901610bb7565b935050606086013567ffffffffffffffff811115610d0757610d06610a17565b5b610d1388828901610c55565b9250506080610d2488828901610a94565b9150509295509295909350565b5f819050919050565b610d4381610d31565b82525050565b5f602082019050610d5c5f830184610d3a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610d9482610d62565b610d9e8185610d6c565b9350610dae818560208601610d7c565b610db781610ab0565b840191505092915050565b5f6020820190508181035f830152610dda8184610d8a565b905092915050565b610deb81610a75565b82525050565b5f602082019050610e045f830184610de2565b92915050565b5f60208284031215610e1f57610e1e610a13565b5b5f610e2c84828501610a61565b91505092915050565b610e3e81610d31565b8114610e48575f5ffd5b50565b5f81359050610e5981610e35565b92915050565b5f60208284031215610e7457610e73610a13565b5b5f610e8184828501610e4b565b91505092915050565b5f8115159050919050565b610e9e81610e8a565b82525050565b5f602082019050610eb75f830184610e95565b92915050565b610ec681610a3a565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f610f0982610ee5565b610f138185610eef565b9350610f23818560208601610d7c565b610f2c81610ab0565b840191505092915050565b5f60a082019050610f4a5f830188610ebd565b610f576020830187610de2565b8181036040830152610f698186610eff565b90508181036060830152610f7d8185610d8a565b9050610f8c6080830184610de2565b9695505050505050565b7f54696d656c6f636b3a2043616c6c6572206e6f742061646d696e0000000000005f82015250565b5f610fca601a83610eef565b9150610fd582610f96565b602082019050919050565b5f6020820190508181035f830152610ff781610fbe565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000602082015250565b5f611058603d83610eef565b915061106382610ffe565b604082019050919050565b5f6020820190508181035f8301526110858161104c565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060208201527f6c6f636b2e000000000000000000000000000000000000000000000000000000604082015250565b5f61110c604583610eef565b91506111178261108c565b606082019050919050565b5f6020820190508181035f83015261113981611100565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61117782610a75565b915061118283610a75565b925082820190508082111561119a57611199611140565b5b92915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206973207374616c652e00000000000000000000000000602082015250565b5f6111fa603383610eef565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61127361126e8261122e565b611259565b82525050565b5f81905092915050565b5f61128d82610d62565b6112978185611279565b93506112a7818560208601610d7c565b80840191505092915050565b5f6112be8285611262565b6004820191506112ce8284611283565b91508190509392505050565b5f6112e58284611283565b915081905092915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000602082015250565b5f61134a603d83610eef565b9150611355826112f0565b604082019050919050565b5f6020820190508181035f8301526113778161133e565b9050919050565b5f6080820190506113915f830187610de2565b81810360208301526113a38186610eff565b905081810360408301526113b78185610d8a565b90506113c66060830184610de2565b95945050505050565b7f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374695f8201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360208201527f66792064656c61792e0000000000000000000000000000000000000000000000604082015250565b5f61144f604983610eef565b915061145a826113cf565b606082019050919050565b5f6020820190508181035f83015261147c81611443565b9050919050565b7f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a205472615f8201527f6e73616374696f6e206861736e2774206265656e207175657565642e00000000602082015250565b5f6114dd603c83610eef565b91506114e882611483565b604082019050919050565b5f6020820190508181035f83015261150a816114d1565b9050919050565b7f54696d656c6f636b3a2043616c6c6572206e6f742054696d656c6f636b0000005f82015250565b5f611545601d83610eef565b915061155082611511565b602082019050919050565b5f6020820190508181035f83015261157281611539565b905091905056fea264697066735822122005fca8fe397772333edfacb3e12ce4575c03d45548aa399da95db3f705ef637964736f6c63430008220033","sourceMap":"58:5865:98:-:0;;;1416:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1459:6;1451:5;:14;;;;1483:10;1475:5;;:18;;;;;;;;;;;;;;;;;;1416:84;58:5865;;88:117:139;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;58:5865:98:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610090575f3560e01c8063796b89b911610058578063796b89b91461018e5780638f283970146101b8578063c1a287e2146101e0578063f2b065371461020a578063f851a4401461024657610090565b806304a71576146100945780630825f38f146100d05780633a66f90114610100578063591fcdfe1461013c5780636a42b8f814610164575b5f5ffd5b34801561009f575f5ffd5b506100ba60048036038101906100b59190610c82565b610270565b6040516100c79190610d49565b60405180910390f35b6100ea60048036038101906100e59190610c82565b6102ab565b6040516100f79190610dc2565b60405180910390f35b34801561010b575f5ffd5b5061012660048036038101906101219190610c82565b6105c1565b6040516101339190610d49565b60405180910390f35b348015610147575f5ffd5b50610162600480360381019061015d9190610c82565b610742565b005b34801561016f575f5ffd5b506101786108c2565b6040516101859190610df1565b60405180910390f35b348015610199575f5ffd5b506101a26108c8565b6040516101af9190610df1565b60405180910390f35b3480156101c3575f5ffd5b506101de60048036038101906101d99190610e0a565b6108cf565b005b3480156101eb575f5ffd5b506101f46109c2565b6040516102019190610df1565b60405180910390f35b348015610215575f5ffd5b50610230600480360381019061022b9190610e5f565b6109c9565b60405161023d9190610ea4565b60405180910390f35b348015610251575f5ffd5b5061025a6109e6565b6040516102679190610ecc565b60405180910390f35b5f858585858560405160200161028a959493929190610f37565b60405160208183030381529060405280519060200120905095945050505050565b60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033290610fe0565b60405180910390fd5b5f6103498787878787610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff166103a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039f9061106e565b60405180910390fd5b826103b16108c8565b10156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990611122565b60405180910390fd5b62093a8083610401919061116d565b6104096108c8565b111561044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044190611210565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555060605f865103610484578490506104b0565b85805190602001208560405160200161049e9291906112b3565b60405160208183030381529060405290505b5f5f8973ffffffffffffffffffffffffffffffffffffffff1689846040516104d891906112da565b5f6040518083038185875af1925050503d805f8114610512576040519150601f19603f3d011682016040523d82523d5f602084013e610517565b606091505b50915091508161055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390611360565b60405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff16847fa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e78b8b8b8b6040516105a9949392919061137e565b60405180910390a38094505050505095945050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790610fe0565b60405180910390fd5b60015461065b6108c8565b610665919061116d565b8210156106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e90611465565b60405180910390fd5b5f6106b58787878787610270565b9050600160025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508673ffffffffffffffffffffffffffffffffffffffff16817f76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f8888888860405161072d949392919061137e565b60405180910390a38091505095945050505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790610fe0565b60405180910390fd5b5f6107de8686868686610270565b905060025f8281526020019081526020015f205f9054906101000a900460ff1661083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906114f3565b60405180910390fd5b5f60025f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff16817f2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87878787876040516108b2949392919061137e565b60405180910390a3505050505050565b60015481565b5f42905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061155b565b60405180910390fd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a250565b62093a8081565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4482610a1b565b9050919050565b610a5481610a3a565b8114610a5e575f5ffd5b50565b5f81359050610a6f81610a4b565b92915050565b5f819050919050565b610a8781610a75565b8114610a91575f5ffd5b50565b5f81359050610aa281610a7e565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610af682610ab0565b810181811067ffffffffffffffff82111715610b1557610b14610ac0565b5b80604052505050565b5f610b27610a0a565b9050610b338282610aed565b919050565b5f67ffffffffffffffff821115610b5257610b51610ac0565b5b610b5b82610ab0565b9050602081019050919050565b828183375f83830152505050565b5f610b88610b8384610b38565b610b1e565b905082815260208101848484011115610ba457610ba3610aac565b5b610baf848285610b68565b509392505050565b5f82601f830112610bcb57610bca610aa8565b5b8135610bdb848260208601610b76565b91505092915050565b5f67ffffffffffffffff821115610bfe57610bfd610ac0565b5b610c0782610ab0565b9050602081019050919050565b5f610c26610c2184610be4565b610b1e565b905082815260208101848484011115610c4257610c41610aac565b5b610c4d848285610b68565b509392505050565b5f82601f830112610c6957610c68610aa8565b5b8135610c79848260208601610c14565b91505092915050565b5f5f5f5f5f60a08688031215610c9b57610c9a610a13565b5b5f610ca888828901610a61565b9550506020610cb988828901610a94565b945050604086013567ffffffffffffffff811115610cda57610cd9610a17565b5b610ce688828901610bb7565b935050606086013567ffffffffffffffff811115610d0757610d06610a17565b5b610d1388828901610c55565b9250506080610d2488828901610a94565b9150509295509295909350565b5f819050919050565b610d4381610d31565b82525050565b5f602082019050610d5c5f830184610d3a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610d9482610d62565b610d9e8185610d6c565b9350610dae818560208601610d7c565b610db781610ab0565b840191505092915050565b5f6020820190508181035f830152610dda8184610d8a565b905092915050565b610deb81610a75565b82525050565b5f602082019050610e045f830184610de2565b92915050565b5f60208284031215610e1f57610e1e610a13565b5b5f610e2c84828501610a61565b91505092915050565b610e3e81610d31565b8114610e48575f5ffd5b50565b5f81359050610e5981610e35565b92915050565b5f60208284031215610e7457610e73610a13565b5b5f610e8184828501610e4b565b91505092915050565b5f8115159050919050565b610e9e81610e8a565b82525050565b5f602082019050610eb75f830184610e95565b92915050565b610ec681610a3a565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f610f0982610ee5565b610f138185610eef565b9350610f23818560208601610d7c565b610f2c81610ab0565b840191505092915050565b5f60a082019050610f4a5f830188610ebd565b610f576020830187610de2565b8181036040830152610f698186610eff565b90508181036060830152610f7d8185610d8a565b9050610f8c6080830184610de2565b9695505050505050565b7f54696d656c6f636b3a2043616c6c6572206e6f742061646d696e0000000000005f82015250565b5f610fca601a83610eef565b9150610fd582610f96565b602082019050919050565b5f6020820190508181035f830152610ff781610fbe565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774206265656e207175657565642e000000602082015250565b5f611058603d83610eef565b915061106382610ffe565b604082019050919050565b5f6020820190508181035f8301526110858161104c565b9050919050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206861736e2774207375727061737365642074696d652060208201527f6c6f636b2e000000000000000000000000000000000000000000000000000000604082015250565b5f61110c604583610eef565b91506111178261108c565b606082019050919050565b5f6020820190508181035f83015261113981611100565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61117782610a75565b915061118283610a75565b925082820190508082111561119a57611199611140565b5b92915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e206973207374616c652e00000000000000000000000000602082015250565b5f6111fa603383610eef565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61127361126e8261122e565b611259565b82525050565b5f81905092915050565b5f61128d82610d62565b6112978185611279565b93506112a7818560208601610d7c565b80840191505092915050565b5f6112be8285611262565b6004820191506112ce8284611283565b91508190509392505050565b5f6112e58284611283565b915081905092915050565b7f54696d656c6f636b3a3a657865637574655472616e73616374696f6e3a2054725f8201527f616e73616374696f6e20657865637574696f6e2072657665727465642e000000602082015250565b5f61134a603d83610eef565b9150611355826112f0565b604082019050919050565b5f6020820190508181035f8301526113778161133e565b9050919050565b5f6080820190506113915f830187610de2565b81810360208301526113a38186610eff565b905081810360408301526113b78185610d8a565b90506113c66060830184610de2565b95945050505050565b7f54696d656c6f636b3a3a71756575655472616e73616374696f6e3a20457374695f8201527f6d6174656420657865637574696f6e20626c6f636b206d75737420736174697360208201527f66792064656c61792e0000000000000000000000000000000000000000000000604082015250565b5f61144f604983610eef565b915061145a826113cf565b606082019050919050565b5f6020820190508181035f83015261147c81611443565b9050919050565b7f54696d656c6f636b3a3a63616e63656c5472616e73616374696f6e3a205472615f8201527f6e73616374696f6e206861736e2774206265656e207175657565642e00000000602082015250565b5f6114dd603c83610eef565b91506114e882611483565b604082019050919050565b5f6020820190508181035f83015261150a816114d1565b9050919050565b7f54696d656c6f636b3a2043616c6c6572206e6f742054696d656c6f636b0000005f82015250565b5f611545601d83610eef565b915061155082611511565b602082019050919050565b5f6020820190508181035f83015261157281611539565b905091905056fea264697066735822122005fca8fe397772333edfacb3e12ce4575c03d45548aa399da95db3f705ef637964736f6c63430008220033","sourceMap":"58:5865:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5646:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3731:1681;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2140:691;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2938:611;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;843:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5477:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1594:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;752:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;898:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;707:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5646:275;5822:7;5869:6;5877:5;5884:9;5895:4;5901:11;5858:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5848:66;;;;;;5841:73;;5646:275;;;;;;;:::o;3731:1681::-;3889:12;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3913:14:::1;3930:54;3940:6;3948:5;3955:9;3966:4;3972:11;3930:9;:54::i;:::-;3913:71;;4056:18;:26;4075:6;4056:26;;;;;;;;;;;;;;;;;;;;;4048:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;4237:11;4214:19;:17;:19::i;:::-;:34;;4206:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;788:6;4398:11;:26;;;;:::i;:::-;4375:19;:17;:19::i;:::-;:49;;4367:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;4552:5;4523:18;:26;4542:6;4523:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;4595:21;4657:1;4636:9;4630:23;:28:::0;4626:453:::1;;4685:4;4674:15;;4626:453;;;5049:9;5033:27;;;;;;5063:4;5009:59;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4998:70;;4626:453;5123:12;5137:23;5164:6;:11;;5183:5;5190:8;5164:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5122:77;;;;5217:7;5209:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5333:6;5306:71;;5325:6;5306:71;5341:5;5348:9;5359:4;5365:11;5306:71;;;;;;;;;:::i;:::-;;;;;;;;5395:10;5388:17;;;;;;3731:1681:::0;;;;;;;:::o;2140:691::-;2288:7;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2409:5:::1;;2387:19;:17;:19::i;:::-;:27;;;;:::i;:::-;2372:11;:42;;2364:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;2566:14;2583:54;2593:6;2601:5;2608:9;2619:4;2625:11;2583:9;:54::i;:::-;2566:71;;2712:4;2683:18;:26;2702:6;2683:26;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2757:6;2732:69;;2749:6;2732:69;2765:5;2772:9;2783:4;2789:11;2732:69;;;;;;;;;:::i;:::-;;;;;;;;2818:6;2811:13;;;2140:691:::0;;;;;;;:::o;2938:611::-;1101:5;;;;;;;;;;;1087:19;;:10;:19;;;1079:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:14:::1;3168:54;3178:6;3186:5;3193:9;3204:4;3210:11;3168:9;:54::i;:::-;3151:71;;3288:18;:26;3307:6;3288:26;;;;;;;;;;;;;;;;;;;;;3280:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;3451:5;3422:18;:26;3441:6;3422:26;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;3498:6;3472:70;;3490:6;3472:70;3506:5;3513:9;3524:4;3530:11;3472:70;;;;;;;;;:::i;:::-;;;;;;;;3077:472;2938:611:::0;;;;;:::o;843:17::-;;;;:::o;5477:95::-;5527:4;5550:15;5543:22;;5477:95;:::o;1594:126::-;1254:4;1232:27;;:10;:27;;;1224:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:8:::1;1663:5;;:16;;;;;;;;;;;;;;;;;;1704:8;1695:18;;;;;;;;;;;;1594:126:::0;:::o;752:42::-;788:6;752:42;:::o;898:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;707:20::-;;;;;;;;;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:308::-;2221:4;2311:18;2303:6;2300:30;2297:56;;;2333:18;;:::i;:::-;2297:56;2371:29;2393:6;2371:29;:::i;:::-;2363:37;;2455:4;2449;2445:15;2437:23;;2159:308;;;:::o;2473:148::-;2571:6;2566:3;2561;2548:30;2612:1;2603:6;2598:3;2594:16;2587:27;2473:148;;;:::o;2627:425::-;2705:5;2730:66;2746:49;2788:6;2746:49;:::i;:::-;2730:66;:::i;:::-;2721:75;;2819:6;2812:5;2805:21;2857:4;2850:5;2846:16;2895:3;2886:6;2881:3;2877:16;2874:25;2871:112;;;2902:79;;:::i;:::-;2871:112;2992:54;3039:6;3034:3;3029;2992:54;:::i;:::-;2711:341;2627:425;;;;;:::o;3072:340::-;3128:5;3177:3;3170:4;3162:6;3158:17;3154:27;3144:122;;3185:79;;:::i;:::-;3144:122;3302:6;3289:20;3327:79;3402:3;3394:6;3387:4;3379:6;3375:17;3327:79;:::i;:::-;3318:88;;3134:278;3072:340;;;;:::o;3418:307::-;3479:4;3569:18;3561:6;3558:30;3555:56;;;3591:18;;:::i;:::-;3555:56;3629:29;3651:6;3629:29;:::i;:::-;3621:37;;3713:4;3707;3703:15;3695:23;;3418:307;;;:::o;3731:423::-;3808:5;3833:65;3849:48;3890:6;3849:48;:::i;:::-;3833:65;:::i;:::-;3824:74;;3921:6;3914:5;3907:21;3959:4;3952:5;3948:16;3997:3;3988:6;3983:3;3979:16;3976:25;3973:112;;;4004:79;;:::i;:::-;3973:112;4094:54;4141:6;4136:3;4131;4094:54;:::i;:::-;3814:340;3731:423;;;;;:::o;4173:338::-;4228:5;4277:3;4270:4;4262:6;4258:17;4254:27;4244:122;;4285:79;;:::i;:::-;4244:122;4402:6;4389:20;4427:78;4501:3;4493:6;4486:4;4478:6;4474:17;4427:78;:::i;:::-;4418:87;;4234:277;4173:338;;;;:::o;4517:1269::-;4631:6;4639;4647;4655;4663;4712:3;4700:9;4691:7;4687:23;4683:33;4680:120;;;4719:79;;:::i;:::-;4680:120;4839:1;4864:53;4909:7;4900:6;4889:9;4885:22;4864:53;:::i;:::-;4854:63;;4810:117;4966:2;4992:53;5037:7;5028:6;5017:9;5013:22;4992:53;:::i;:::-;4982:63;;4937:118;5122:2;5111:9;5107:18;5094:32;5153:18;5145:6;5142:30;5139:117;;;5175:79;;:::i;:::-;5139:117;5280:63;5335:7;5326:6;5315:9;5311:22;5280:63;:::i;:::-;5270:73;;5065:288;5420:2;5409:9;5405:18;5392:32;5451:18;5443:6;5440:30;5437:117;;;5473:79;;:::i;:::-;5437:117;5578:62;5632:7;5623:6;5612:9;5608:22;5578:62;:::i;:::-;5568:72;;5363:287;5689:3;5716:53;5761:7;5752:6;5741:9;5737:22;5716:53;:::i;:::-;5706:63;;5660:119;4517:1269;;;;;;;;:::o;5792:77::-;5829:7;5858:5;5847:16;;5792:77;;;:::o;5875:118::-;5962:24;5980:5;5962:24;:::i;:::-;5957:3;5950:37;5875:118;;:::o;5999:222::-;6092:4;6130:2;6119:9;6115:18;6107:26;;6143:71;6211:1;6200:9;6196:17;6187:6;6143:71;:::i;:::-;5999:222;;;;:::o;6227:98::-;6278:6;6312:5;6306:12;6296:22;;6227:98;;;:::o;6331:168::-;6414:11;6448:6;6443:3;6436:19;6488:4;6483:3;6479:14;6464:29;;6331:168;;;;:::o;6505:139::-;6594:6;6589:3;6584;6578:23;6635:1;6626:6;6621:3;6617:16;6610:27;6505:139;;;:::o;6650:373::-;6736:3;6764:38;6796:5;6764:38;:::i;:::-;6818:70;6881:6;6876:3;6818:70;:::i;:::-;6811:77;;6897:65;6955:6;6950:3;6943:4;6936:5;6932:16;6897:65;:::i;:::-;6987:29;7009:6;6987:29;:::i;:::-;6982:3;6978:39;6971:46;;6740:283;6650:373;;;;:::o;7029:309::-;7140:4;7178:2;7167:9;7163:18;7155:26;;7227:9;7221:4;7217:20;7213:1;7202:9;7198:17;7191:47;7255:76;7326:4;7317:6;7255:76;:::i;:::-;7247:84;;7029:309;;;;:::o;7344:118::-;7431:24;7449:5;7431:24;:::i;:::-;7426:3;7419:37;7344:118;;:::o;7468:222::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7612:71;7680:1;7669:9;7665:17;7656:6;7612:71;:::i;:::-;7468:222;;;;:::o;7696:329::-;7755:6;7804:2;7792:9;7783:7;7779:23;7775:32;7772:119;;;7810:79;;:::i;:::-;7772:119;7930:1;7955:53;8000:7;7991:6;7980:9;7976:22;7955:53;:::i;:::-;7945:63;;7901:117;7696:329;;;;:::o;8031:122::-;8104:24;8122:5;8104:24;:::i;:::-;8097:5;8094:35;8084:63;;8143:1;8140;8133:12;8084:63;8031:122;:::o;8159:139::-;8205:5;8243:6;8230:20;8221:29;;8259:33;8286:5;8259:33;:::i;:::-;8159:139;;;;:::o;8304:329::-;8363:6;8412:2;8400:9;8391:7;8387:23;8383:32;8380:119;;;8418:79;;:::i;:::-;8380:119;8538:1;8563:53;8608:7;8599:6;8588:9;8584:22;8563:53;:::i;:::-;8553:63;;8509:117;8304:329;;;;:::o;8639:90::-;8673:7;8716:5;8709:13;8702:21;8691:32;;8639:90;;;:::o;8735:109::-;8816:21;8831:5;8816:21;:::i;:::-;8811:3;8804:34;8735:109;;:::o;8850:210::-;8937:4;8975:2;8964:9;8960:18;8952:26;;8988:65;9050:1;9039:9;9035:17;9026:6;8988:65;:::i;:::-;8850:210;;;;:::o;9066:118::-;9153:24;9171:5;9153:24;:::i;:::-;9148:3;9141:37;9066:118;;:::o;9190:222::-;9283:4;9321:2;9310:9;9306:18;9298:26;;9334:71;9402:1;9391:9;9387:17;9378:6;9334:71;:::i;:::-;9190:222;;;;:::o;9418:99::-;9470:6;9504:5;9498:12;9488:22;;9418:99;;;:::o;9523:169::-;9607:11;9641:6;9636:3;9629:19;9681:4;9676:3;9672:14;9657:29;;9523:169;;;;:::o;9698:377::-;9786:3;9814:39;9847:5;9814:39;:::i;:::-;9869:71;9933:6;9928:3;9869:71;:::i;:::-;9862:78;;9949:65;10007:6;10002:3;9995:4;9988:5;9984:16;9949:65;:::i;:::-;10039:29;10061:6;10039:29;:::i;:::-;10034:3;10030:39;10023:46;;9790:285;9698:377;;;;:::o;10081:842::-;10324:4;10362:3;10351:9;10347:19;10339:27;;10376:71;10444:1;10433:9;10429:17;10420:6;10376:71;:::i;:::-;10457:72;10525:2;10514:9;10510:18;10501:6;10457:72;:::i;:::-;10576:9;10570:4;10566:20;10561:2;10550:9;10546:18;10539:48;10604:78;10677:4;10668:6;10604:78;:::i;:::-;10596:86;;10729:9;10723:4;10719:20;10714:2;10703:9;10699:18;10692:48;10757:76;10828:4;10819:6;10757:76;:::i;:::-;10749:84;;10843:73;10911:3;10900:9;10896:19;10887:6;10843:73;:::i;:::-;10081:842;;;;;;;;:::o;10929:176::-;11069:28;11065:1;11057:6;11053:14;11046:52;10929:176;:::o;11111:366::-;11253:3;11274:67;11338:2;11333:3;11274:67;:::i;:::-;11267:74;;11350:93;11439:3;11350:93;:::i;:::-;11468:2;11463:3;11459:12;11452:19;;11111:366;;;:::o;11483:419::-;11649:4;11687:2;11676:9;11672:18;11664:26;;11736:9;11730:4;11726:20;11722:1;11711:9;11707:17;11700:47;11764:131;11890:4;11764:131;:::i;:::-;11756:139;;11483:419;;;:::o;11908:248::-;12048:34;12044:1;12036:6;12032:14;12025:58;12117:31;12112:2;12104:6;12100:15;12093:56;11908:248;:::o;12162:366::-;12304:3;12325:67;12389:2;12384:3;12325:67;:::i;:::-;12318:74;;12401:93;12490:3;12401:93;:::i;:::-;12519:2;12514:3;12510:12;12503:19;;12162:366;;;:::o;12534:419::-;12700:4;12738:2;12727:9;12723:18;12715:26;;12787:9;12781:4;12777:20;12773:1;12762:9;12758:17;12751:47;12815:131;12941:4;12815:131;:::i;:::-;12807:139;;12534:419;;;:::o;12959:293::-;13099:34;13095:1;13087:6;13083:14;13076:58;13168:34;13163:2;13155:6;13151:15;13144:59;13237:7;13232:2;13224:6;13220:15;13213:32;12959:293;:::o;13258:366::-;13400:3;13421:67;13485:2;13480:3;13421:67;:::i;:::-;13414:74;;13497:93;13586:3;13497:93;:::i;:::-;13615:2;13610:3;13606:12;13599:19;;13258:366;;;:::o;13630:419::-;13796:4;13834:2;13823:9;13819:18;13811:26;;13883:9;13877:4;13873:20;13869:1;13858:9;13854:17;13847:47;13911:131;14037:4;13911:131;:::i;:::-;13903:139;;13630:419;;;:::o;14055:180::-;14103:77;14100:1;14093:88;14200:4;14197:1;14190:15;14224:4;14221:1;14214:15;14241:191;14281:3;14300:20;14318:1;14300:20;:::i;:::-;14295:25;;14334:20;14352:1;14334:20;:::i;:::-;14329:25;;14377:1;14374;14370:9;14363:16;;14398:3;14395:1;14392:10;14389:36;;;14405:18;;:::i;:::-;14389:36;14241:191;;;;:::o;14438:238::-;14578:34;14574:1;14566:6;14562:14;14555:58;14647:21;14642:2;14634:6;14630:15;14623:46;14438:238;:::o;14682:366::-;14824:3;14845:67;14909:2;14904:3;14845:67;:::i;:::-;14838:74;;14921:93;15010:3;14921:93;:::i;:::-;15039:2;15034:3;15030:12;15023:19;;14682:366;;;:::o;15054:419::-;15220:4;15258:2;15247:9;15243:18;15235:26;;15307:9;15301:4;15297:20;15293:1;15282:9;15278:17;15271:47;15335:131;15461:4;15335:131;:::i;:::-;15327:139;;15054:419;;;:::o;15479:149::-;15515:7;15555:66;15548:5;15544:78;15533:89;;15479:149;;;:::o;15634:78::-;15672:7;15701:5;15690:16;;15634:78;;;:::o;15718:153::-;15821:43;15840:23;15857:5;15840:23;:::i;:::-;15821:43;:::i;:::-;15816:3;15809:56;15718:153;;:::o;15877:147::-;15978:11;16015:3;16000:18;;15877:147;;;;:::o;16030:386::-;16134:3;16162:38;16194:5;16162:38;:::i;:::-;16216:88;16297:6;16292:3;16216:88;:::i;:::-;16209:95;;16313:65;16371:6;16366:3;16359:4;16352:5;16348:16;16313:65;:::i;:::-;16403:6;16398:3;16394:16;16387:23;;16138:278;16030:386;;;;:::o;16422:407::-;16578:3;16593:73;16662:3;16653:6;16593:73;:::i;:::-;16691:1;16686:3;16682:11;16675:18;;16710:93;16799:3;16790:6;16710:93;:::i;:::-;16703:100;;16820:3;16813:10;;16422:407;;;;;:::o;16835:271::-;16965:3;16987:93;17076:3;17067:6;16987:93;:::i;:::-;16980:100;;17097:3;17090:10;;16835:271;;;;:::o;17112:248::-;17252:34;17248:1;17240:6;17236:14;17229:58;17321:31;17316:2;17308:6;17304:15;17297:56;17112:248;:::o;17366:366::-;17508:3;17529:67;17593:2;17588:3;17529:67;:::i;:::-;17522:74;;17605:93;17694:3;17605:93;:::i;:::-;17723:2;17718:3;17714:12;17707:19;;17366:366;;;:::o;17738:419::-;17904:4;17942:2;17931:9;17927:18;17919:26;;17991:9;17985:4;17981:20;17977:1;17966:9;17962:17;17955:47;18019:131;18145:4;18019:131;:::i;:::-;18011:139;;17738:419;;;:::o;18163:731::-;18378:4;18416:3;18405:9;18401:19;18393:27;;18430:71;18498:1;18487:9;18483:17;18474:6;18430:71;:::i;:::-;18548:9;18542:4;18538:20;18533:2;18522:9;18518:18;18511:48;18576:78;18649:4;18640:6;18576:78;:::i;:::-;18568:86;;18701:9;18695:4;18691:20;18686:2;18675:9;18671:18;18664:48;18729:76;18800:4;18791:6;18729:76;:::i;:::-;18721:84;;18815:72;18883:2;18872:9;18868:18;18859:6;18815:72;:::i;:::-;18163:731;;;;;;;:::o;18900:297::-;19040:34;19036:1;19028:6;19024:14;19017:58;19109:34;19104:2;19096:6;19092:15;19085:59;19178:11;19173:2;19165:6;19161:15;19154:36;18900:297;:::o;19203:366::-;19345:3;19366:67;19430:2;19425:3;19366:67;:::i;:::-;19359:74;;19442:93;19531:3;19442:93;:::i;:::-;19560:2;19555:3;19551:12;19544:19;;19203:366;;;:::o;19575:419::-;19741:4;19779:2;19768:9;19764:18;19756:26;;19828:9;19822:4;19818:20;19814:1;19803:9;19799:17;19792:47;19856:131;19982:4;19856:131;:::i;:::-;19848:139;;19575:419;;;:::o;20000:247::-;20140:34;20136:1;20128:6;20124:14;20117:58;20209:30;20204:2;20196:6;20192:15;20185:55;20000:247;:::o;20253:366::-;20395:3;20416:67;20480:2;20475:3;20416:67;:::i;:::-;20409:74;;20492:93;20581:3;20492:93;:::i;:::-;20610:2;20605:3;20601:12;20594:19;;20253:366;;;:::o;20625:419::-;20791:4;20829:2;20818:9;20814:18;20806:26;;20878:9;20872:4;20868:20;20864:1;20853:9;20849:17;20842:47;20906:131;21032:4;20906:131;:::i;:::-;20898:139;;20625:419;;;:::o;21050:179::-;21190:31;21186:1;21178:6;21174:14;21167:55;21050:179;:::o;21235:366::-;21377:3;21398:67;21462:2;21457:3;21398:67;:::i;:::-;21391:74;;21474:93;21563:3;21474:93;:::i;:::-;21592:2;21587:3;21583:12;21576:19;;21235:366;;;:::o;21607:419::-;21773:4;21811:2;21800:9;21796:18;21788:26;;21860:9;21854:4;21850:20;21846:1;21835:9;21831:17;21824:47;21888:131;22014:4;21888:131;:::i;:::-;21880:139;;21607:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","admin()":"f851a440","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","changeAdmin(address)":"8f283970","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","getBlockTimestamp()":"796b89b9","getTxHash(address,uint256,string,bytes,uint256)":"04a71576","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"CancelTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"QueueTransaction\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"getTxHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"executeTime\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"cancelTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u53d6\\u6d88\\u7279\\u5b9a\\u4ea4\\u6613\\u3002 \\u8981\\u6c42\\uff1a\\u4ea4\\u6613\\u5728\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d\"},\"changeAdmin(address)\":{\"details\":\"\\u6539\\u53d8\\u7ba1\\u7406\\u5458\\u5730\\u5740\\uff0c\\u8c03\\u7528\\u8005\\u5fc5\\u987b\\u662fTimelock\\u5408\\u7ea6\\u3002\"},\"constructor\":{\"details\":\"\\u6784\\u9020\\u51fd\\u6570\\uff0c\\u521d\\u59cb\\u5316\\u4ea4\\u6613\\u9501\\u5b9a\\u65f6\\u95f4 \\uff08\\u79d2\\uff09\\u548c\\u7ba1\\u7406\\u5458\\u5730\\u5740\"},\"executeTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u6267\\u884c\\u7279\\u5b9a\\u4ea4\\u6613\\u3002 \\u8981\\u6c42\\uff1a 1. \\u4ea4\\u6613\\u5728\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d 2. \\u8fbe\\u5230\\u4ea4\\u6613\\u7684\\u6267\\u884c\\u65f6\\u95f4 3. \\u4ea4\\u6613\\u6ca1\\u8fc7\\u671f\"},\"getBlockTimestamp()\":{\"details\":\"\\u83b7\\u53d6\\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233\"},\"getTxHash(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u5c06\\u4e00\\u5806\\u4e1c\\u897f\\u62fc\\u6210\\u4ea4\\u6613\\u7684\\u6807\\u8bc6\\u7b26\"},\"queueTransaction(address,uint256,string,bytes,uint256)\":{\"details\":\"\\u521b\\u5efa\\u4ea4\\u6613\\u5e76\\u6dfb\\u52a0\\u5230\\u65f6\\u95f4\\u9501\\u961f\\u5217\\u4e2d\\u3002\",\"params\":{\"data\":\": call data\\uff0c\\u91cc\\u9762\\u662f\\u4e00\\u4e9b\\u53c2\\u6570\",\"executeTime\":\": \\u4ea4\\u6613\\u6267\\u884c\\u7684\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233 \\u8981\\u6c42\\uff1aexecuteTime \\u5927\\u4e8e \\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233+delay\",\"signature\":\": \\u8981\\u8c03\\u7528\\u7684\\u51fd\\u6570\\u7b7e\\u540d\\uff08function signature\\uff09\",\"target\":\": \\u76ee\\u6807\\u5408\\u7ea6\\u5730\\u5740\",\"value\":\": \\u53d1\\u9001eth\\u6570\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/45_Timelock/Timelock.sol\":\"Timelock\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/45_Timelock/Timelock.sol\":{\"keccak256\":\"0xcb01a3d256ae70955d8a27ca75897a4c58250181ca1ce3cebb6c0bd83ebcdc60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d99d7790e939f8a932e4932a7fa3a78d57395d94df05cc1d0d6959b243447e1a\",\"dweb:/ipfs/Qmd6GwxxfbSi122H4YsWL6btRSyAGhi4gUSAg246VGJAZK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"CancelTransaction","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"ExecuteTransaction","anonymous":false},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"NewAdmin","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"string","name":"signature","type":"string","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"uint256","name":"executeTime","type":"uint256","indexed":false}],"type":"event","name":"QueueTransaction","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"cancelTransaction"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeAdmin"},{"inputs":[],"stateMutability":"view","type":"function","name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"payable","type":"function","name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getTxHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"cancelTransaction(address,uint256,string,bytes,uint256)":{"details":"取消特定交易。 要求:交易在时间锁队列中"},"changeAdmin(address)":{"details":"改变管理员地址,调用者必须是Timelock合约。"},"constructor":{"details":"构造函数,初始化交易锁定时间 (秒)和管理员地址"},"executeTransaction(address,uint256,string,bytes,uint256)":{"details":"执行特定交易。 要求: 1. 交易在时间锁队列中 2. 达到交易的执行时间 3. 交易没过期"},"getBlockTimestamp()":{"details":"获取当前区块链时间戳"},"getTxHash(address,uint256,string,bytes,uint256)":{"details":"将一堆东西拼成交易的标识符"},"queueTransaction(address,uint256,string,bytes,uint256)":{"details":"创建交易并添加到时间锁队列中。","params":{"data":": call data,里面是一些参数","executeTime":": 交易执行的区块链时间戳 要求:executeTime 大于 当前区块链时间戳+delay","signature":": 要调用的函数签名(function signature)","target":": 目标合约地址","value":": 发送eth数额"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/45_Timelock/Timelock.sol":"Timelock"},"evmVersion":"prague","libraries":{}},"sources":{"src/45_Timelock/Timelock.sol":{"keccak256":"0xcb01a3d256ae70955d8a27ca75897a4c58250181ca1ce3cebb6c0bd83ebcdc60","urls":["bzz-raw://d99d7790e939f8a932e4932a7fa3a78d57395d94df05cc1d0d6959b243447e1a","dweb:/ipfs/Qmd6GwxxfbSi122H4YsWL6btRSyAGhi4gUSAg246VGJAZK"],"license":"MIT"}},"version":1},"id":98} \ No newline at end of file diff --git a/out/TokenLocker.sol/TokenLocker.json b/out/TokenLocker.sol/TokenLocker.json index 769290a5..d910c429 100644 --- a/out/TokenLocker.sol/TokenLocker.json +++ b/out/TokenLocker.sol/TokenLocker.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"token_","type":"address","internalType":"contract IERC20"},{"name":"beneficiary_","type":"address","internalType":"address"},{"name":"lockTime_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"beneficiary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"lockTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"Release","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"releaseTime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenLockStart","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"startTime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lockTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x610100604052348015610010575f5ffd5b50604051610b63380380610b6383398181016040528101906100329190610227565b5f8111610074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006b906102f7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508060c081815250504260e081815250508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fe5d7d4b5cb0219916a8be73968f7baf3c806fd018b0cc5598f5129436cf5c316428460405161014b929190610324565b60405180910390a350505061034b565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101888261015f565b9050919050565b5f6101998261017e565b9050919050565b6101a98161018f565b81146101b3575f5ffd5b50565b5f815190506101c4816101a0565b92915050565b6101d38161017e565b81146101dd575f5ffd5b50565b5f815190506101ee816101ca565b92915050565b5f819050919050565b610206816101f4565b8114610210575f5ffd5b50565b5f81519050610221816101fd565b92915050565b5f5f5f6060848603121561023e5761023d61015b565b5b5f61024b868287016101b6565b935050602061025c868287016101e0565b925050604061026d86828701610213565b9150509250925092565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a206c6f636b2074696d652073686f756c6420677265615f8201527f746572207468616e203000000000000000000000000000000000000000000000602082015250565b5f6102e1602a83610277565b91506102ec82610287565b604082019050919050565b5f6020820190508181035f83015261030e816102d5565b9050919050565b61031e816101f4565b82525050565b5f6040820190506103375f830185610315565b6103446020830184610315565b9392505050565b60805160a05160c05160e0516107bc6103a75f395f8181610125015261016a01525f818160dd015261014901525f818161010101526102f001525f81816101d8015281816102b40152818161037001526103fa01526107bc5ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630d6680871461005957806338af3eed1461007757806378e979251461009557806386d1a69f146100b3578063fc0c546a146100bd575b5f5ffd5b6100616100db565b60405161006e9190610434565b60405180910390f35b61007f6100ff565b60405161008c919061048c565b60405180910390f35b61009d610123565b6040516100aa9190610434565b60405180910390f35b6100bb610147565b005b6100c56103f8565b6040516100d29190610500565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006101939190610546565b4210156101d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101cc906105f9565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161022f919061048c565b602060405180830381865afa15801561024a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610645565b90505f81116102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a9906106ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161032d9291906106d8565b6020604051808303815f875af1158015610349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d9190610734565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f10b55f01b1cfe0feeb7d144f66162661602d8e73256499b6d8342aac37ff067942846040516103ed92919061075f565b60405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61042e8161041c565b82525050565b5f6020820190506104475f830184610425565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104768261044d565b9050919050565b6104868161046c565b82525050565b5f60208201905061049f5f83018461047d565b92915050565b5f819050919050565b5f6104c86104c36104be8461044d565b6104a5565b61044d565b9050919050565b5f6104d9826104ae565b9050919050565b5f6104ea826104cf565b9050919050565b6104fa816104e0565b82525050565b5f6020820190506105135f8301846104f1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6105508261041c565b915061055b8361041c565b925082820190508082111561057357610572610519565b5b92915050565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a2063757272656e742074696d65206973206265666f725f8201527f652072656c656173652074696d65000000000000000000000000000000000000602082015250565b5f6105e3602e83610579565b91506105ee82610589565b604082019050919050565b5f6020820190508181035f830152610610816105d7565b9050919050565b5f5ffd5b6106248161041c565b811461062e575f5ffd5b50565b5f8151905061063f8161061b565b92915050565b5f6020828403121561065a57610659610617565b5b5f61066784828501610631565b91505092915050565b7f546f6b656e4c6f636b3a206e6f20746f6b656e7320746f2072656c65617365005f82015250565b5f6106a4601f83610579565b91506106af82610670565b602082019050919050565b5f6020820190508181035f8301526106d181610698565b9050919050565b5f6040820190506106eb5f83018561047d565b6106f86020830184610425565b9392505050565b5f8115159050919050565b610713816106ff565b811461071d575f5ffd5b50565b5f8151905061072e8161070a565b92915050565b5f6020828403121561074957610748610617565b5b5f61075684828501610720565b91505092915050565b5f6040820190506107725f830185610425565b61077f6020830184610425565b939250505056fea2646970667358221220ecce137a6d459c29fb0a4bb2b18d41597abc9d3e0f51df52e3bca10016a9ee8864736f6c63430008220033","sourceMap":"239:1670:103:-:0;;;1036:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1164:1;1152:9;:13;1144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1230:6;1222:14;;;;;;;;;;1260:12;1246:26;;;;;;;;;;1293:9;1282:20;;;;;;1324:15;1312:27;;;;;;1392:6;1355:73;;1370:12;1355:73;;;1401:15;1418:9;1355:73;;;;;;;:::i;:::-;;;;;;;;1036:399;;;239:1670;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:112::-;621:7;650:24;668:5;650:24;:::i;:::-;639:35;;568:112;;;:::o;686:154::-;775:40;809:5;775:40;:::i;:::-;768:5;765:51;755:79;;830:1;827;820:12;755:79;686:154;:::o;846:175::-;919:5;950:6;944:13;935:22;;966:49;1009:5;966:49;:::i;:::-;846:175;;;;:::o;1027:122::-;1100:24;1118:5;1100:24;:::i;:::-;1093:5;1090:35;1080:63;;1139:1;1136;1129:12;1080:63;1027:122;:::o;1155:143::-;1212:5;1243:6;1237:13;1228:22;;1259:33;1286:5;1259:33;:::i;:::-;1155:143;;;;:::o;1304:77::-;1341:7;1370:5;1359:16;;1304:77;;;:::o;1387:122::-;1460:24;1478:5;1460:24;:::i;:::-;1453:5;1450:35;1440:63;;1499:1;1496;1489:12;1440:63;1387:122;:::o;1515:143::-;1572:5;1603:6;1597:13;1588:22;;1619:33;1646:5;1619:33;:::i;:::-;1515:143;;;;:::o;1664:695::-;1768:6;1776;1784;1833:2;1821:9;1812:7;1808:23;1804:32;1801:119;;;1839:79;;:::i;:::-;1801:119;1959:1;1984:80;2056:7;2047:6;2036:9;2032:22;1984:80;:::i;:::-;1974:90;;1930:144;2113:2;2139:64;2195:7;2186:6;2175:9;2171:22;2139:64;:::i;:::-;2129:74;;2084:129;2252:2;2278:64;2334:7;2325:6;2314:9;2310:22;2278:64;:::i;:::-;2268:74;;2223:129;1664:695;;;;;:::o;2365:169::-;2449:11;2483:6;2478:3;2471:19;2523:4;2518:3;2514:14;2499:29;;2365:169;;;;:::o;2540:229::-;2680:34;2676:1;2668:6;2664:14;2657:58;2749:12;2744:2;2736:6;2732:15;2725:37;2540:229;:::o;2775:366::-;2917:3;2938:67;3002:2;2997:3;2938:67;:::i;:::-;2931:74;;3014:93;3103:3;3014:93;:::i;:::-;3132:2;3127:3;3123:12;3116:19;;2775:366;;;:::o;3147:419::-;3313:4;3351:2;3340:9;3336:18;3328:26;;3400:9;3394:4;3390:20;3386:1;3375:9;3371:17;3364:47;3428:131;3554:4;3428:131;:::i;:::-;3420:139;;3147:419;;;:::o;3572:118::-;3659:24;3677:5;3659:24;:::i;:::-;3654:3;3647:37;3572:118;;:::o;3696:332::-;3817:4;3855:2;3844:9;3840:18;3832:26;;3868:71;3936:1;3925:9;3921:17;3912:6;3868:71;:::i;:::-;3949:72;4017:2;4006:9;4002:18;3993:6;3949:72;:::i;:::-;3696:332;;;;;:::o;239:1670:103:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630d6680871461005957806338af3eed1461007757806378e979251461009557806386d1a69f146100b3578063fc0c546a146100bd575b5f5ffd5b6100616100db565b60405161006e9190610434565b60405180910390f35b61007f6100ff565b60405161008c919061048c565b60405180910390f35b61009d610123565b6040516100aa9190610434565b60405180910390f35b6100bb610147565b005b6100c56103f8565b6040516100d29190610500565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006101939190610546565b4210156101d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101cc906105f9565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161022f919061048c565b602060405180830381865afa15801561024a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610645565b90505f81116102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a9906106ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161032d9291906106d8565b6020604051808303815f875af1158015610349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d9190610734565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f10b55f01b1cfe0feeb7d144f66162661602d8e73256499b6d8342aac37ff067942846040516103ed92919061075f565b60405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61042e8161041c565b82525050565b5f6020820190506104475f830184610425565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104768261044d565b9050919050565b6104868161046c565b82525050565b5f60208201905061049f5f83018461047d565b92915050565b5f819050919050565b5f6104c86104c36104be8461044d565b6104a5565b61044d565b9050919050565b5f6104d9826104ae565b9050919050565b5f6104ea826104cf565b9050919050565b6104fa816104e0565b82525050565b5f6020820190506105135f8301846104f1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6105508261041c565b915061055b8361041c565b925082820190508082111561057357610572610519565b5b92915050565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a2063757272656e742074696d65206973206265666f725f8201527f652072656c656173652074696d65000000000000000000000000000000000000602082015250565b5f6105e3602e83610579565b91506105ee82610589565b604082019050919050565b5f6020820190508181035f830152610610816105d7565b9050919050565b5f5ffd5b6106248161041c565b811461062e575f5ffd5b50565b5f8151905061063f8161061b565b92915050565b5f6020828403121561065a57610659610617565b5b5f61066784828501610631565b91505092915050565b7f546f6b656e4c6f636b3a206e6f20746f6b656e7320746f2072656c65617365005f82015250565b5f6106a4601f83610579565b91506106af82610670565b602082019050919050565b5f6020820190508181035f8301526106d181610698565b9050919050565b5f6040820190506106eb5f83018561047d565b6106f86020830184610425565b9392505050565b5f8115159050919050565b610713816106ff565b811461071d575f5ffd5b50565b5f8151905061072e8161070a565b92915050565b5f6020828403121561074957610748610617565b5b5f61075684828501610720565b91505092915050565b5f6040820190506107725f830185610425565b61077f6020830184610425565b939250505056fea2646970667358221220ecce137a6d459c29fb0a4bb2b18d41597abc9d3e0f51df52e3bca10016a9ee8864736f6c63430008220033","sourceMap":"239:1670:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;600:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;740:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1524:383;;;:::i;:::-;;542:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;667:33;;;:::o;600:36::-;;;:::o;740:34::-;;;:::o;1524:383::-;1597:8;1587:9;:18;;;;:::i;:::-;1568:15;:37;;1560:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:14;1684:5;:15;;;1708:4;1684:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1667:47;;1741:1;1732:6;:10;1724:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;1789:5;:14;;;1804:11;1817:6;1789:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1868:5;1840:60;;1848:10;1840:60;;;1876:15;1893:6;1840:60;;;;;;;:::i;:::-;;;;;;;;1550:357;1524:383::o;542:29::-;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:60::-;1056:3;1077:5;1070:12;;1028:60;;;:::o;1094:142::-;1144:9;1177:53;1195:34;1204:24;1222:5;1204:24;:::i;:::-;1195:34;:::i;:::-;1177:53;:::i;:::-;1164:66;;1094:142;;;:::o;1242:126::-;1292:9;1325:37;1356:5;1325:37;:::i;:::-;1312:50;;1242:126;;;:::o;1374:142::-;1440:9;1473:37;1504:5;1473:37;:::i;:::-;1460:50;;1374:142;;;:::o;1522:163::-;1625:53;1672:5;1625:53;:::i;:::-;1620:3;1613:66;1522:163;;:::o;1691:254::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:87;1935:1;1924:9;1920:17;1911:6;1851:87;:::i;:::-;1691:254;;;;:::o;1951:180::-;1999:77;1996:1;1989:88;2096:4;2093:1;2086:15;2120:4;2117:1;2110:15;2137:191;2177:3;2196:20;2214:1;2196:20;:::i;:::-;2191:25;;2230:20;2248:1;2230:20;:::i;:::-;2225:25;;2273:1;2270;2266:9;2259:16;;2294:3;2291:1;2288:10;2285:36;;;2301:18;;:::i;:::-;2285:36;2137:191;;;;:::o;2334:169::-;2418:11;2452:6;2447:3;2440:19;2492:4;2487:3;2483:14;2468:29;;2334:169;;;;:::o;2509:233::-;2649:34;2645:1;2637:6;2633:14;2626:58;2718:16;2713:2;2705:6;2701:15;2694:41;2509:233;:::o;2748:366::-;2890:3;2911:67;2975:2;2970:3;2911:67;:::i;:::-;2904:74;;2987:93;3076:3;2987:93;:::i;:::-;3105:2;3100:3;3096:12;3089:19;;2748:366;;;:::o;3120:419::-;3286:4;3324:2;3313:9;3309:18;3301:26;;3373:9;3367:4;3363:20;3359:1;3348:9;3344:17;3337:47;3401:131;3527:4;3401:131;:::i;:::-;3393:139;;3120:419;;;:::o;3626:117::-;3735:1;3732;3725:12;3872:122;3945:24;3963:5;3945:24;:::i;:::-;3938:5;3935:35;3925:63;;3984:1;3981;3974:12;3925:63;3872:122;:::o;4000:143::-;4057:5;4088:6;4082:13;4073:22;;4104:33;4131:5;4104:33;:::i;:::-;4000:143;;;;:::o;4149:351::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:64;4475:7;4466:6;4455:9;4451:22;4419:64;:::i;:::-;4409:74;;4365:128;4149:351;;;;:::o;4506:181::-;4646:33;4642:1;4634:6;4630:14;4623:57;4506:181;:::o;4693:366::-;4835:3;4856:67;4920:2;4915:3;4856:67;:::i;:::-;4849:74;;4932:93;5021:3;4932:93;:::i;:::-;5050:2;5045:3;5041:12;5034:19;;4693:366;;;:::o;5065:419::-;5231:4;5269:2;5258:9;5254:18;5246:26;;5318:9;5312:4;5308:20;5304:1;5293:9;5289:17;5282:47;5346:131;5472:4;5346:131;:::i;:::-;5338:139;;5065:419;;;:::o;5490:332::-;5611:4;5649:2;5638:9;5634:18;5626:26;;5662:71;5730:1;5719:9;5715:17;5706:6;5662:71;:::i;:::-;5743:72;5811:2;5800:9;5796:18;5787:6;5743:72;:::i;:::-;5490:332;;;;;:::o;5828:90::-;5862:7;5905:5;5898:13;5891:21;5880:32;;5828:90;;;:::o;5924:116::-;5994:21;6009:5;5994:21;:::i;:::-;5987:5;5984:32;5974:60;;6030:1;6027;6020:12;5974:60;5924:116;:::o;6046:137::-;6100:5;6131:6;6125:13;6116:22;;6147:30;6171:5;6147:30;:::i;:::-;6046:137;;;;:::o;6189:345::-;6256:6;6305:2;6293:9;6284:7;6280:23;6276:32;6273:119;;;6311:79;;:::i;:::-;6273:119;6431:1;6456:61;6509:7;6500:6;6489:9;6485:22;6456:61;:::i;:::-;6446:71;;6402:125;6189:345;;;;:::o;6540:332::-;6661:4;6699:2;6688:9;6684:18;6676:26;;6712:71;6780:1;6769:9;6765:17;6756:6;6712:71;:::i;:::-;6793:72;6861:2;6850:9;6846:18;6837:6;6793:72;:::i;:::-;6540:332;;;;;:::o","linkReferences":{},"immutableReferences":{"58351":[{"start":472,"length":32},{"start":692,"length":32},{"start":880,"length":32},{"start":1018,"length":32}],"58353":[{"start":257,"length":32},{"start":752,"length":32}],"58355":[{"start":221,"length":32},{"start":329,"length":32}],"58357":[{"start":293,"length":32},{"start":362,"length":32}]}},"methodIdentifiers":{"beneficiary()":"38af3eed","lockTime()":"0d668087","release()":"86d1a69f","startTime()":"78e97925","token()":"fc0c546a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lockTime_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockTime\",\"type\":\"uint256\"}],\"name\":\"TokenLockStart\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20\\u4ee3\\u5e01\\u65f6\\u95f4\\u9501\\u5408\\u7ea6\\u3002\\u53d7\\u76ca\\u4eba\\u5728\\u9501\\u4ed3\\u4e00\\u6bb5\\u65f6\\u95f4\\u540e\\u624d\\u80fd\\u53d6\\u51fa\\u4ee3\\u5e01\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u90e8\\u7f72\\u65f6\\u95f4\\u9501\\u5408\\u7ea6\\uff0c\\u521d\\u59cb\\u5316\\u4ee3\\u5e01\\u5408\\u7ea6\\u5730\\u5740\\uff0c\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\u548c\\u9501\\u4ed3\\u65f6\\u95f4\\u3002\",\"params\":{\"beneficiary_\":\": \\u53d7\\u76ca\\u4eba\\u5730\\u5740\",\"lockTime_\":\": \\u9501\\u4ed3\\u65f6\\u95f4(\\u79d2)\",\"token_\":\": \\u88ab\\u9501\\u4ed3\\u7684ERC20\\u4ee3\\u5e01\\u5408\\u7ea6\"}},\"release()\":{\"details\":\"\\u5728\\u9501\\u4ed3\\u65f6\\u95f4\\u8fc7\\u540e\\uff0c\\u5c06\\u4ee3\\u5e01\\u91ca\\u653e\\u7ed9\\u53d7\\u76ca\\u4eba\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/44_TokenLocker/TokenLocker.sol\":\"TokenLocker\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]},\"src/44_TokenLocker/TokenLocker.sol\":{\"keccak256\":\"0x857d85ce148f84e291eba6e68cc26a1bf17d77bc1da15756d0ec9400b5bfbd5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d84eee606d229389aee182359b54814a78c5cfb96f64c1e845bc646958fac5f\",\"dweb:/ipfs/QmR78zTvhoJ3XkE7d4Da7g6nmrNUe8k16DaQJD3kdyZ1kT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"beneficiary_","type":"address"},{"internalType":"uint256","name":"lockTime_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"releaseTime","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Release","anonymous":false},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"startTime","type":"uint256","indexed":false},{"internalType":"uint256","name":"lockTime","type":"uint256","indexed":false}],"type":"event","name":"TokenLockStart","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"部署时间锁合约,初始化代币合约地址,受益人地址和锁仓时间。","params":{"beneficiary_":": 受益人地址","lockTime_":": 锁仓时间(秒)","token_":": 被锁仓的ERC20代币合约"}},"release()":{"details":"在锁仓时间过后,将代币释放给受益人。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/44_TokenLocker/TokenLocker.sol":"TokenLocker"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"},"src/44_TokenLocker/TokenLocker.sol":{"keccak256":"0x857d85ce148f84e291eba6e68cc26a1bf17d77bc1da15756d0ec9400b5bfbd5b","urls":["bzz-raw://9d84eee606d229389aee182359b54814a78c5cfb96f64c1e845bc646958fac5f","dweb:/ipfs/QmR78zTvhoJ3XkE7d4Da7g6nmrNUe8k16DaQJD3kdyZ1kT"],"license":"MIT"}},"version":1},"id":103} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"token_","type":"address","internalType":"contract IERC20"},{"name":"beneficiary_","type":"address","internalType":"address"},{"name":"lockTime_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"beneficiary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"lockTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"Release","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"releaseTime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokenLockStart","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"startTime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"lockTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x610100604052348015610010575f5ffd5b50604051610b63380380610b6383398181016040528101906100329190610227565b5f8111610074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006b906102f7565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508060c081815250504260e081815250508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fe5d7d4b5cb0219916a8be73968f7baf3c806fd018b0cc5598f5129436cf5c316428460405161014b929190610324565b60405180910390a350505061034b565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101888261015f565b9050919050565b5f6101998261017e565b9050919050565b6101a98161018f565b81146101b3575f5ffd5b50565b5f815190506101c4816101a0565b92915050565b6101d38161017e565b81146101dd575f5ffd5b50565b5f815190506101ee816101ca565b92915050565b5f819050919050565b610206816101f4565b8114610210575f5ffd5b50565b5f81519050610221816101fd565b92915050565b5f5f5f6060848603121561023e5761023d61015b565b5b5f61024b868287016101b6565b935050602061025c868287016101e0565b925050604061026d86828701610213565b9150509250925092565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a206c6f636b2074696d652073686f756c6420677265615f8201527f746572207468616e203000000000000000000000000000000000000000000000602082015250565b5f6102e1602a83610277565b91506102ec82610287565b604082019050919050565b5f6020820190508181035f83015261030e816102d5565b9050919050565b61031e816101f4565b82525050565b5f6040820190506103375f830185610315565b6103446020830184610315565b9392505050565b60805160a05160c05160e0516107bc6103a75f395f8181610125015261016a01525f818160dd015261014901525f818161010101526102f001525f81816101d8015281816102b40152818161037001526103fa01526107bc5ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630d6680871461005957806338af3eed1461007757806378e979251461009557806386d1a69f146100b3578063fc0c546a146100bd575b5f5ffd5b6100616100db565b60405161006e9190610434565b60405180910390f35b61007f6100ff565b60405161008c919061048c565b60405180910390f35b61009d610123565b6040516100aa9190610434565b60405180910390f35b6100bb610147565b005b6100c56103f8565b6040516100d29190610500565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006101939190610546565b4210156101d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101cc906105f9565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161022f919061048c565b602060405180830381865afa15801561024a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610645565b90505f81116102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a9906106ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161032d9291906106d8565b6020604051808303815f875af1158015610349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d9190610734565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f10b55f01b1cfe0feeb7d144f66162661602d8e73256499b6d8342aac37ff067942846040516103ed92919061075f565b60405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61042e8161041c565b82525050565b5f6020820190506104475f830184610425565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104768261044d565b9050919050565b6104868161046c565b82525050565b5f60208201905061049f5f83018461047d565b92915050565b5f819050919050565b5f6104c86104c36104be8461044d565b6104a5565b61044d565b9050919050565b5f6104d9826104ae565b9050919050565b5f6104ea826104cf565b9050919050565b6104fa816104e0565b82525050565b5f6020820190506105135f8301846104f1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6105508261041c565b915061055b8361041c565b925082820190508082111561057357610572610519565b5b92915050565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a2063757272656e742074696d65206973206265666f725f8201527f652072656c656173652074696d65000000000000000000000000000000000000602082015250565b5f6105e3602e83610579565b91506105ee82610589565b604082019050919050565b5f6020820190508181035f830152610610816105d7565b9050919050565b5f5ffd5b6106248161041c565b811461062e575f5ffd5b50565b5f8151905061063f8161061b565b92915050565b5f6020828403121561065a57610659610617565b5b5f61066784828501610631565b91505092915050565b7f546f6b656e4c6f636b3a206e6f20746f6b656e7320746f2072656c65617365005f82015250565b5f6106a4601f83610579565b91506106af82610670565b602082019050919050565b5f6020820190508181035f8301526106d181610698565b9050919050565b5f6040820190506106eb5f83018561047d565b6106f86020830184610425565b9392505050565b5f8115159050919050565b610713816106ff565b811461071d575f5ffd5b50565b5f8151905061072e8161070a565b92915050565b5f6020828403121561074957610748610617565b5b5f61075684828501610720565b91505092915050565b5f6040820190506107725f830185610425565b61077f6020830184610425565b939250505056fea2646970667358221220ecce137a6d459c29fb0a4bb2b18d41597abc9d3e0f51df52e3bca10016a9ee8864736f6c63430008220033","sourceMap":"239:1670:97:-:0;;;1036:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1164:1;1152:9;:13;1144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1230:6;1222:14;;;;;;;;;;1260:12;1246:26;;;;;;;;;;1293:9;1282:20;;;;;;1324:15;1312:27;;;;;;1392:6;1355:73;;1370:12;1355:73;;;1401:15;1418:9;1355:73;;;;;;;:::i;:::-;;;;;;;;1036:399;;;239:1670;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:112::-;621:7;650:24;668:5;650:24;:::i;:::-;639:35;;568:112;;;:::o;686:154::-;775:40;809:5;775:40;:::i;:::-;768:5;765:51;755:79;;830:1;827;820:12;755:79;686:154;:::o;846:175::-;919:5;950:6;944:13;935:22;;966:49;1009:5;966:49;:::i;:::-;846:175;;;;:::o;1027:122::-;1100:24;1118:5;1100:24;:::i;:::-;1093:5;1090:35;1080:63;;1139:1;1136;1129:12;1080:63;1027:122;:::o;1155:143::-;1212:5;1243:6;1237:13;1228:22;;1259:33;1286:5;1259:33;:::i;:::-;1155:143;;;;:::o;1304:77::-;1341:7;1370:5;1359:16;;1304:77;;;:::o;1387:122::-;1460:24;1478:5;1460:24;:::i;:::-;1453:5;1450:35;1440:63;;1499:1;1496;1489:12;1440:63;1387:122;:::o;1515:143::-;1572:5;1603:6;1597:13;1588:22;;1619:33;1646:5;1619:33;:::i;:::-;1515:143;;;;:::o;1664:695::-;1768:6;1776;1784;1833:2;1821:9;1812:7;1808:23;1804:32;1801:119;;;1839:79;;:::i;:::-;1801:119;1959:1;1984:80;2056:7;2047:6;2036:9;2032:22;1984:80;:::i;:::-;1974:90;;1930:144;2113:2;2139:64;2195:7;2186:6;2175:9;2171:22;2139:64;:::i;:::-;2129:74;;2084:129;2252:2;2278:64;2334:7;2325:6;2314:9;2310:22;2278:64;:::i;:::-;2268:74;;2223:129;1664:695;;;;;:::o;2365:169::-;2449:11;2483:6;2478:3;2471:19;2523:4;2518:3;2514:14;2499:29;;2365:169;;;;:::o;2540:229::-;2680:34;2676:1;2668:6;2664:14;2657:58;2749:12;2744:2;2736:6;2732:15;2725:37;2540:229;:::o;2775:366::-;2917:3;2938:67;3002:2;2997:3;2938:67;:::i;:::-;2931:74;;3014:93;3103:3;3014:93;:::i;:::-;3132:2;3127:3;3123:12;3116:19;;2775:366;;;:::o;3147:419::-;3313:4;3351:2;3340:9;3336:18;3328:26;;3400:9;3394:4;3390:20;3386:1;3375:9;3371:17;3364:47;3428:131;3554:4;3428:131;:::i;:::-;3420:139;;3147:419;;;:::o;3572:118::-;3659:24;3677:5;3659:24;:::i;:::-;3654:3;3647:37;3572:118;;:::o;3696:332::-;3817:4;3855:2;3844:9;3840:18;3832:26;;3868:71;3936:1;3925:9;3921:17;3912:6;3868:71;:::i;:::-;3949:72;4017:2;4006:9;4002:18;3993:6;3949:72;:::i;:::-;3696:332;;;;;:::o;239:1670:97:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630d6680871461005957806338af3eed1461007757806378e979251461009557806386d1a69f146100b3578063fc0c546a146100bd575b5f5ffd5b6100616100db565b60405161006e9190610434565b60405180910390f35b61007f6100ff565b60405161008c919061048c565b60405180910390f35b61009d610123565b6040516100aa9190610434565b60405180910390f35b6100bb610147565b005b6100c56103f8565b6040516100d29190610500565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006101939190610546565b4210156101d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101cc906105f9565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161022f919061048c565b602060405180830381865afa15801561024a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610645565b90505f81116102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a9906106ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161032d9291906106d8565b6020604051808303815f875af1158015610349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036d9190610734565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f10b55f01b1cfe0feeb7d144f66162661602d8e73256499b6d8342aac37ff067942846040516103ed92919061075f565b60405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61042e8161041c565b82525050565b5f6020820190506104475f830184610425565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104768261044d565b9050919050565b6104868161046c565b82525050565b5f60208201905061049f5f83018461047d565b92915050565b5f819050919050565b5f6104c86104c36104be8461044d565b6104a5565b61044d565b9050919050565b5f6104d9826104ae565b9050919050565b5f6104ea826104cf565b9050919050565b6104fa816104e0565b82525050565b5f6020820190506105135f8301846104f1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6105508261041c565b915061055b8361041c565b925082820190508082111561057357610572610519565b5b92915050565b5f82825260208201905092915050565b7f546f6b656e4c6f636b3a2063757272656e742074696d65206973206265666f725f8201527f652072656c656173652074696d65000000000000000000000000000000000000602082015250565b5f6105e3602e83610579565b91506105ee82610589565b604082019050919050565b5f6020820190508181035f830152610610816105d7565b9050919050565b5f5ffd5b6106248161041c565b811461062e575f5ffd5b50565b5f8151905061063f8161061b565b92915050565b5f6020828403121561065a57610659610617565b5b5f61066784828501610631565b91505092915050565b7f546f6b656e4c6f636b3a206e6f20746f6b656e7320746f2072656c65617365005f82015250565b5f6106a4601f83610579565b91506106af82610670565b602082019050919050565b5f6020820190508181035f8301526106d181610698565b9050919050565b5f6040820190506106eb5f83018561047d565b6106f86020830184610425565b9392505050565b5f8115159050919050565b610713816106ff565b811461071d575f5ffd5b50565b5f8151905061072e8161070a565b92915050565b5f6020828403121561074957610748610617565b5b5f61075684828501610720565b91505092915050565b5f6040820190506107725f830185610425565b61077f6020830184610425565b939250505056fea2646970667358221220ecce137a6d459c29fb0a4bb2b18d41597abc9d3e0f51df52e3bca10016a9ee8864736f6c63430008220033","sourceMap":"239:1670:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;600:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;740:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1524:383;;;:::i;:::-;;542:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;667:33;;;:::o;600:36::-;;;:::o;740:34::-;;;:::o;1524:383::-;1597:8;1587:9;:18;;;;:::i;:::-;1568:15;:37;;1560:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:14;1684:5;:15;;;1708:4;1684:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1667:47;;1741:1;1732:6;:10;1724:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;1789:5;:14;;;1804:11;1817:6;1789:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1868:5;1840:60;;1848:10;1840:60;;;1876:15;1893:6;1840:60;;;;;;;:::i;:::-;;;;;;;;1550:357;1524:383::o;542:29::-;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:60::-;1056:3;1077:5;1070:12;;1028:60;;;:::o;1094:142::-;1144:9;1177:53;1195:34;1204:24;1222:5;1204:24;:::i;:::-;1195:34;:::i;:::-;1177:53;:::i;:::-;1164:66;;1094:142;;;:::o;1242:126::-;1292:9;1325:37;1356:5;1325:37;:::i;:::-;1312:50;;1242:126;;;:::o;1374:142::-;1440:9;1473:37;1504:5;1473:37;:::i;:::-;1460:50;;1374:142;;;:::o;1522:163::-;1625:53;1672:5;1625:53;:::i;:::-;1620:3;1613:66;1522:163;;:::o;1691:254::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:87;1935:1;1924:9;1920:17;1911:6;1851:87;:::i;:::-;1691:254;;;;:::o;1951:180::-;1999:77;1996:1;1989:88;2096:4;2093:1;2086:15;2120:4;2117:1;2110:15;2137:191;2177:3;2196:20;2214:1;2196:20;:::i;:::-;2191:25;;2230:20;2248:1;2230:20;:::i;:::-;2225:25;;2273:1;2270;2266:9;2259:16;;2294:3;2291:1;2288:10;2285:36;;;2301:18;;:::i;:::-;2285:36;2137:191;;;;:::o;2334:169::-;2418:11;2452:6;2447:3;2440:19;2492:4;2487:3;2483:14;2468:29;;2334:169;;;;:::o;2509:233::-;2649:34;2645:1;2637:6;2633:14;2626:58;2718:16;2713:2;2705:6;2701:15;2694:41;2509:233;:::o;2748:366::-;2890:3;2911:67;2975:2;2970:3;2911:67;:::i;:::-;2904:74;;2987:93;3076:3;2987:93;:::i;:::-;3105:2;3100:3;3096:12;3089:19;;2748:366;;;:::o;3120:419::-;3286:4;3324:2;3313:9;3309:18;3301:26;;3373:9;3367:4;3363:20;3359:1;3348:9;3344:17;3337:47;3401:131;3527:4;3401:131;:::i;:::-;3393:139;;3120:419;;;:::o;3626:117::-;3735:1;3732;3725:12;3872:122;3945:24;3963:5;3945:24;:::i;:::-;3938:5;3935:35;3925:63;;3984:1;3981;3974:12;3925:63;3872:122;:::o;4000:143::-;4057:5;4088:6;4082:13;4073:22;;4104:33;4131:5;4104:33;:::i;:::-;4000:143;;;;:::o;4149:351::-;4219:6;4268:2;4256:9;4247:7;4243:23;4239:32;4236:119;;;4274:79;;:::i;:::-;4236:119;4394:1;4419:64;4475:7;4466:6;4455:9;4451:22;4419:64;:::i;:::-;4409:74;;4365:128;4149:351;;;;:::o;4506:181::-;4646:33;4642:1;4634:6;4630:14;4623:57;4506:181;:::o;4693:366::-;4835:3;4856:67;4920:2;4915:3;4856:67;:::i;:::-;4849:74;;4932:93;5021:3;4932:93;:::i;:::-;5050:2;5045:3;5041:12;5034:19;;4693:366;;;:::o;5065:419::-;5231:4;5269:2;5258:9;5254:18;5246:26;;5318:9;5312:4;5308:20;5304:1;5293:9;5289:17;5282:47;5346:131;5472:4;5346:131;:::i;:::-;5338:139;;5065:419;;;:::o;5490:332::-;5611:4;5649:2;5638:9;5634:18;5626:26;;5662:71;5730:1;5719:9;5715:17;5706:6;5662:71;:::i;:::-;5743:72;5811:2;5800:9;5796:18;5787:6;5743:72;:::i;:::-;5490:332;;;;;:::o;5828:90::-;5862:7;5905:5;5898:13;5891:21;5880:32;;5828:90;;;:::o;5924:116::-;5994:21;6009:5;5994:21;:::i;:::-;5987:5;5984:32;5974:60;;6030:1;6027;6020:12;5974:60;5924:116;:::o;6046:137::-;6100:5;6131:6;6125:13;6116:22;;6147:30;6171:5;6147:30;:::i;:::-;6046:137;;;;:::o;6189:345::-;6256:6;6305:2;6293:9;6284:7;6280:23;6276:32;6273:119;;;6311:79;;:::i;:::-;6273:119;6431:1;6456:61;6509:7;6500:6;6489:9;6485:22;6456:61;:::i;:::-;6446:71;;6402:125;6189:345;;;;:::o;6540:332::-;6661:4;6699:2;6688:9;6684:18;6676:26;;6712:71;6780:1;6769:9;6765:17;6756:6;6712:71;:::i;:::-;6793:72;6861:2;6850:9;6846:18;6837:6;6793:72;:::i;:::-;6540:332;;;;;:::o","linkReferences":{},"immutableReferences":{"57448":[{"start":472,"length":32},{"start":692,"length":32},{"start":880,"length":32},{"start":1018,"length":32}],"57450":[{"start":257,"length":32},{"start":752,"length":32}],"57452":[{"start":221,"length":32},{"start":329,"length":32}],"57454":[{"start":293,"length":32},{"start":362,"length":32}]}},"methodIdentifiers":{"beneficiary()":"38af3eed","lockTime()":"0d668087","release()":"86d1a69f","startTime()":"78e97925","token()":"fc0c546a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lockTime_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockTime\",\"type\":\"uint256\"}],\"name\":\"TokenLockStart\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20\\u4ee3\\u5e01\\u65f6\\u95f4\\u9501\\u5408\\u7ea6\\u3002\\u53d7\\u76ca\\u4eba\\u5728\\u9501\\u4ed3\\u4e00\\u6bb5\\u65f6\\u95f4\\u540e\\u624d\\u80fd\\u53d6\\u51fa\\u4ee3\\u5e01\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u90e8\\u7f72\\u65f6\\u95f4\\u9501\\u5408\\u7ea6\\uff0c\\u521d\\u59cb\\u5316\\u4ee3\\u5e01\\u5408\\u7ea6\\u5730\\u5740\\uff0c\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\u548c\\u9501\\u4ed3\\u65f6\\u95f4\\u3002\",\"params\":{\"beneficiary_\":\": \\u53d7\\u76ca\\u4eba\\u5730\\u5740\",\"lockTime_\":\": \\u9501\\u4ed3\\u65f6\\u95f4(\\u79d2)\",\"token_\":\": \\u88ab\\u9501\\u4ed3\\u7684ERC20\\u4ee3\\u5e01\\u5408\\u7ea6\"}},\"release()\":{\"details\":\"\\u5728\\u9501\\u4ed3\\u65f6\\u95f4\\u8fc7\\u540e\\uff0c\\u5c06\\u4ee3\\u5e01\\u91ca\\u653e\\u7ed9\\u53d7\\u76ca\\u4eba\\u3002\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/44_TokenLocker/TokenLocker.sol\":\"TokenLocker\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]},\"src/44_TokenLocker/TokenLocker.sol\":{\"keccak256\":\"0x857d85ce148f84e291eba6e68cc26a1bf17d77bc1da15756d0ec9400b5bfbd5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d84eee606d229389aee182359b54814a78c5cfb96f64c1e845bc646958fac5f\",\"dweb:/ipfs/QmR78zTvhoJ3XkE7d4Da7g6nmrNUe8k16DaQJD3kdyZ1kT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"token_","type":"address"},{"internalType":"address","name":"beneficiary_","type":"address"},{"internalType":"uint256","name":"lockTime_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"releaseTime","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Release","anonymous":false},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"startTime","type":"uint256","indexed":false},{"internalType":"uint256","name":"lockTime","type":"uint256","indexed":false}],"type":"event","name":"TokenLockStart","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"部署时间锁合约,初始化代币合约地址,受益人地址和锁仓时间。","params":{"beneficiary_":": 受益人地址","lockTime_":": 锁仓时间(秒)","token_":": 被锁仓的ERC20代币合约"}},"release()":{"details":"在锁仓时间过后,将代币释放给受益人。"}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/44_TokenLocker/TokenLocker.sol":"TokenLocker"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"},"src/44_TokenLocker/TokenLocker.sol":{"keccak256":"0x857d85ce148f84e291eba6e68cc26a1bf17d77bc1da15756d0ec9400b5bfbd5b","urls":["bzz-raw://9d84eee606d229389aee182359b54814a78c5cfb96f64c1e845bc646958fac5f","dweb:/ipfs/QmR78zTvhoJ3XkE7d4Da7g6nmrNUe8k16DaQJD3kdyZ1kT"],"license":"MIT"}},"version":1},"id":97} \ No newline at end of file diff --git a/out/TokenVesting.sol/TokenVesting.json b/out/TokenVesting.sol/TokenVesting.json index 02a22c6d..a6bdb919 100644 --- a/out/TokenVesting.sol/TokenVesting.json +++ b/out/TokenVesting.sol/TokenVesting.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"beneficiaryAddress","type":"address","internalType":"address"},{"name":"durationSeconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"beneficiary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"duration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"erc20Released","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"start","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vestedAmount","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"timestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ERC20Released","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561000f575f5ffd5b50604051610b2c380380610b2c8339818101604052810190610031919061017b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610239565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250504260a081815250508060c081815250505050610257565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610117826100ee565b9050919050565b6101278161010d565b8114610131575f5ffd5b50565b5f815190506101428161011e565b92915050565b5f819050919050565b61015a81610148565b8114610164575f5ffd5b50565b5f8151905061017581610151565b92915050565b5f5f60408385031215610191576101906100ea565b5b5f61019e85828601610134565b92505060206101af85828601610167565b9150509250929050565b5f82825260208201905092915050565b7f56657374696e6757616c6c65743a2062656e6566696369617279206973207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f610223602a836101b9565b915061022e826101c9565b604082019050919050565b5f6020820190508181035f83015261025081610217565b9050919050565b60805160a05160c0516108816102ab5f395f818161013c0152818161025401526102b001525f818161022301528181610275015281816102d101526104e801525f818161042c01526104b001526108815ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80630fb5a6b41461006457806317cf53911461008257806319165587146100b257806338af3eed146100ce578063bbc702c6146100ec578063be9a65551461011c575b5f5ffd5b61006c61013a565b6040516100799190610522565b60405180910390f35b61009c600480360381019061009791906105c3565b61015e565b6040516100a99190610522565b60405180910390f35b6100cc60048036038101906100c79190610601565b61031a565b005b6100d66104ae565b6040516100e3919061063b565b60405180910390f35b61010660048036038101906101019190610601565b6104d2565b6040516101139190610522565b60405180910390f35b6101246104e6565b6040516101319190610522565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101d6919061063b565b602060405180830381865afa1580156101f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102159190610668565b61021f91906106c0565b90507f0000000000000000000000000000000000000000000000000000000000000000831015610252575f915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061029e91906106c0565b8311156102ae5780915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846102fb91906106f3565b826103069190610726565b6103109190610794565b9150505b92915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610362834261015e565b61036c91906106f3565b9050805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103b991906106c0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516104069190610522565b60405180910390a28173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016104699291906107c4565b6020604051808303815f875af1158015610485573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a99190610820565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f602052805f5260405f205f915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61051c8161050a565b82525050565b5f6020820190506105355f830184610513565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105688261053f565b9050919050565b6105788161055e565b8114610582575f5ffd5b50565b5f813590506105938161056f565b92915050565b6105a28161050a565b81146105ac575f5ffd5b50565b5f813590506105bd81610599565b92915050565b5f5f604083850312156105d9576105d861053b565b5b5f6105e685828601610585565b92505060206105f7858286016105af565b9150509250929050565b5f602082840312156106165761061561053b565b5b5f61062384828501610585565b91505092915050565b6106358161055e565b82525050565b5f60208201905061064e5f83018461062c565b92915050565b5f8151905061066281610599565b92915050565b5f6020828403121561067d5761067c61053b565b5b5f61068a84828501610654565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106ca8261050a565b91506106d58361050a565b92508282019050808211156106ed576106ec610693565b5b92915050565b5f6106fd8261050a565b91506107088361050a565b92508282039050818111156107205761071f610693565b5b92915050565b5f6107308261050a565b915061073b8361050a565b92508282026107498161050a565b915082820484148315176107605761075f610693565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61079e8261050a565b91506107a98361050a565b9250826107b9576107b8610767565b5b828204905092915050565b5f6040820190506107d75f83018561062c565b6107e46020830184610513565b9392505050565b5f8115159050919050565b6107ff816107eb565b8114610809575f5ffd5b50565b5f8151905061081a816107f6565b92915050565b5f602082840312156108355761083461053b565b5b5f6108428482850161080c565b9150509291505056fea264697066735822122091411f859b9c29c973f385e06eb69e7212128dd2f4752e1e0af3046cb807e92764736f6c63430008220033","sourceMap":"546:2337:102:-:0;;;1124:302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1259:1;1229:32;;:18;:32;;;1221:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;1332:18;1318:32;;;;;;;;;;1368:15;1360:23;;;;;;1404:15;1393:26;;;;;;1124:302;;546:2337;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:77::-;882:7;911:5;900:16;;845:77;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:507::-;1284:6;1292;1341:2;1329:9;1320:7;1316:23;1312:32;1309:119;;;1347:79;;:::i;:::-;1309:119;1467:1;1492:64;1548:7;1539:6;1528:9;1524:22;1492:64;:::i;:::-;1482:74;;1438:128;1605:2;1631:64;1687:7;1678:6;1667:9;1663:22;1631:64;:::i;:::-;1621:74;;1576:129;1205:507;;;;;:::o;1718:169::-;1802:11;1836:6;1831:3;1824:19;1876:4;1871:3;1867:14;1852:29;;1718:169;;;;:::o;1893:229::-;2033:34;2029:1;2021:6;2017:14;2010:58;2102:12;2097:2;2089:6;2085:15;2078:37;1893:229;:::o;2128:366::-;2270:3;2291:67;2355:2;2350:3;2291:67;:::i;:::-;2284:74;;2367:93;2456:3;2367:93;:::i;:::-;2485:2;2480:3;2476:12;2469:19;;2128:366;;;:::o;2500:419::-;2666:4;2704:2;2693:9;2689:18;2681:26;;2753:9;2747:4;2743:20;2739:1;2728:9;2724:17;2717:47;2781:131;2907:4;2781:131;:::i;:::-;2773:139;;2500:419;;;:::o;546:2337:102:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80630fb5a6b41461006457806317cf53911461008257806319165587146100b257806338af3eed146100ce578063bbc702c6146100ec578063be9a65551461011c575b5f5ffd5b61006c61013a565b6040516100799190610522565b60405180910390f35b61009c600480360381019061009791906105c3565b61015e565b6040516100a99190610522565b60405180910390f35b6100cc60048036038101906100c79190610601565b61031a565b005b6100d66104ae565b6040516100e3919061063b565b60405180910390f35b61010660048036038101906101019190610601565b6104d2565b6040516101139190610522565b60405180910390f35b6101246104e6565b6040516101319190610522565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101d6919061063b565b602060405180830381865afa1580156101f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102159190610668565b61021f91906106c0565b90507f0000000000000000000000000000000000000000000000000000000000000000831015610252575f915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061029e91906106c0565b8311156102ae5780915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846102fb91906106f3565b826103069190610726565b6103109190610794565b9150505b92915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610362834261015e565b61036c91906106f3565b9050805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103b991906106c0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516104069190610522565b60405180910390a28173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016104699291906107c4565b6020604051808303815f875af1158015610485573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a99190610820565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f602052805f5260405f205f915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61051c8161050a565b82525050565b5f6020820190506105355f830184610513565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105688261053f565b9050919050565b6105788161055e565b8114610582575f5ffd5b50565b5f813590506105938161056f565b92915050565b6105a28161050a565b81146105ac575f5ffd5b50565b5f813590506105bd81610599565b92915050565b5f5f604083850312156105d9576105d861053b565b5b5f6105e685828601610585565b92505060206105f7858286016105af565b9150509250929050565b5f602082840312156106165761061561053b565b5b5f61062384828501610585565b91505092915050565b6106358161055e565b82525050565b5f60208201905061064e5f83018461062c565b92915050565b5f8151905061066281610599565b92915050565b5f6020828403121561067d5761067c61053b565b5b5f61068a84828501610654565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106ca8261050a565b91506106d58361050a565b92508282019050808211156106ed576106ec610693565b5b92915050565b5f6106fd8261050a565b91506107088361050a565b92508282039050818111156107205761071f610693565b5b92915050565b5f6107308261050a565b915061073b8361050a565b92508282026107498161050a565b915082820484148315176107605761075f610693565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61079e8261050a565b91506107a98361050a565b9250826107b9576107b8610767565b5b828204905092915050565b5f6040820190506107d75f83018561062c565b6107e46020830184610513565b9392505050565b5f8115159050919050565b6107ff816107eb565b8114610809575f5ffd5b50565b5f8151905061081a816107f6565b92915050565b5f602082840312156108355761083461053b565b5b5f6108428482850161080c565b9150509291505056fea264697066735822122091411f859b9c29c973f385e06eb69e7212128dd2f4752e1e0af3046cb807e92764736f6c63430008220033","sourceMap":"546:2337:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;949:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2304:577;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1631:437;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;824:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;689:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;885:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:33;;;:::o;2304:577::-;2381:7;2481:23;2548:13;:20;2562:5;2548:20;;;;;;;;;;;;;;;;2514:5;2507:23;;;2539:4;2507:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;;;:::i;:::-;2481:87;;2660:5;2648:9;:17;2644:231;;;2688:1;2681:8;;;;;2644:231;2730:8;2722:5;:16;;;;:::i;:::-;2710:9;:28;2706:169;;;2761:15;2754:22;;;;;2706:169;2856:8;2846:5;2834:9;:17;;;;:::i;:::-;2815:15;:37;;;;:::i;:::-;2814:50;;;;:::i;:::-;2807:57;;;2304:577;;;;;:::o;1631:437::-;1748:18;1817:13;:20;1831:5;1817:20;;;;;;;;;;;;;;;;1769:45;1782:5;1797:15;1769:12;:45::i;:::-;:68;;;;:::i;:::-;1748:89;;1913:10;1889:13;:20;1903:5;1889:20;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;1986:5;1972:32;;;1993:10;1972:32;;;;;;:::i;:::-;;;;;;;;2021:5;2014:22;;;2037:11;2050:10;2014:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1670:398;1631:437;:::o;824:36::-;;;:::o;689:48::-;;;;;;;;;;;;;;;;;:::o;885:30::-;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:122::-;1349:24;1367:5;1349:24;:::i;:::-;1342:5;1339:35;1329:63;;1388:1;1385;1378:12;1329:63;1276:122;:::o;1404:139::-;1450:5;1488:6;1475:20;1466:29;;1504:33;1531:5;1504:33;:::i;:::-;1404:139;;;;:::o;1549:474::-;1617:6;1625;1674:2;1662:9;1653:7;1649:23;1645:32;1642:119;;;1680:79;;:::i;:::-;1642:119;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1549:474;;;;;:::o;2029:329::-;2088:6;2137:2;2125:9;2116:7;2112:23;2108:32;2105:119;;;2143:79;;:::i;:::-;2105:119;2263:1;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2234:117;2029:329;;;;:::o;2364:118::-;2451:24;2469:5;2451:24;:::i;:::-;2446:3;2439:37;2364:118;;:::o;2488:222::-;2581:4;2619:2;2608:9;2604:18;2596:26;;2632:71;2700:1;2689:9;2685:17;2676:6;2632:71;:::i;:::-;2488:222;;;;:::o;2716:143::-;2773:5;2804:6;2798:13;2789:22;;2820:33;2847:5;2820:33;:::i;:::-;2716:143;;;;:::o;2865:351::-;2935:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:119;;;2990:79;;:::i;:::-;2952:119;3110:1;3135:64;3191:7;3182:6;3171:9;3167:22;3135:64;:::i;:::-;3125:74;;3081:128;2865:351;;;;:::o;3222:180::-;3270:77;3267:1;3260:88;3367:4;3364:1;3357:15;3391:4;3388:1;3381:15;3408:191;3448:3;3467:20;3485:1;3467:20;:::i;:::-;3462:25;;3501:20;3519:1;3501:20;:::i;:::-;3496:25;;3544:1;3541;3537:9;3530:16;;3565:3;3562:1;3559:10;3556:36;;;3572:18;;:::i;:::-;3556:36;3408:191;;;;:::o;3605:194::-;3645:4;3665:20;3683:1;3665:20;:::i;:::-;3660:25;;3699:20;3717:1;3699:20;:::i;:::-;3694:25;;3743:1;3740;3736:9;3728:17;;3767:1;3761:4;3758:11;3755:37;;;3772:18;;:::i;:::-;3755:37;3605:194;;;;:::o;3805:410::-;3845:7;3868:20;3886:1;3868:20;:::i;:::-;3863:25;;3902:20;3920:1;3902:20;:::i;:::-;3897:25;;3957:1;3954;3950:9;3979:30;3997:11;3979:30;:::i;:::-;3968:41;;4158:1;4149:7;4145:15;4142:1;4139:22;4119:1;4112:9;4092:83;4069:139;;4188:18;;:::i;:::-;4069:139;3853:362;3805:410;;;;:::o;4221:180::-;4269:77;4266:1;4259:88;4366:4;4363:1;4356:15;4390:4;4387:1;4380:15;4407:185;4447:1;4464:20;4482:1;4464:20;:::i;:::-;4459:25;;4498:20;4516:1;4498:20;:::i;:::-;4493:25;;4537:1;4527:35;;4542:18;;:::i;:::-;4527:35;4584:1;4581;4577:9;4572:14;;4407:185;;;;:::o;4598:332::-;4719:4;4757:2;4746:9;4742:18;4734:26;;4770:71;4838:1;4827:9;4823:17;4814:6;4770:71;:::i;:::-;4851:72;4919:2;4908:9;4904:18;4895:6;4851:72;:::i;:::-;4598:332;;;;;:::o;4936:90::-;4970:7;5013:5;5006:13;4999:21;4988:32;;4936:90;;;:::o;5032:116::-;5102:21;5117:5;5102:21;:::i;:::-;5095:5;5092:32;5082:60;;5138:1;5135;5128:12;5082:60;5032:116;:::o;5154:137::-;5208:5;5239:6;5233:13;5224:22;;5255:30;5279:5;5255:30;:::i;:::-;5154:137;;;;:::o;5297:345::-;5364:6;5413:2;5401:9;5392:7;5388:23;5384:32;5381:119;;;5419:79;;:::i;:::-;5381:119;5539:1;5564:61;5617:7;5608:6;5597:9;5593:22;5564:61;:::i;:::-;5554:71;;5510:125;5297:345;;;;:::o","linkReferences":{},"immutableReferences":{"58191":[{"start":1068,"length":32},{"start":1200,"length":32}],"58193":[{"start":547,"length":32},{"start":629,"length":32},{"start":721,"length":32},{"start":1256,"length":32}],"58195":[{"start":316,"length":32},{"start":596,"length":32},{"start":688,"length":32}]}},"methodIdentifiers":{"beneficiary()":"38af3eed","duration()":"0fb5a6b4","erc20Released(address)":"bbc702c6","release(address)":"19165587","start()":"be9a6555","vestedAmount(address,uint256)":"17cf5391"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiaryAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"durationSeconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20Released\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc20Released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4f1a\\u5c06ERC20\\u4ee3\\u5e01\\u7ebf\\u6027\\u91ca\\u653e\\u7ed9\\u7ed9\\u53d7\\u76ca\\u4eba`_beneficiary`\\u3002 \\u91ca\\u653e\\u7684\\u4ee3\\u5e01\\u53ef\\u4ee5\\u662f\\u4e00\\u79cd\\uff0c\\u4e5f\\u53ef\\u4ee5\\u662f\\u591a\\u79cd\\u3002\\u91ca\\u653e\\u5468\\u671f\\u7531\\u8d77\\u59cb\\u65f6\\u95f4`_start`\\u548c\\u65f6\\u957f`_duration`\\u5b9a\\u4e49\\u3002 \\u6240\\u6709\\u8f6c\\u5230\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4e0a\\u7684\\u4ee3\\u5e01\\u90fd\\u4f1a\\u9075\\u5faa\\u540c\\u6837\\u7684\\u7ebf\\u6027\\u91ca\\u653e\\u5468\\u671f\\uff0c\\u5e76\\u4e14\\u9700\\u8981\\u53d7\\u76ca\\u4eba\\u8c03\\u7528`release()`\\u51fd\\u6570\\u63d0\\u53d6\\u3002 \\u5408\\u7ea6\\u662f\\u4eceOpenZeppelin\\u7684VestingWallet\\u7b80\\u5316\\u800c\\u6765\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\uff0c\\u91ca\\u653e\\u5468\\u671f(\\u79d2), \\u8d77\\u59cb\\u65f6\\u95f4\\u6233(\\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233)\"},\"release(address)\":{\"details\":\"\\u53d7\\u76ca\\u4eba\\u63d0\\u53d6\\u5df2\\u91ca\\u653e\\u7684\\u4ee3\\u5e01\\u3002 \\u8c03\\u7528vestedAmount()\\u51fd\\u6570\\u8ba1\\u7b97\\u53ef\\u63d0\\u53d6\\u7684\\u4ee3\\u5e01\\u6570\\u91cf\\uff0c\\u7136\\u540etransfer\\u7ed9\\u53d7\\u76ca\\u4eba\\u3002 \\u91ca\\u653e {ERC20Released} \\u4e8b\\u4ef6.\"},\"vestedAmount(address,uint256)\":{\"details\":\"\\u6839\\u636e\\u7ebf\\u6027\\u91ca\\u653e\\u516c\\u5f0f\\uff0c\\u8ba1\\u7b97\\u5df2\\u7ecf\\u91ca\\u653e\\u7684\\u6570\\u91cf\\u3002\\u5f00\\u53d1\\u8005\\u53ef\\u4ee5\\u901a\\u8fc7\\u4fee\\u6539\\u8fd9\\u4e2a\\u51fd\\u6570\\uff0c\\u81ea\\u5b9a\\u4e49\\u91ca\\u653e\\u65b9\\u5f0f\\u3002\",\"params\":{\"timestamp\":\": \\u67e5\\u8be2\\u7684\\u65f6\\u95f4\\u6233\",\"token\":\": \\u4ee3\\u5e01\\u5730\\u5740\"}}},\"title\":\"ERC20\\u4ee3\\u5e01\\u7ebf\\u6027\\u91ca\\u653e\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/43_TokenVesting/TokenVesting.sol\":\"TokenVesting\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]},\"src/43_TokenVesting/TokenVesting.sol\":{\"keccak256\":\"0x18c1956bf9b7f7e4e9f0dfff5d10d2a5edc2c30fd29a52a9339204b062972b46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://975068be80201fd994831e6bdbf6821c1c0f9e23b387e08265a9b7883055bed9\",\"dweb:/ipfs/QmcRMByBF92gubcWU1e2cBCvQZNJmMcEtbxCU9trm5tnKH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"beneficiaryAddress","type":"address"},{"internalType":"uint256","name":"durationSeconds","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ERC20Released","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"erc20Released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"start","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function","name":"vestedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化受益人地址,释放周期(秒), 起始时间戳(当前区块链时间戳)"},"release(address)":{"details":"受益人提取已释放的代币。 调用vestedAmount()函数计算可提取的代币数量,然后transfer给受益人。 释放 {ERC20Released} 事件."},"vestedAmount(address,uint256)":{"details":"根据线性释放公式,计算已经释放的数量。开发者可以通过修改这个函数,自定义释放方式。","params":{"timestamp":": 查询的时间戳","token":": 代币地址"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/43_TokenVesting/TokenVesting.sol":"TokenVesting"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"},"src/43_TokenVesting/TokenVesting.sol":{"keccak256":"0x18c1956bf9b7f7e4e9f0dfff5d10d2a5edc2c30fd29a52a9339204b062972b46","urls":["bzz-raw://975068be80201fd994831e6bdbf6821c1c0f9e23b387e08265a9b7883055bed9","dweb:/ipfs/QmcRMByBF92gubcWU1e2cBCvQZNJmMcEtbxCU9trm5tnKH"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"beneficiaryAddress","type":"address","internalType":"address"},{"name":"durationSeconds","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"beneficiary","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"duration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"erc20Released","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"start","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vestedAmount","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"timestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ERC20Released","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e060405234801561000f575f5ffd5b50604051610b2c380380610b2c8339818101604052810190610031919061017b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610239565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250504260a081815250508060c081815250505050610257565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610117826100ee565b9050919050565b6101278161010d565b8114610131575f5ffd5b50565b5f815190506101428161011e565b92915050565b5f819050919050565b61015a81610148565b8114610164575f5ffd5b50565b5f8151905061017581610151565b92915050565b5f5f60408385031215610191576101906100ea565b5b5f61019e85828601610134565b92505060206101af85828601610167565b9150509250929050565b5f82825260208201905092915050565b7f56657374696e6757616c6c65743a2062656e6566696369617279206973207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f610223602a836101b9565b915061022e826101c9565b604082019050919050565b5f6020820190508181035f83015261025081610217565b9050919050565b60805160a05160c0516108816102ab5f395f818161013c0152818161025401526102b001525f818161022301528181610275015281816102d101526104e801525f818161042c01526104b001526108815ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80630fb5a6b41461006457806317cf53911461008257806319165587146100b257806338af3eed146100ce578063bbc702c6146100ec578063be9a65551461011c575b5f5ffd5b61006c61013a565b6040516100799190610522565b60405180910390f35b61009c600480360381019061009791906105c3565b61015e565b6040516100a99190610522565b60405180910390f35b6100cc60048036038101906100c79190610601565b61031a565b005b6100d66104ae565b6040516100e3919061063b565b60405180910390f35b61010660048036038101906101019190610601565b6104d2565b6040516101139190610522565b60405180910390f35b6101246104e6565b6040516101319190610522565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101d6919061063b565b602060405180830381865afa1580156101f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102159190610668565b61021f91906106c0565b90507f0000000000000000000000000000000000000000000000000000000000000000831015610252575f915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061029e91906106c0565b8311156102ae5780915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846102fb91906106f3565b826103069190610726565b6103109190610794565b9150505b92915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610362834261015e565b61036c91906106f3565b9050805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103b991906106c0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516104069190610522565b60405180910390a28173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016104699291906107c4565b6020604051808303815f875af1158015610485573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a99190610820565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f602052805f5260405f205f915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61051c8161050a565b82525050565b5f6020820190506105355f830184610513565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105688261053f565b9050919050565b6105788161055e565b8114610582575f5ffd5b50565b5f813590506105938161056f565b92915050565b6105a28161050a565b81146105ac575f5ffd5b50565b5f813590506105bd81610599565b92915050565b5f5f604083850312156105d9576105d861053b565b5b5f6105e685828601610585565b92505060206105f7858286016105af565b9150509250929050565b5f602082840312156106165761061561053b565b5b5f61062384828501610585565b91505092915050565b6106358161055e565b82525050565b5f60208201905061064e5f83018461062c565b92915050565b5f8151905061066281610599565b92915050565b5f6020828403121561067d5761067c61053b565b5b5f61068a84828501610654565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106ca8261050a565b91506106d58361050a565b92508282019050808211156106ed576106ec610693565b5b92915050565b5f6106fd8261050a565b91506107088361050a565b92508282039050818111156107205761071f610693565b5b92915050565b5f6107308261050a565b915061073b8361050a565b92508282026107498161050a565b915082820484148315176107605761075f610693565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61079e8261050a565b91506107a98361050a565b9250826107b9576107b8610767565b5b828204905092915050565b5f6040820190506107d75f83018561062c565b6107e46020830184610513565b9392505050565b5f8115159050919050565b6107ff816107eb565b8114610809575f5ffd5b50565b5f8151905061081a816107f6565b92915050565b5f602082840312156108355761083461053b565b5b5f6108428482850161080c565b9150509291505056fea264697066735822122091411f859b9c29c973f385e06eb69e7212128dd2f4752e1e0af3046cb807e92764736f6c63430008220033","sourceMap":"546:2337:96:-:0;;;1124:302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1259:1;1229:32;;:18;:32;;;1221:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;1332:18;1318:32;;;;;;;;;;1368:15;1360:23;;;;;;1404:15;1393:26;;;;;;1124:302;;546:2337;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:77::-;882:7;911:5;900:16;;845:77;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:507::-;1284:6;1292;1341:2;1329:9;1320:7;1316:23;1312:32;1309:119;;;1347:79;;:::i;:::-;1309:119;1467:1;1492:64;1548:7;1539:6;1528:9;1524:22;1492:64;:::i;:::-;1482:74;;1438:128;1605:2;1631:64;1687:7;1678:6;1667:9;1663:22;1631:64;:::i;:::-;1621:74;;1576:129;1205:507;;;;;:::o;1718:169::-;1802:11;1836:6;1831:3;1824:19;1876:4;1871:3;1867:14;1852:29;;1718:169;;;;:::o;1893:229::-;2033:34;2029:1;2021:6;2017:14;2010:58;2102:12;2097:2;2089:6;2085:15;2078:37;1893:229;:::o;2128:366::-;2270:3;2291:67;2355:2;2350:3;2291:67;:::i;:::-;2284:74;;2367:93;2456:3;2367:93;:::i;:::-;2485:2;2480:3;2476:12;2469:19;;2128:366;;;:::o;2500:419::-;2666:4;2704:2;2693:9;2689:18;2681:26;;2753:9;2747:4;2743:20;2739:1;2728:9;2724:17;2717:47;2781:131;2907:4;2781:131;:::i;:::-;2773:139;;2500:419;;;:::o;546:2337:96:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80630fb5a6b41461006457806317cf53911461008257806319165587146100b257806338af3eed146100ce578063bbc702c6146100ec578063be9a65551461011c575b5f5ffd5b61006c61013a565b6040516100799190610522565b60405180910390f35b61009c600480360381019061009791906105c3565b61015e565b6040516100a99190610522565b60405180910390f35b6100cc60048036038101906100c79190610601565b61031a565b005b6100d66104ae565b6040516100e3919061063b565b60405180910390f35b61010660048036038101906101019190610601565b6104d2565b6040516101139190610522565b60405180910390f35b6101246104e6565b6040516101319190610522565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5f5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101d6919061063b565b602060405180830381865afa1580156101f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102159190610668565b61021f91906106c0565b90507f0000000000000000000000000000000000000000000000000000000000000000831015610252575f915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061029e91906106c0565b8311156102ae5780915050610314565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846102fb91906106f3565b826103069190610726565b6103109190610794565b9150505b92915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610362834261015e565b61036c91906106f3565b9050805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546103b991906106c0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516104069190610522565b60405180910390a28173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016104699291906107c4565b6020604051808303815f875af1158015610485573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a99190610820565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f602052805f5260405f205f915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f819050919050565b61051c8161050a565b82525050565b5f6020820190506105355f830184610513565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105688261053f565b9050919050565b6105788161055e565b8114610582575f5ffd5b50565b5f813590506105938161056f565b92915050565b6105a28161050a565b81146105ac575f5ffd5b50565b5f813590506105bd81610599565b92915050565b5f5f604083850312156105d9576105d861053b565b5b5f6105e685828601610585565b92505060206105f7858286016105af565b9150509250929050565b5f602082840312156106165761061561053b565b5b5f61062384828501610585565b91505092915050565b6106358161055e565b82525050565b5f60208201905061064e5f83018461062c565b92915050565b5f8151905061066281610599565b92915050565b5f6020828403121561067d5761067c61053b565b5b5f61068a84828501610654565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106ca8261050a565b91506106d58361050a565b92508282019050808211156106ed576106ec610693565b5b92915050565b5f6106fd8261050a565b91506107088361050a565b92508282039050818111156107205761071f610693565b5b92915050565b5f6107308261050a565b915061073b8361050a565b92508282026107498161050a565b915082820484148315176107605761075f610693565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61079e8261050a565b91506107a98361050a565b9250826107b9576107b8610767565b5b828204905092915050565b5f6040820190506107d75f83018561062c565b6107e46020830184610513565b9392505050565b5f8115159050919050565b6107ff816107eb565b8114610809575f5ffd5b50565b5f8151905061081a816107f6565b92915050565b5f602082840312156108355761083461053b565b5b5f6108428482850161080c565b9150509291505056fea264697066735822122091411f859b9c29c973f385e06eb69e7212128dd2f4752e1e0af3046cb807e92764736f6c63430008220033","sourceMap":"546:2337:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;949:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2304:577;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1631:437;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;824:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;689:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;885:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:33;;;:::o;2304:577::-;2381:7;2481:23;2548:13;:20;2562:5;2548:20;;;;;;;;;;;;;;;;2514:5;2507:23;;;2539:4;2507:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;;;:::i;:::-;2481:87;;2660:5;2648:9;:17;2644:231;;;2688:1;2681:8;;;;;2644:231;2730:8;2722:5;:16;;;;:::i;:::-;2710:9;:28;2706:169;;;2761:15;2754:22;;;;;2706:169;2856:8;2846:5;2834:9;:17;;;;:::i;:::-;2815:15;:37;;;;:::i;:::-;2814:50;;;;:::i;:::-;2807:57;;;2304:577;;;;;:::o;1631:437::-;1748:18;1817:13;:20;1831:5;1817:20;;;;;;;;;;;;;;;;1769:45;1782:5;1797:15;1769:12;:45::i;:::-;:68;;;;:::i;:::-;1748:89;;1913:10;1889:13;:20;1903:5;1889:20;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;1986:5;1972:32;;;1993:10;1972:32;;;;;;:::i;:::-;;;;;;;;2021:5;2014:22;;;2037:11;2050:10;2014:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1670:398;1631:437;:::o;824:36::-;;;:::o;689:48::-;;;;;;;;;;;;;;;;;:::o;885:30::-;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:122::-;1349:24;1367:5;1349:24;:::i;:::-;1342:5;1339:35;1329:63;;1388:1;1385;1378:12;1329:63;1276:122;:::o;1404:139::-;1450:5;1488:6;1475:20;1466:29;;1504:33;1531:5;1504:33;:::i;:::-;1404:139;;;;:::o;1549:474::-;1617:6;1625;1674:2;1662:9;1653:7;1649:23;1645:32;1642:119;;;1680:79;;:::i;:::-;1642:119;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1549:474;;;;;:::o;2029:329::-;2088:6;2137:2;2125:9;2116:7;2112:23;2108:32;2105:119;;;2143:79;;:::i;:::-;2105:119;2263:1;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2234:117;2029:329;;;;:::o;2364:118::-;2451:24;2469:5;2451:24;:::i;:::-;2446:3;2439:37;2364:118;;:::o;2488:222::-;2581:4;2619:2;2608:9;2604:18;2596:26;;2632:71;2700:1;2689:9;2685:17;2676:6;2632:71;:::i;:::-;2488:222;;;;:::o;2716:143::-;2773:5;2804:6;2798:13;2789:22;;2820:33;2847:5;2820:33;:::i;:::-;2716:143;;;;:::o;2865:351::-;2935:6;2984:2;2972:9;2963:7;2959:23;2955:32;2952:119;;;2990:79;;:::i;:::-;2952:119;3110:1;3135:64;3191:7;3182:6;3171:9;3167:22;3135:64;:::i;:::-;3125:74;;3081:128;2865:351;;;;:::o;3222:180::-;3270:77;3267:1;3260:88;3367:4;3364:1;3357:15;3391:4;3388:1;3381:15;3408:191;3448:3;3467:20;3485:1;3467:20;:::i;:::-;3462:25;;3501:20;3519:1;3501:20;:::i;:::-;3496:25;;3544:1;3541;3537:9;3530:16;;3565:3;3562:1;3559:10;3556:36;;;3572:18;;:::i;:::-;3556:36;3408:191;;;;:::o;3605:194::-;3645:4;3665:20;3683:1;3665:20;:::i;:::-;3660:25;;3699:20;3717:1;3699:20;:::i;:::-;3694:25;;3743:1;3740;3736:9;3728:17;;3767:1;3761:4;3758:11;3755:37;;;3772:18;;:::i;:::-;3755:37;3605:194;;;;:::o;3805:410::-;3845:7;3868:20;3886:1;3868:20;:::i;:::-;3863:25;;3902:20;3920:1;3902:20;:::i;:::-;3897:25;;3957:1;3954;3950:9;3979:30;3997:11;3979:30;:::i;:::-;3968:41;;4158:1;4149:7;4145:15;4142:1;4139:22;4119:1;4112:9;4092:83;4069:139;;4188:18;;:::i;:::-;4069:139;3853:362;3805:410;;;;:::o;4221:180::-;4269:77;4266:1;4259:88;4366:4;4363:1;4356:15;4390:4;4387:1;4380:15;4407:185;4447:1;4464:20;4482:1;4464:20;:::i;:::-;4459:25;;4498:20;4516:1;4498:20;:::i;:::-;4493:25;;4537:1;4527:35;;4542:18;;:::i;:::-;4527:35;4584:1;4581;4577:9;4572:14;;4407:185;;;;:::o;4598:332::-;4719:4;4757:2;4746:9;4742:18;4734:26;;4770:71;4838:1;4827:9;4823:17;4814:6;4770:71;:::i;:::-;4851:72;4919:2;4908:9;4904:18;4895:6;4851:72;:::i;:::-;4598:332;;;;;:::o;4936:90::-;4970:7;5013:5;5006:13;4999:21;4988:32;;4936:90;;;:::o;5032:116::-;5102:21;5117:5;5102:21;:::i;:::-;5095:5;5092:32;5082:60;;5138:1;5135;5128:12;5082:60;5032:116;:::o;5154:137::-;5208:5;5239:6;5233:13;5224:22;;5255:30;5279:5;5255:30;:::i;:::-;5154:137;;;;:::o;5297:345::-;5364:6;5413:2;5401:9;5392:7;5388:23;5384:32;5381:119;;;5419:79;;:::i;:::-;5381:119;5539:1;5564:61;5617:7;5608:6;5597:9;5593:22;5564:61;:::i;:::-;5554:71;;5510:125;5297:345;;;;:::o","linkReferences":{},"immutableReferences":{"57288":[{"start":1068,"length":32},{"start":1200,"length":32}],"57290":[{"start":547,"length":32},{"start":629,"length":32},{"start":721,"length":32},{"start":1256,"length":32}],"57292":[{"start":316,"length":32},{"start":596,"length":32},{"start":688,"length":32}]}},"methodIdentifiers":{"beneficiary()":"38af3eed","duration()":"0fb5a6b4","erc20Released(address)":"bbc702c6","release(address)":"19165587","start()":"be9a6555","vestedAmount(address,uint256)":"17cf5391"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beneficiaryAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"durationSeconds\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20Released\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"erc20Released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"vestedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4f1a\\u5c06ERC20\\u4ee3\\u5e01\\u7ebf\\u6027\\u91ca\\u653e\\u7ed9\\u7ed9\\u53d7\\u76ca\\u4eba`_beneficiary`\\u3002 \\u91ca\\u653e\\u7684\\u4ee3\\u5e01\\u53ef\\u4ee5\\u662f\\u4e00\\u79cd\\uff0c\\u4e5f\\u53ef\\u4ee5\\u662f\\u591a\\u79cd\\u3002\\u91ca\\u653e\\u5468\\u671f\\u7531\\u8d77\\u59cb\\u65f6\\u95f4`_start`\\u548c\\u65f6\\u957f`_duration`\\u5b9a\\u4e49\\u3002 \\u6240\\u6709\\u8f6c\\u5230\\u8fd9\\u4e2a\\u5408\\u7ea6\\u4e0a\\u7684\\u4ee3\\u5e01\\u90fd\\u4f1a\\u9075\\u5faa\\u540c\\u6837\\u7684\\u7ebf\\u6027\\u91ca\\u653e\\u5468\\u671f\\uff0c\\u5e76\\u4e14\\u9700\\u8981\\u53d7\\u76ca\\u4eba\\u8c03\\u7528`release()`\\u51fd\\u6570\\u63d0\\u53d6\\u3002 \\u5408\\u7ea6\\u662f\\u4eceOpenZeppelin\\u7684VestingWallet\\u7b80\\u5316\\u800c\\u6765\\u3002\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"\\u521d\\u59cb\\u5316\\u53d7\\u76ca\\u4eba\\u5730\\u5740\\uff0c\\u91ca\\u653e\\u5468\\u671f(\\u79d2), \\u8d77\\u59cb\\u65f6\\u95f4\\u6233(\\u5f53\\u524d\\u533a\\u5757\\u94fe\\u65f6\\u95f4\\u6233)\"},\"release(address)\":{\"details\":\"\\u53d7\\u76ca\\u4eba\\u63d0\\u53d6\\u5df2\\u91ca\\u653e\\u7684\\u4ee3\\u5e01\\u3002 \\u8c03\\u7528vestedAmount()\\u51fd\\u6570\\u8ba1\\u7b97\\u53ef\\u63d0\\u53d6\\u7684\\u4ee3\\u5e01\\u6570\\u91cf\\uff0c\\u7136\\u540etransfer\\u7ed9\\u53d7\\u76ca\\u4eba\\u3002 \\u91ca\\u653e {ERC20Released} \\u4e8b\\u4ef6.\"},\"vestedAmount(address,uint256)\":{\"details\":\"\\u6839\\u636e\\u7ebf\\u6027\\u91ca\\u653e\\u516c\\u5f0f\\uff0c\\u8ba1\\u7b97\\u5df2\\u7ecf\\u91ca\\u653e\\u7684\\u6570\\u91cf\\u3002\\u5f00\\u53d1\\u8005\\u53ef\\u4ee5\\u901a\\u8fc7\\u4fee\\u6539\\u8fd9\\u4e2a\\u51fd\\u6570\\uff0c\\u81ea\\u5b9a\\u4e49\\u91ca\\u653e\\u65b9\\u5f0f\\u3002\",\"params\":{\"timestamp\":\": \\u67e5\\u8be2\\u7684\\u65f6\\u95f4\\u6233\",\"token\":\": \\u4ee3\\u5e01\\u5730\\u5740\"}}},\"title\":\"ERC20\\u4ee3\\u5e01\\u7ebf\\u6027\\u91ca\\u653e\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/43_TokenVesting/TokenVesting.sol\":\"TokenVesting\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/31_ERC20/ERC20.sol\":{\"keccak256\":\"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9\",\"dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS\"]},\"src/31_ERC20/IERC20.sol\":{\"keccak256\":\"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f\",\"dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65\"]},\"src/43_TokenVesting/TokenVesting.sol\":{\"keccak256\":\"0x18c1956bf9b7f7e4e9f0dfff5d10d2a5edc2c30fd29a52a9339204b062972b46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://975068be80201fd994831e6bdbf6821c1c0f9e23b387e08265a9b7883055bed9\",\"dweb:/ipfs/QmcRMByBF92gubcWU1e2cBCvQZNJmMcEtbxCU9trm5tnKH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"beneficiaryAddress","type":"address"},{"internalType":"uint256","name":"durationSeconds","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ERC20Released","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"erc20Released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[],"stateMutability":"view","type":"function","name":"start","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function","name":"vestedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"初始化受益人地址,释放周期(秒), 起始时间戳(当前区块链时间戳)"},"release(address)":{"details":"受益人提取已释放的代币。 调用vestedAmount()函数计算可提取的代币数量,然后transfer给受益人。 释放 {ERC20Released} 事件."},"vestedAmount(address,uint256)":{"details":"根据线性释放公式,计算已经释放的数量。开发者可以通过修改这个函数,自定义释放方式。","params":{"timestamp":": 查询的时间戳","token":": 代币地址"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/43_TokenVesting/TokenVesting.sol":"TokenVesting"},"evmVersion":"prague","libraries":{}},"sources":{"src/31_ERC20/ERC20.sol":{"keccak256":"0x76d762adadc39a6b1e2216b8b95bdb85c066cf0bff01377f98326fd310467ef9","urls":["bzz-raw://3264231a5f68fd63d6b7bebbeb7237eb615ec068c82ded651b446e5a897e71b9","dweb:/ipfs/QmPrSpGviTBnMYRXqKSMcFN1vB6Uu6CYCbLBNhmgyKrxBS"],"license":"MIT"},"src/31_ERC20/IERC20.sol":{"keccak256":"0x41c89e5cf203f6ab6734b058a581378b9c99c9466a36cda381afa05163f14e17","urls":["bzz-raw://1c3fe678a0494b615375f59bd05637c837db6707034d6f086278125974ff5c2f","dweb:/ipfs/QmU1h9hwrdMqxuYzr8sUyQKn5zoVtUQiZnyXCoyeiDoX65"],"license":"MIT"},"src/43_TokenVesting/TokenVesting.sol":{"keccak256":"0x18c1956bf9b7f7e4e9f0dfff5d10d2a5edc2c30fd29a52a9339204b062972b46","urls":["bzz-raw://975068be80201fd994831e6bdbf6821c1c0f9e23b387e08265a9b7883055bed9","dweb:/ipfs/QmcRMByBF92gubcWU1e2cBCvQZNJmMcEtbxCU9trm5tnKH"],"license":"MIT"}},"version":1},"id":96} \ No newline at end of file diff --git a/out/TransparentProxy.sol/Foo.json b/out/TransparentProxy.sol/Foo.json index e36b1ac2..a9106c0d 100644 --- a/out/TransparentProxy.sol/Foo.json +++ b/out/TransparentProxy.sol/Foo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"selector1","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"selector2","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040527f42966c689b5afe9b9b3f8a7103b2a19980d59629bfd6a20a60972312ed41d8365f5f6101000a81548163ffffffff021916908360e01c02179055507f42966c684c869f2e2e56c232c00c827b4e8fcd1119259bd54a90d765bf17bbd65f60046101000a81548163ffffffff021916908360e01c02179055503480156087575f5ffd5b50610110806100955f395ff3fe6080604052348015600e575f5ffd5b50600436106030575f3560e01c806344c984a7146034578063e9b3317414604e575b5f5ffd5b603a6068565b6040516045919060c3565b60405180910390f35b6054607a565b604051605f919060c3565b60405180910390f35b5f60049054906101000a900460e01b81565b5f5f9054906101000a900460e01b81565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60bd81608b565b82525050565b5f60208201905060d45f83018460b6565b9291505056fea26469706673582212204c791f8d8e7c74d9e188e0e16515d7397d68f846be5e2d2136984dd2fd379f9a64736f6c63430008220033","sourceMap":"192:274:107:-:0;;;244:26;211:60;;;;;;;;;;;;;;;;;;;;310:47;277:81;;;;;;;;;;;;;;;;;;;;192:274;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f5ffd5b50600436106030575f3560e01c806344c984a7146034578063e9b3317414604e575b5f5ffd5b603a6068565b6040516045919060c3565b60405180910390f35b6054607a565b604051605f919060c3565b60405180910390f35b5f60049054906101000a900460e01b81565b5f5f9054906101000a900460e01b81565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60bd81608b565b82525050565b5f60208201905060d45f83018460b6565b9291505056fea26469706673582212204c791f8d8e7c74d9e188e0e16515d7397d68f846be5e2d2136984dd2fd379f9a64736f6c63430008220033","sourceMap":"192:274:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;211:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;277:81;;;;;;;;;;;;;:::o;211:60::-;;;;;;;;;;;;;:::o;7:149:145:-;43:7;83:66;76:5;72:78;61:89;;7:149;;;:::o;162:115::-;247:23;264:5;247:23;:::i;:::-;242:3;235:36;162:115;;:::o;283:218::-;374:4;412:2;401:9;397:18;389:26;;425:69;491:1;480:9;476:17;467:6;425:69;:::i;:::-;283:218;;;;:::o","linkReferences":{}},"methodIdentifiers":{"selector1()":"e9b33174","selector2()":"44c984a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"selector1\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector2\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Foo\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"selector1","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"selector2","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Foo"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file +{"abi":[{"type":"function","name":"selector1","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"selector2","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"}],"bytecode":{"object":"0x60806040527f42966c689b5afe9b9b3f8a7103b2a19980d59629bfd6a20a60972312ed41d8365f5f6101000a81548163ffffffff021916908360e01c02179055507f42966c684c869f2e2e56c232c00c827b4e8fcd1119259bd54a90d765bf17bbd65f60046101000a81548163ffffffff021916908360e01c02179055503480156087575f5ffd5b50610110806100955f395ff3fe6080604052348015600e575f5ffd5b50600436106030575f3560e01c806344c984a7146034578063e9b3317414604e575b5f5ffd5b603a6068565b6040516045919060c3565b60405180910390f35b6054607a565b604051605f919060c3565b60405180910390f35b5f60049054906101000a900460e01b81565b5f5f9054906101000a900460e01b81565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60bd81608b565b82525050565b5f60208201905060d45f83018460b6565b9291505056fea26469706673582212204c791f8d8e7c74d9e188e0e16515d7397d68f846be5e2d2136984dd2fd379f9a64736f6c63430008220033","sourceMap":"192:274:101:-:0;;;244:26;211:60;;;;;;;;;;;;;;;;;;;;310:47;277:81;;;;;;;;;;;;;;;;;;;;192:274;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f5ffd5b50600436106030575f3560e01c806344c984a7146034578063e9b3317414604e575b5f5ffd5b603a6068565b6040516045919060c3565b60405180910390f35b6054607a565b604051605f919060c3565b60405180910390f35b5f60049054906101000a900460e01b81565b5f5f9054906101000a900460e01b81565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60bd81608b565b82525050565b5f60208201905060d45f83018460b6565b9291505056fea26469706673582212204c791f8d8e7c74d9e188e0e16515d7397d68f846be5e2d2136984dd2fd379f9a64736f6c63430008220033","sourceMap":"192:274:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;211:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;277:81;;;;;;;;;;;;;:::o;211:60::-;;;;;;;;;;;;;:::o;7:149:139:-;43:7;83:66;76:5;72:78;61:89;;7:149;;;:::o;162:115::-;247:23;264:5;247:23;:::i;:::-;242:3;235:36;162:115;;:::o;283:218::-;374:4;412:2;401:9;397:18;389:26;;425:69;491:1;480:9;476:17;467:6;425:69;:::i;:::-;283:218;;;;:::o","linkReferences":{}},"methodIdentifiers":{"selector1()":"e9b33174","selector2()":"44c984a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"selector1\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector2\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Foo\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"selector1","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"selector2","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Foo"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/out/TransparentProxy.sol/Logic1.json b/out/TransparentProxy.sol/Logic1.json index 7b3ef689..2ad57dbe 100644 --- a/out/TransparentProxy.sol/Logic1.json +++ b/out/TransparentProxy.sol/Logic1.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212206e0246f5dd84da8f384e33c904ef0999a6bb377050cba8cbc0f92b43bd11010564736f6c63430008220033","sourceMap":"1425:340:107:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212206e0246f5dd84da8f384e33c904ef0999a6bb377050cba8cbc0f92b43bd11010564736f6c63430008220033","sourceMap":"1425:340:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1712:51;;;:::i;:::-;;1571:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1544:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1508:29;;;;;;;;;;;;;:::o;1712:51::-;1743:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1712:51::o;1571:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1544:20::-;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Logic1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Logic1"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212206e0246f5dd84da8f384e33c904ef0999a6bb377050cba8cbc0f92b43bd11010564736f6c63430008220033","sourceMap":"1425:340:101:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212206e0246f5dd84da8f384e33c904ef0999a6bb377050cba8cbc0f92b43bd11010564736f6c63430008220033","sourceMap":"1425:340:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1712:51;;;:::i;:::-;;1571:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1544:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1508:29;;;;;;;;;;;;;:::o;1712:51::-;1743:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1712:51::o;1571:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1544:20::-;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Logic1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Logic1"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/out/TransparentProxy.sol/Logic2.json b/out/TransparentProxy.sol/Logic2.json index e65cad3e..62c8eb95 100644 --- a/out/TransparentProxy.sol/Logic2.json +++ b/out/TransparentProxy.sol/Logic2.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203696ecd5b381782bd9022a9ddadd550fb4658b6ee3577924fae36bc5fdaaeb0264736f6c63430008220033","sourceMap":"1786:339:107:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203696ecd5b381782bd9022a9ddadd550fb4658b6ee3577924fae36bc5fdaaeb0264736f6c63430008220033","sourceMap":"1786:339:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1869:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2072:51;;;:::i;:::-;;1932:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1905:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1869:29;;;;;;;;;;;;;:::o;2072:51::-;2103:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;2072:51::o;1932:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1905:20::-;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Logic2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Logic2"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203696ecd5b381782bd9022a9ddadd550fb4658b6ee3577924fae36bc5fdaaeb0264736f6c63430008220033","sourceMap":"1786:339:101:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203696ecd5b381782bd9022a9ddadd550fb4658b6ee3577924fae36bc5fdaaeb0264736f6c63430008220033","sourceMap":"1786:339:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1869:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2072:51;;;:::i;:::-;;1932:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1905:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1869:29;;;;;;;;;;;;;:::o;2072:51::-;2103:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;2072:51::o;1932:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1905:20::-;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"Logic2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"Logic2"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/out/TransparentProxy.sol/TransparentProxy.json b/out/TransparentProxy.sol/TransparentProxy.json index 20899a94..32993c1a 100644 --- a/out/TransparentProxy.sol/TransparentProxy.json +++ b/out/TransparentProxy.sol/TransparentProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516105d13803806105d183398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6104858061014c5f395ff3fe60806040526004361061002c575f3560e01c80630900f0101461010d578063f2c31bd9146101355761002d565b5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610085575f5ffd5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f366040516100ce9291906102c1565b5f60405180830381855af49150503d805f8114610106576040519150601f19603f3d011682016040523d82523d5f602084013e61010b565b606091505b005b348015610118575f5ffd5b50610133600480360381019061012e9190610337565b61015f565b005b348015610140575f5ffd5b506101496101f9565b60405161015691906103d2565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b7575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600280546102069061041f565b80601f01602080910402602001604051908101604052809291908181526020018280546102329061041f565b801561027d5780601f106102545761010080835404028352916020019161027d565b820191905f5260205f20905b81548152906001019060200180831161026057829003601f168201915b505050505081565b5f81905092915050565b828183375f83830152505050565b5f6102a88385610285565b93506102b583858461028f565b82840190509392505050565b5f6102cd82848661029d565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610306826102dd565b9050919050565b610316816102fc565b8114610320575f5ffd5b50565b5f813590506103318161030d565b92915050565b5f6020828403121561034c5761034b6102d9565b5b5f61035984828501610323565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103a482610362565b6103ae818561036c565b93506103be81856020860161037c565b6103c78161038a565b840191505092915050565b5f6020820190508181035f8301526103ea818461039a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043657607f821691505b602082108103610449576104486103f2565b5b5091905056fea2646970667358221220208bbba80ee516e0d6a040307365a46889cc0683923296dc21cf049ef8baa6b764736f6c63430008220033","sourceMap":"533:871:107:-:0;;;785:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;839:10;831:5;;:18;;;;;;;;;;;;;;;;;;876:15;859:14;;:32;;;;;;;;;;;;;;;;;;785:113;533:871;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;533:871:107:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002c575f3560e01c80630900f0101461010d578063f2c31bd9146101355761002d565b5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610085575f5ffd5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f366040516100ce9291906102c1565b5f60405180830381855af49150503d805f8114610106576040519150601f19603f3d011682016040523d82523d5f602084013e61010b565b606091505b005b348015610118575f5ffd5b50610133600480360381019061012e9190610337565b61015f565b005b348015610140575f5ffd5b506101496101f9565b60405161015691906103d2565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b7575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600280546102069061041f565b80601f01602080910402602001604051908101604052809291908181526020018280546102329061041f565b801561027d5780601f106102545761010080835404028352916020019161027d565b820191905f5260205f20905b81548152906001019060200180831161026057829003601f168201915b505050505081565b5f81905092915050565b828183375f83830152505050565b5f6102a88385610285565b93506102b583858461028f565b82840190509392505050565b5f6102cd82848661029d565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610306826102dd565b9050919050565b610316816102fc565b8114610320575f5ffd5b50565b5f813590506103318161030d565b92915050565b5f6020828403121561034c5761034b6102d9565b5b5f61035984828501610323565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103a482610362565b6103ae818561036c565b93506103be81856020860161037c565b6103c78161038a565b840191505092915050565b5f6020820190508181035f8301526103ea818461039a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043657607f821691505b602082108103610449576104486103f2565b5b5091905056fea2646970667358221220208bbba80ee516e0d6a040307365a46889cc0683923296dc21cf049ef8baa6b764736f6c63430008220033","sourceMap":"533:871:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;1083:5;;;;;;;;;;;1069:19;;:10;:19;;;1061:28;;;;;;1100:12;1114:17;1135:14;;;;;;;;;;;:27;;1163:8;;1135:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;646:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1255:147;1336:5;;;;;;;;;;;1322:19;;:10;:19;;;1318:33;;1343:8;;;1318:33;1378:17;1361:14;;:34;;;;;;;;;;;;;;;;;;1255:147;:::o;646:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:147:145:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;1047:117::-;1156:1;1153;1146:12;1293:126;1330:7;1370:42;1363:5;1359:54;1348:65;;1293:126;;;:::o;1425:96::-;1462:7;1491:24;1509:5;1491:24;:::i;:::-;1480:35;;1425:96;;;:::o;1527:122::-;1600:24;1618:5;1600:24;:::i;:::-;1593:5;1590:35;1580:63;;1639:1;1636;1629:12;1580:63;1527:122;:::o;1655:139::-;1701:5;1739:6;1726:20;1717:29;;1755:33;1782:5;1755:33;:::i;:::-;1655:139;;;;:::o;1800:329::-;1859:6;1908:2;1896:9;1887:7;1883:23;1879:32;1876:119;;;1914:79;;:::i;:::-;1876:119;2034:1;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2005:117;1800:329;;;;:::o;2135:99::-;2187:6;2221:5;2215:12;2205:22;;2135:99;;;:::o;2240:169::-;2324:11;2358:6;2353:3;2346:19;2398:4;2393:3;2389:14;2374:29;;2240:169;;;;:::o;2415:139::-;2504:6;2499:3;2494;2488:23;2545:1;2536:6;2531:3;2527:16;2520:27;2415:139;;;:::o;2560:102::-;2601:6;2652:2;2648:7;2643:2;2636:5;2632:14;2628:28;2618:38;;2560:102;;;:::o;2668:377::-;2756:3;2784:39;2817:5;2784:39;:::i;:::-;2839:71;2903:6;2898:3;2839:71;:::i;:::-;2832:78;;2919:65;2977:6;2972:3;2965:4;2958:5;2954:16;2919:65;:::i;:::-;3009:29;3031:6;3009:29;:::i;:::-;3004:3;3000:39;2993:46;;2760:285;2668:377;;;;:::o;3051:313::-;3164:4;3202:2;3191:9;3187:18;3179:26;;3251:9;3245:4;3241:20;3237:1;3226:9;3222:17;3215:47;3279:78;3352:4;3343:6;3279:78;:::i;:::-;3271:86;;3051:313;;;;:::o;3370:180::-;3418:77;3415:1;3408:88;3515:4;3512:1;3505:15;3539:4;3536:1;3529:15;3556:320;3600:6;3637:1;3631:4;3627:12;3617:22;;3684:1;3678:4;3674:12;3705:18;3695:81;;3761:4;3753:6;3749:17;3739:27;;3695:81;3823:2;3815:6;3812:14;3792:18;3789:38;3786:84;;3842:18;;:::i;:::-;3786:84;3607:269;3556:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"TransparentProxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"TransparentProxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":107} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516105d13803806105d183398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6104858061014c5f395ff3fe60806040526004361061002c575f3560e01c80630900f0101461010d578063f2c31bd9146101355761002d565b5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610085575f5ffd5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f366040516100ce9291906102c1565b5f60405180830381855af49150503d805f8114610106576040519150601f19603f3d011682016040523d82523d5f602084013e61010b565b606091505b005b348015610118575f5ffd5b50610133600480360381019061012e9190610337565b61015f565b005b348015610140575f5ffd5b506101496101f9565b60405161015691906103d2565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b7575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600280546102069061041f565b80601f01602080910402602001604051908101604052809291908181526020018280546102329061041f565b801561027d5780601f106102545761010080835404028352916020019161027d565b820191905f5260205f20905b81548152906001019060200180831161026057829003601f168201915b505050505081565b5f81905092915050565b828183375f83830152505050565b5f6102a88385610285565b93506102b583858461028f565b82840190509392505050565b5f6102cd82848661029d565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610306826102dd565b9050919050565b610316816102fc565b8114610320575f5ffd5b50565b5f813590506103318161030d565b92915050565b5f6020828403121561034c5761034b6102d9565b5b5f61035984828501610323565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103a482610362565b6103ae818561036c565b93506103be81856020860161037c565b6103c78161038a565b840191505092915050565b5f6020820190508181035f8301526103ea818461039a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043657607f821691505b602082108103610449576104486103f2565b5b5091905056fea2646970667358221220208bbba80ee516e0d6a040307365a46889cc0683923296dc21cf049ef8baa6b764736f6c63430008220033","sourceMap":"533:871:101:-:0;;;785:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;839:10;831:5;;:18;;;;;;;;;;;;;;;;;;876:15;859:14;;:32;;;;;;;;;;;;;;;;;;785:113;533:871;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;533:871:101:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002c575f3560e01c80630900f0101461010d578063f2c31bd9146101355761002d565b5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610085575f5ffd5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f366040516100ce9291906102c1565b5f60405180830381855af49150503d805f8114610106576040519150601f19603f3d011682016040523d82523d5f602084013e61010b565b606091505b005b348015610118575f5ffd5b50610133600480360381019061012e9190610337565b61015f565b005b348015610140575f5ffd5b506101496101f9565b60405161015691906103d2565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b7575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600280546102069061041f565b80601f01602080910402602001604051908101604052809291908181526020018280546102329061041f565b801561027d5780601f106102545761010080835404028352916020019161027d565b820191905f5260205f20905b81548152906001019060200180831161026057829003601f168201915b505050505081565b5f81905092915050565b828183375f83830152505050565b5f6102a88385610285565b93506102b583858461028f565b82840190509392505050565b5f6102cd82848661029d565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610306826102dd565b9050919050565b610316816102fc565b8114610320575f5ffd5b50565b5f813590506103318161030d565b92915050565b5f6020828403121561034c5761034b6102d9565b5b5f61035984828501610323565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6103a482610362565b6103ae818561036c565b93506103be81856020860161037c565b6103c78161038a565b840191505092915050565b5f6020820190508181035f8301526103ea818461039a565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061043657607f821691505b602082108103610449576104486103f2565b5b5091905056fea2646970667358221220208bbba80ee516e0d6a040307365a46889cc0683923296dc21cf049ef8baa6b764736f6c63430008220033","sourceMap":"533:871:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;1083:5;;;;;;;;;;;1069:19;;:10;:19;;;1061:28;;;;;;1100:12;1114:17;1135:14;;;;;;;;;;;:27;;1163:8;;1135:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;646:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1255:147;1336:5;;;;;;;;;;;1322:19;;:10;:19;;;1318:33;;1343:8;;;1318:33;1378:17;1361:14;;:34;;;;;;;;;;;;;;;;;;1255:147;:::o;646:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:147:139:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;1047:117::-;1156:1;1153;1146:12;1293:126;1330:7;1370:42;1363:5;1359:54;1348:65;;1293:126;;;:::o;1425:96::-;1462:7;1491:24;1509:5;1491:24;:::i;:::-;1480:35;;1425:96;;;:::o;1527:122::-;1600:24;1618:5;1600:24;:::i;:::-;1593:5;1590:35;1580:63;;1639:1;1636;1629:12;1580:63;1527:122;:::o;1655:139::-;1701:5;1739:6;1726:20;1717:29;;1755:33;1782:5;1755:33;:::i;:::-;1655:139;;;;:::o;1800:329::-;1859:6;1908:2;1896:9;1887:7;1883:23;1879:32;1876:119;;;1914:79;;:::i;:::-;1876:119;2034:1;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2005:117;1800:329;;;;:::o;2135:99::-;2187:6;2221:5;2215:12;2205:22;;2135:99;;;:::o;2240:169::-;2324:11;2358:6;2353:3;2346:19;2398:4;2393:3;2389:14;2374:29;;2240:169;;;;:::o;2415:139::-;2504:6;2499:3;2494;2488:23;2545:1;2536:6;2531:3;2527:16;2520:27;2415:139;;;:::o;2560:102::-;2601:6;2652:2;2648:7;2643:2;2636:5;2632:14;2628:28;2618:38;;2560:102;;;:::o;2668:377::-;2756:3;2784:39;2817:5;2784:39;:::i;:::-;2839:71;2903:6;2898:3;2839:71;:::i;:::-;2832:78;;2919:65;2977:6;2972:3;2965:4;2958:5;2954:16;2919:65;:::i;:::-;3009:29;3031:6;3009:29;:::i;:::-;3004:3;3000:39;2993:46;;2760:285;2668:377;;;;:::o;3051:313::-;3164:4;3202:2;3191:9;3187:18;3179:26;;3251:9;3245:4;3241:20;3237:1;3226:9;3222:17;3215:47;3279:78;3352:4;3343:6;3279:78;:::i;:::-;3271:86;;3051:313;;;;:::o;3370:180::-;3418:77;3415:1;3408:88;3515:4;3512:1;3505:15;3539:4;3536:1;3529:15;3556:320;3600:6;3637:1;3631:4;3627:12;3617:22;;3684:1;3678:4;3674:12;3705:18;3695:81;;3761:4;3753:6;3749:17;3739:27;;3695:81;3823:2;3815:6;3812:14;3792:18;3789:38;3786:84;;3842:18;;:::i;:::-;3786:84;3607:269;3556:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/48_TransparentProxy/TransparentProxy.sol\":\"TransparentProxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/48_TransparentProxy/TransparentProxy.sol\":{\"keccak256\":\"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd\",\"dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/48_TransparentProxy/TransparentProxy.sol":"TransparentProxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/48_TransparentProxy/TransparentProxy.sol":{"keccak256":"0x6f207493b2c123f44a93e706a8d77ab01ef11f2c12819fe7bd1b089c591959c6","urls":["bzz-raw://e89366c2fee91a1f69c3dd99da2c32aa35a1290be610a526a474b7f8cf5fd8cd","dweb:/ipfs/QmbyE35DpwS2PGp3N6uZoJemLiknKhbDyCHES8RYvmaDnN"],"license":"MIT"}},"version":1},"id":101} \ No newline at end of file diff --git a/out/TryCatch.sol/OnlyEven.json b/out/TryCatch.sol/OnlyEven.json index d7dda55b..370090fd 100644 --- a/out/TryCatch.sol/OnlyEven.json +++ b/out/TryCatch.sol/OnlyEven.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"onlyEven","inputs":[{"name":"b","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"58:301:77:-:0;;;82:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;124:1;119;:6;111:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;166:1;161;:6;154:14;;;;:::i;:::-;;82:93;58:301;;88:117:145;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:164::-;1366:16;1362:1;1354:6;1350:14;1343:40;1226:164;:::o;1396:366::-;1538:3;1559:67;1623:2;1618:3;1559:67;:::i;:::-;1552:74;;1635:93;1724:3;1635:93;:::i;:::-;1753:2;1748:3;1744:12;1737:19;;1396:366;;;:::o;1768:419::-;1934:4;1972:2;1961:9;1957:18;1949:26;;2021:9;2015:4;2011:20;2007:1;1996:9;1992:17;1985:47;2049:131;2175:4;2049:131;:::i;:::-;2041:139;;1768:419;;;:::o;2193:180::-;2241:77;2238:1;2231:88;2338:4;2335:1;2328:15;2362:4;2359:1;2352:15;58:301:77;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"58:301:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;181:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;233:12;306:1;301;297;:5;;;;:::i;:::-;:10;289:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;346:4;336:14;;181:176;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:90::-;1059:7;1102:5;1095:13;1088:21;1077:32;;1025:90;;;:::o;1121:109::-;1202:21;1217:5;1202:21;:::i;:::-;1197:3;1190:34;1121:109;;:::o;1236:210::-;1323:4;1361:2;1350:9;1346:18;1338:26;;1374:65;1436:1;1425:9;1421:17;1412:6;1374:65;:::i;:::-;1236:210;;;;:::o;1452:180::-;1500:77;1497:1;1490:88;1597:4;1594:1;1587:15;1621:4;1618:1;1611:15;1638:176;1670:1;1687:20;1705:1;1687:20;:::i;:::-;1682:25;;1721:20;1739:1;1721:20;:::i;:::-;1716:25;;1760:1;1750:35;;1765:18;;:::i;:::-;1750:35;1806:1;1803;1799:9;1794:14;;1638:176;;;;:::o;1820:169::-;1904:11;1938:6;1933:3;1926:19;1978:4;1973:3;1969:14;1954:29;;1820:169;;;;:::o;1995:164::-;2135:16;2131:1;2123:6;2119:14;2112:40;1995:164;:::o;2165:366::-;2307:3;2328:67;2392:2;2387:3;2328:67;:::i;:::-;2321:74;;2404:93;2493:3;2404:93;:::i;:::-;2522:2;2517:3;2513:12;2506:19;;2165:366;;;:::o;2537:419::-;2703:4;2741:2;2730:9;2726:18;2718:26;;2790:9;2784:4;2780:20;2776:1;2765:9;2761:17;2754:47;2818:131;2944:4;2818:131;:::i;:::-;2810:139;;2537:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"onlyEven(uint256)":"ce0b4213"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"onlyEven\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"OnlyEven\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"b","type":"uint256"}],"stateMutability":"pure","type":"function","name":"onlyEven","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"OnlyEven"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"onlyEven","inputs":[{"name":"b","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"58:301:71:-:0;;;82:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;124:1;119;:6;111:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;166:1;161;:6;154:14;;;;:::i;:::-;;82:93;58:301;;88:117:139;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:164::-;1366:16;1362:1;1354:6;1350:14;1343:40;1226:164;:::o;1396:366::-;1538:3;1559:67;1623:2;1618:3;1559:67;:::i;:::-;1552:74;;1635:93;1724:3;1635:93;:::i;:::-;1753:2;1748:3;1744:12;1737:19;;1396:366;;;:::o;1768:419::-;1934:4;1972:2;1961:9;1957:18;1949:26;;2021:9;2015:4;2011:20;2007:1;1996:9;1992:17;1985:47;2049:131;2175:4;2049:131;:::i;:::-;2041:139;;1768:419;;;:::o;2193:180::-;2241:77;2238:1;2231:88;2338:4;2335:1;2328:15;2362:4;2359:1;2352:15;58:301:71;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"58:301:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;181:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;233:12;306:1;301;297;:5;;;;:::i;:::-;:10;289:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;346:4;336:14;;181:176;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:90::-;1059:7;1102:5;1095:13;1088:21;1077:32;;1025:90;;;:::o;1121:109::-;1202:21;1217:5;1202:21;:::i;:::-;1197:3;1190:34;1121:109;;:::o;1236:210::-;1323:4;1361:2;1350:9;1346:18;1338:26;;1374:65;1436:1;1425:9;1421:17;1412:6;1374:65;:::i;:::-;1236:210;;;;:::o;1452:180::-;1500:77;1497:1;1490:88;1597:4;1594:1;1587:15;1621:4;1618:1;1611:15;1638:176;1670:1;1687:20;1705:1;1687:20;:::i;:::-;1682:25;;1721:20;1739:1;1721:20;:::i;:::-;1716:25;;1760:1;1750:35;;1765:18;;:::i;:::-;1750:35;1806:1;1803;1799:9;1794:14;;1638:176;;;;:::o;1820:169::-;1904:11;1938:6;1933:3;1926:19;1978:4;1973:3;1969:14;1954:29;;1820:169;;;;:::o;1995:164::-;2135:16;2131:1;2123:6;2119:14;2112:40;1995:164;:::o;2165:366::-;2307:3;2328:67;2392:2;2387:3;2328:67;:::i;:::-;2321:74;;2404:93;2493:3;2404:93;:::i;:::-;2522:2;2517:3;2513:12;2506:19;;2165:366;;;:::o;2537:419::-;2703:4;2741:2;2730:9;2726:18;2718:26;;2790:9;2784:4;2780:20;2776:1;2765:9;2761:17;2754:47;2818:131;2944:4;2818:131;:::i;:::-;2810:139;;2537:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"onlyEven(uint256)":"ce0b4213"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"onlyEven\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"OnlyEven\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"b","type":"uint256"}],"stateMutability":"pure","type":"function","name":"onlyEven","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"OnlyEven"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/TryCatch.sol/OnlyEven2.json b/out/TryCatch.sol/OnlyEven2.json index 4f6c3175..c1315e3a 100644 --- a/out/TryCatch.sol/OnlyEven2.json +++ b/out/TryCatch.sol/OnlyEven2.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"onlyEven","inputs":[{"name":"b","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033","sourceMap":"361:302:77:-:0;;;386:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;428:1;423;:6;415:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;470:1;465;:6;458:14;;;;:::i;:::-;;386:93;361:302;;88:117:145;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:164::-;1366:16;1362:1;1354:6;1350:14;1343:40;1226:164;:::o;1396:366::-;1538:3;1559:67;1623:2;1618:3;1559:67;:::i;:::-;1552:74;;1635:93;1724:3;1635:93;:::i;:::-;1753:2;1748:3;1744:12;1737:19;;1396:366;;;:::o;1768:419::-;1934:4;1972:2;1961:9;1957:18;1949:26;;2021:9;2015:4;2011:20;2007:1;1996:9;1992:17;1985:47;2049:131;2175:4;2049:131;:::i;:::-;2041:139;;1768:419;;;:::o;2193:180::-;2241:77;2238:1;2231:88;2338:4;2335:1;2328:15;2362:4;2359:1;2352:15;361:302:77;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033","sourceMap":"361:302:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;537:15;613:1;608;604;:5;;;;:::i;:::-;:10;596:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;653:1;643:11;;485:176;;;:::o;88:117:145:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:180::-;1425:77;1422:1;1415:88;1522:4;1519:1;1512:15;1546:4;1543:1;1536:15;1563:176;1595:1;1612:20;1630:1;1612:20;:::i;:::-;1607:25;;1646:20;1664:1;1646:20;:::i;:::-;1641:25;;1685:1;1675:35;;1690:18;;:::i;:::-;1675:35;1731:1;1728;1724:9;1719:14;;1563:176;;;;:::o;1745:169::-;1829:11;1863:6;1858:3;1851:19;1903:4;1898:3;1894:14;1879:29;;1745:169;;;;:::o;1920:164::-;2060:16;2056:1;2048:6;2044:14;2037:40;1920:164;:::o;2090:366::-;2232:3;2253:67;2317:2;2312:3;2253:67;:::i;:::-;2246:74;;2329:93;2418:3;2329:93;:::i;:::-;2447:2;2442:3;2438:12;2431:19;;2090:366;;;:::o;2462:419::-;2628:4;2666:2;2655:9;2651:18;2643:26;;2715:9;2709:4;2705:20;2701:1;2690:9;2686:17;2679:47;2743:131;2869:4;2743:131;:::i;:::-;2735:139;;2462:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"onlyEven(uint256)":"ce0b4213"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"onlyEven\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"success\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"OnlyEven2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"b","type":"uint256"}],"stateMutability":"pure","type":"function","name":"onlyEven","outputs":[{"internalType":"uint256","name":"success","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"OnlyEven2"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"onlyEven","inputs":[{"name":"b","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033","sourceMap":"361:302:71:-:0;;;386:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;428:1;423;:6;415:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;470:1;465;:6;458:14;;;;:::i;:::-;;386:93;361:302;;88:117:139;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:164::-;1366:16;1362:1;1354:6;1350:14;1343:40;1226:164;:::o;1396:366::-;1538:3;1559:67;1623:2;1618:3;1559:67;:::i;:::-;1552:74;;1635:93;1724:3;1635:93;:::i;:::-;1753:2;1748:3;1744:12;1737:19;;1396:366;;;:::o;1768:419::-;1934:4;1972:2;1961:9;1957:18;1949:26;;2021:9;2015:4;2011:20;2007:1;1996:9;1992:17;1985:47;2049:131;2175:4;2049:131;:::i;:::-;2041:139;;1768:419;;;:::o;2193:180::-;2241:77;2238:1;2231:88;2338:4;2335:1;2328:15;2362:4;2359:1;2352:15;361:302:71;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033","sourceMap":"361:302:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;537:15;613:1;608;604;:5;;;;:::i;:::-;:10;596:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;653:1;643:11;;485:176;;;:::o;88:117:139:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:180::-;1425:77;1422:1;1415:88;1522:4;1519:1;1512:15;1546:4;1543:1;1536:15;1563:176;1595:1;1612:20;1630:1;1612:20;:::i;:::-;1607:25;;1646:20;1664:1;1646:20;:::i;:::-;1641:25;;1685:1;1675:35;;1690:18;;:::i;:::-;1675:35;1731:1;1728;1724:9;1719:14;;1563:176;;;;:::o;1745:169::-;1829:11;1863:6;1858:3;1851:19;1903:4;1898:3;1894:14;1879:29;;1745:169;;;;:::o;1920:164::-;2060:16;2056:1;2048:6;2044:14;2037:40;1920:164;:::o;2090:366::-;2232:3;2253:67;2317:2;2312:3;2253:67;:::i;:::-;2246:74;;2329:93;2418:3;2329:93;:::i;:::-;2447:2;2442:3;2438:12;2431:19;;2090:366;;;:::o;2462:419::-;2628:4;2666:2;2655:9;2651:18;2643:26;;2715:9;2709:4;2705:20;2701:1;2690:9;2686:17;2679:47;2743:131;2869:4;2743:131;:::i;:::-;2735:139;;2462:419;;;:::o","linkReferences":{}},"methodIdentifiers":{"onlyEven(uint256)":"ce0b4213"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"onlyEven\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"success\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"OnlyEven2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"b","type":"uint256"}],"stateMutability":"pure","type":"function","name":"onlyEven","outputs":[{"internalType":"uint256","name":"success","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"OnlyEven2"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/TryCatch.sol/TryCatch.json b/out/TryCatch.sol/TryCatch.json index 4d553ac6..3aabd634 100644 --- a/out/TryCatch.sol/TryCatch.json +++ b/out/TryCatch.sol/TryCatch.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeNew","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeRevert2","inputs":[],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"CatchByte","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"CatchEvent","inputs":[{"name":"message","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SuccessEvent","inputs":[],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50600260405161001e90610085565b61002891906100dd565b604051809103905ff080158015610041573d5f5f3e3d5ffd5b505f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100f6565b6103f3806113b883390190565b5f819050919050565b5f819050919050565b5f819050919050565b5f6100c76100c26100bd84610092565b6100a4565b61009b565b9050919050565b6100d7816100ad565b82525050565b5f6020820190506100f05f8301846100ce565b92915050565b6112b5806101035f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806360ebc1721461004e578063617a691c1461007e5780637e3b0c571461009c578063fe0d94c1146100a6575b5f5ffd5b61006860048036038101906100639190610703565b6100d6565b6040516100759190610748565b60405180910390f35b610086610285565b6040516100939190610748565b60405180910390f35b6100a46103e7565b005b6100c060048036038101906100bb9190610703565b610563565b6040516100cd9190610748565b60405180910390f35b5f816040516100e4906106a9565b6100ee9190610770565b604051809103905ff080156101005760015b6101d85761010c610795565b806308c379a0036101685750610120610822565b8061012b575061016a565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161015a9190610911565b60405180910390a1506101d3565b505b3d805f8114610194576040519150601f19603f3d011682016040523d82523d5f602084013e610199565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516101c99190610983565b60405180910390a1505b610280565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663ce0b4213846040518263ffffffff1660e01b815260040161023d9190610770565b602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906109cd565b9150505b919050565b5f5f6002604051610295906106b6565b61029f9190610a3a565b604051809103905ff0801580156102b8573d5f5f3e3d5ffd5b5090505f600290508173ffffffffffffffffffffffffffffffffffffffff1663ce0b4213826040518263ffffffff1660e01b81526004016102f99190610770565b602060405180830381865afa92505050801561033357506040513d601f19601f8201168201806040525081019061033091906109cd565b60015b6103aa5761033f610795565b806308c379a00361039b5750610353610822565b8061035e575061039d565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161038d9190610911565b60405180910390a1506103a5565b505b3d5f5f3e3d5ffd5b6103e1565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18093505050506103e4565b50505b90565b5f73ffffffffffffffffffffffffffffffffffffffff1663ce0b421360016040518263ffffffff1660e01b81526004016104219190610a8c565b602060405180830381865afa92505050801561045b57506040513d601f19601f8201168201806040525081019061045891906109cd565b60015b61053357610467610795565b806308c379a0036104c3575061047b610822565b8061048657506104c5565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516104b59190610911565b60405180910390a15061052e565b505b3d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516105249190610983565b60405180910390a1505b610561565b507ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a15b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce0b4213836040518263ffffffff1660e01b81526004016105bd9190610770565b602060405180830381865afa9250505080156105f757506040513d601f19601f820116820180604052508101906105f491906109cd565b60015b61066e57610603610795565b806308c379a00361065f5750610617610822565b806106225750610661565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516106519190610911565b60405180910390a150610669565b505b3d5f5f3e3d5ffd5b6106a3565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a1809150506106a4565b5b919050565b6103f380610aa683390190565b6103e780610e9983390190565b5f604051905090565b5f5ffd5b5f819050919050565b6106e2816106d0565b81146106ec575f5ffd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106cc565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b61076a816106d0565b82525050565b5f6020820190506107835f830184610761565b92915050565b5f8160e01c9050919050565b5f60033d11156107b15760045f5f3e6107ae5f51610789565b90505b90565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107fa826107b4565b810181811067ffffffffffffffff82111715610819576108186107c4565b5b80604052505050565b5f60443d106108ae576108336106c3565b60043d036004823e80513d602482011167ffffffffffffffff8211171561085b5750506108ae565b808201805167ffffffffffffffff81111561087957505050506108ae565b80602083010160043d0385018111156108965750505050506108ae565b6108a5826020018501866107f1565b82955050505050505b90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108e3826108b1565b6108ed81856108bb565b93506108fd8185602086016108cb565b610906816107b4565b840191505092915050565b5f6020820190508181035f83015261092981846108d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61095582610931565b61095f818561093b565b935061096f8185602086016108cb565b610978816107b4565b840191505092915050565b5f6020820190508181035f83015261099b818461094b565b905092915050565b6109ac8161072e565b81146109b6575f5ffd5b50565b5f815190506109c7816109a3565b92915050565b5f602082840312156109e2576109e16106cc565b5b5f6109ef848285016109b9565b91505092915050565b5f819050919050565b5f819050919050565b5f610a24610a1f610a1a846109f8565b610a01565b6106d0565b9050919050565b610a3481610a0a565b82525050565b5f602082019050610a4d5f830184610a2b565b92915050565b5f819050919050565b5f610a76610a71610a6c84610a53565b610a01565b6106d0565b9050919050565b610a8681610a5c565b82525050565b5f602082019050610a9f5f830184610a7d565b9291505056fe608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033a2646970667358221220a4c3ee7c54fed7a89ff2f1412156741d62896cefe95b98cb0b853ccb492829a264736f6c63430008220033608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"665:2805:77:-:0;;;879:53;;;;;;;;;;923:1;910:15;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;903:4;;:22;;;;;;;;;;;;;;;;;;665:2805;;;;;;;;;;:::o;7:85:145:-;52:7;81:5;70:16;;7:85;;;:::o;98:77::-;135:7;164:5;153:16;;98:77;;;:::o;181:60::-;209:3;230:5;223:12;;181:60;;;:::o;247:158::-;305:9;338:61;356:42;365:32;391:5;365:32;:::i;:::-;356:42;:::i;:::-;338:61;:::i;:::-;325:74;;247:158;;;:::o;411:147::-;506:45;545:5;506:45;:::i;:::-;501:3;494:58;411:147;;:::o;564:238::-;665:4;703:2;692:9;688:18;680:26;;716:79;792:1;781:9;777:17;768:6;716:79;:::i;:::-;564:238;;;;:::o;665:2805:77:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806360ebc1721461004e578063617a691c1461007e5780637e3b0c571461009c578063fe0d94c1146100a6575b5f5ffd5b61006860048036038101906100639190610703565b6100d6565b6040516100759190610748565b60405180910390f35b610086610285565b6040516100939190610748565b60405180910390f35b6100a46103e7565b005b6100c060048036038101906100bb9190610703565b610563565b6040516100cd9190610748565b60405180910390f35b5f816040516100e4906106a9565b6100ee9190610770565b604051809103905ff080156101005760015b6101d85761010c610795565b806308c379a0036101685750610120610822565b8061012b575061016a565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161015a9190610911565b60405180910390a1506101d3565b505b3d805f8114610194576040519150601f19603f3d011682016040523d82523d5f602084013e610199565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516101c99190610983565b60405180910390a1505b610280565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663ce0b4213846040518263ffffffff1660e01b815260040161023d9190610770565b602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906109cd565b9150505b919050565b5f5f6002604051610295906106b6565b61029f9190610a3a565b604051809103905ff0801580156102b8573d5f5f3e3d5ffd5b5090505f600290508173ffffffffffffffffffffffffffffffffffffffff1663ce0b4213826040518263ffffffff1660e01b81526004016102f99190610770565b602060405180830381865afa92505050801561033357506040513d601f19601f8201168201806040525081019061033091906109cd565b60015b6103aa5761033f610795565b806308c379a00361039b5750610353610822565b8061035e575061039d565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161038d9190610911565b60405180910390a1506103a5565b505b3d5f5f3e3d5ffd5b6103e1565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18093505050506103e4565b50505b90565b5f73ffffffffffffffffffffffffffffffffffffffff1663ce0b421360016040518263ffffffff1660e01b81526004016104219190610a8c565b602060405180830381865afa92505050801561045b57506040513d601f19601f8201168201806040525081019061045891906109cd565b60015b61053357610467610795565b806308c379a0036104c3575061047b610822565b8061048657506104c5565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516104b59190610911565b60405180910390a15061052e565b505b3d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516105249190610983565b60405180910390a1505b610561565b507ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a15b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce0b4213836040518263ffffffff1660e01b81526004016105bd9190610770565b602060405180830381865afa9250505080156105f757506040513d601f19601f820116820180604052508101906105f491906109cd565b60015b61066e57610603610795565b806308c379a00361065f5750610617610822565b806106225750610661565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516106519190610911565b60405180910390a150610669565b505b3d5f5f3e3d5ffd5b6106a3565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a1809150506106a4565b5b919050565b6103f380610aa683390190565b6103e780610e9983390190565b5f604051905090565b5f5ffd5b5f819050919050565b6106e2816106d0565b81146106ec575f5ffd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106cc565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b61076a816106d0565b82525050565b5f6020820190506107835f830184610761565b92915050565b5f8160e01c9050919050565b5f60033d11156107b15760045f5f3e6107ae5f51610789565b90505b90565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107fa826107b4565b810181811067ffffffffffffffff82111715610819576108186107c4565b5b80604052505050565b5f60443d106108ae576108336106c3565b60043d036004823e80513d602482011167ffffffffffffffff8211171561085b5750506108ae565b808201805167ffffffffffffffff81111561087957505050506108ae565b80602083010160043d0385018111156108965750505050506108ae565b6108a5826020018501866107f1565b82955050505050505b90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108e3826108b1565b6108ed81856108bb565b93506108fd8185602086016108cb565b610906816107b4565b840191505092915050565b5f6020820190508181035f83015261092981846108d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61095582610931565b61095f818561093b565b935061096f8185602086016108cb565b610978816107b4565b840191505092915050565b5f6020820190508181035f83015261099b818461094b565b905092915050565b6109ac8161072e565b81146109b6575f5ffd5b50565b5f815190506109c7816109a3565b92915050565b5f602082840312156109e2576109e16106cc565b5b5f6109ef848285016109b9565b91505092915050565b5f819050919050565b5f819050919050565b5f610a24610a1f610a1a846109f8565b610a01565b6106d0565b9050919050565b610a3481610a0a565b82525050565b5f602082019050610a4d5f830184610a2b565b92915050565b5f819050919050565b5f610a76610a71610a6c84610a53565b610a01565b6106d0565b9050919050565b610a8681610a5c565b82525050565b5f602082019050610a9f5f830184610a7d565b9291505056fe608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033a2646970667358221220a4c3ee7c54fed7a89ff2f1412156741d62896cefe95b98cb0b853ccb492829a264736f6c63430008220033","sourceMap":"665:2805:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1684:610;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3014:454;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2383:533;;;:::i;:::-;;1078:361;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1684:610;1730:12;1771:1;1758:15;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;1754:534;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2054:18;2065:6;2054:18;;;;;;:::i;:::-;;;;;;;;1922:161;1754:534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2260:17;2270:6;2260:17;;;;;;:::i;:::-;;;;;;;;2084:204;1754:534;;;;1855:14;;;;;;;;;;1893:5;:14;;;1908:1;1893:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1883:27;;1774:147;1754:534;1684:610;;;:::o;3014:454::-;3058:12;3081:17;3123:1;3109:16;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3081:45;;3136:14;3153:1;3136:18;;3177:9;3168:28;;;3197:6;3168:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3164:298;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3433:18;3444:6;3433:18;;;;;;:::i;:::-;;;;;;;;3340:122;3164:298;;;;;;;;;;;;;;;;3285:14;;;;;;;;;;3320:8;3313:15;;;;;;;3164:298;3071:397;;3014:454;;:::o;2383:533::-;2448:1;2431:29;;;2461:1;2431:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2427:483;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2677:18;2688:6;2677:18;;;;;;:::i;:::-;;;;;;;;2546:160;2427:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2882:17;2892:6;2882:17;;;;;;:::i;:::-;;;;;;;;2707:203;2427:483;;;;;2520:14;;;;;;;;;;2427:483;2383:533::o;1078:361::-;1126:12;1154:4;;;;;;;;;;;:13;;;1168:6;1154:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1150:283;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1404:18;1415:6;1404:18;;;;;;:::i;:::-;;;;;;;;1311:122;1150:283;;;;;;;;;;;;;;;;1256:14;;;;;;;;;;1291:8;1284:15;;;;;1150:283;1078:361;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:90::-;1059:7;1102:5;1095:13;1088:21;1077:32;;1025:90;;;:::o;1121:109::-;1202:21;1217:5;1202:21;:::i;:::-;1197:3;1190:34;1121:109;;:::o;1236:210::-;1323:4;1361:2;1350:9;1346:18;1338:26;;1374:65;1436:1;1425:9;1421:17;1412:6;1374:65;:::i;:::-;1236:210;;;;:::o;1452:118::-;1539:24;1557:5;1539:24;:::i;:::-;1534:3;1527:37;1452:118;;:::o;1576:222::-;1669:4;1707:2;1696:9;1692:18;1684:26;;1720:71;1788:1;1777:9;1773:17;1764:6;1720:71;:::i;:::-;1576:222;;;;:::o;1804:106::-;1848:8;1897:5;1892:3;1888:15;1867:36;;1804:106;;;:::o;1916:183::-;1951:3;1989:1;1971:16;1968:23;1965:128;;;2027:1;2024;2021;2006:23;2049:34;2080:1;2074:8;2049:34;:::i;:::-;2042:41;;1965:128;1916:183;:::o;2105:102::-;2146:6;2197:2;2193:7;2188:2;2181:5;2177:14;2173:28;2163:38;;2105:102;;;:::o;2213:180::-;2261:77;2258:1;2251:88;2358:4;2355:1;2348:15;2382:4;2379:1;2372:15;2399:281;2482:27;2504:4;2482:27;:::i;:::-;2474:6;2470:40;2612:6;2600:10;2597:22;2576:18;2564:10;2561:34;2558:62;2555:88;;;2623:18;;:::i;:::-;2555:88;2663:10;2659:2;2652:22;2442:238;2399:281;;:::o;2686:711::-;2725:3;2763:4;2745:16;2742:26;2771:5;2739:39;2800:20;;:::i;:::-;2875:1;2857:16;2853:24;2850:1;2844:4;2829:49;2908:4;2902:11;3007:16;3000:4;2992:6;2988:17;2985:39;2952:18;2944:6;2941:30;2925:113;2922:146;;;3053:5;;;;2922:146;3099:6;3093:4;3089:17;3135:3;3129:10;3162:18;3154:6;3151:30;3148:43;;;3184:5;;;;;;3148:43;3232:6;3225:4;3220:3;3216:14;3212:27;3291:1;3273:16;3269:24;3263:4;3259:35;3254:3;3251:44;3248:57;;;3298:5;;;;;;;3248:57;3315;3363:6;3357:4;3353:17;3345:6;3341:30;3335:4;3315:57;:::i;:::-;3388:3;3381:10;;2729:668;;;;;2686:711;;:::o;3403:99::-;3455:6;3489:5;3483:12;3473:22;;3403:99;;;:::o;3508:169::-;3592:11;3626:6;3621:3;3614:19;3666:4;3661:3;3657:14;3642:29;;3508:169;;;;:::o;3683:139::-;3772:6;3767:3;3762;3756:23;3813:1;3804:6;3799:3;3795:16;3788:27;3683:139;;;:::o;3828:377::-;3916:3;3944:39;3977:5;3944:39;:::i;:::-;3999:71;4063:6;4058:3;3999:71;:::i;:::-;3992:78;;4079:65;4137:6;4132:3;4125:4;4118:5;4114:16;4079:65;:::i;:::-;4169:29;4191:6;4169:29;:::i;:::-;4164:3;4160:39;4153:46;;3920:285;3828:377;;;;:::o;4211:313::-;4324:4;4362:2;4351:9;4347:18;4339:26;;4411:9;4405:4;4401:20;4397:1;4386:9;4382:17;4375:47;4439:78;4512:4;4503:6;4439:78;:::i;:::-;4431:86;;4211:313;;;;:::o;4530:98::-;4581:6;4615:5;4609:12;4599:22;;4530:98;;;:::o;4634:168::-;4717:11;4751:6;4746:3;4739:19;4791:4;4786:3;4782:14;4767:29;;4634:168;;;;:::o;4808:373::-;4894:3;4922:38;4954:5;4922:38;:::i;:::-;4976:70;5039:6;5034:3;4976:70;:::i;:::-;4969:77;;5055:65;5113:6;5108:3;5101:4;5094:5;5090:16;5055:65;:::i;:::-;5145:29;5167:6;5145:29;:::i;:::-;5140:3;5136:39;5129:46;;4898:283;4808:373;;;;:::o;5187:309::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5385:9;5379:4;5375:20;5371:1;5360:9;5356:17;5349:47;5413:76;5484:4;5475:6;5413:76;:::i;:::-;5405:84;;5187:309;;;;:::o;5502:116::-;5572:21;5587:5;5572:21;:::i;:::-;5565:5;5562:32;5552:60;;5608:1;5605;5598:12;5552:60;5502:116;:::o;5624:137::-;5678:5;5709:6;5703:13;5694:22;;5725:30;5749:5;5725:30;:::i;:::-;5624:137;;;;:::o;5767:345::-;5834:6;5883:2;5871:9;5862:7;5858:23;5854:32;5851:119;;;5889:79;;:::i;:::-;5851:119;6009:1;6034:61;6087:7;6078:6;6067:9;6063:22;6034:61;:::i;:::-;6024:71;;5980:125;5767:345;;;;:::o;6118:85::-;6163:7;6192:5;6181:16;;6118:85;;;:::o;6209:60::-;6237:3;6258:5;6251:12;;6209:60;;;:::o;6275:158::-;6333:9;6366:61;6384:42;6393:32;6419:5;6393:32;:::i;:::-;6384:42;:::i;:::-;6366:61;:::i;:::-;6353:74;;6275:158;;;:::o;6439:147::-;6534:45;6573:5;6534:45;:::i;:::-;6529:3;6522:58;6439:147;;:::o;6592:238::-;6693:4;6731:2;6720:9;6716:18;6708:26;;6744:79;6820:1;6809:9;6805:17;6796:6;6744:79;:::i;:::-;6592:238;;;;:::o;6836:85::-;6881:7;6910:5;6899:16;;6836:85;;;:::o;6927:158::-;6985:9;7018:61;7036:42;7045:32;7071:5;7045:32;:::i;:::-;7036:42;:::i;:::-;7018:61;:::i;:::-;7005:74;;6927:158;;;:::o;7091:147::-;7186:45;7225:5;7186:45;:::i;:::-;7181:3;7174:58;7091:147;;:::o;7244:238::-;7345:4;7383:2;7372:9;7368:18;7360:26;;7396:79;7472:1;7461:9;7457:17;7448:6;7396:79;:::i;:::-;7244:238;;;;:::o","linkReferences":{}},"methodIdentifiers":{"execute(uint256)":"fe0d94c1","executeNew(uint256)":"60ebc172","executeRevert()":"7e3b0c57","executeRevert2()":"617a691c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CatchByte\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"CatchEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"SuccessEvent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"executeNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeRevert2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"TryCatch\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"CatchByte","anonymous":false},{"inputs":[{"internalType":"string","name":"message","type":"string","indexed":false}],"type":"event","name":"CatchEvent","anonymous":false},{"inputs":[],"type":"event","name":"SuccessEvent","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"executeNew","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeRevert2","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"TryCatch"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":77} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeNew","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeRevert2","inputs":[],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"CatchByte","inputs":[{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"CatchEvent","inputs":[{"name":"message","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SuccessEvent","inputs":[],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b50600260405161001e90610085565b61002891906100dd565b604051809103905ff080158015610041573d5f5f3e3d5ffd5b505f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100f6565b6103f3806113b883390190565b5f819050919050565b5f819050919050565b5f819050919050565b5f6100c76100c26100bd84610092565b6100a4565b61009b565b9050919050565b6100d7816100ad565b82525050565b5f6020820190506100f05f8301846100ce565b92915050565b6112b5806101035f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806360ebc1721461004e578063617a691c1461007e5780637e3b0c571461009c578063fe0d94c1146100a6575b5f5ffd5b61006860048036038101906100639190610703565b6100d6565b6040516100759190610748565b60405180910390f35b610086610285565b6040516100939190610748565b60405180910390f35b6100a46103e7565b005b6100c060048036038101906100bb9190610703565b610563565b6040516100cd9190610748565b60405180910390f35b5f816040516100e4906106a9565b6100ee9190610770565b604051809103905ff080156101005760015b6101d85761010c610795565b806308c379a0036101685750610120610822565b8061012b575061016a565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161015a9190610911565b60405180910390a1506101d3565b505b3d805f8114610194576040519150601f19603f3d011682016040523d82523d5f602084013e610199565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516101c99190610983565b60405180910390a1505b610280565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663ce0b4213846040518263ffffffff1660e01b815260040161023d9190610770565b602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906109cd565b9150505b919050565b5f5f6002604051610295906106b6565b61029f9190610a3a565b604051809103905ff0801580156102b8573d5f5f3e3d5ffd5b5090505f600290508173ffffffffffffffffffffffffffffffffffffffff1663ce0b4213826040518263ffffffff1660e01b81526004016102f99190610770565b602060405180830381865afa92505050801561033357506040513d601f19601f8201168201806040525081019061033091906109cd565b60015b6103aa5761033f610795565b806308c379a00361039b5750610353610822565b8061035e575061039d565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161038d9190610911565b60405180910390a1506103a5565b505b3d5f5f3e3d5ffd5b6103e1565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18093505050506103e4565b50505b90565b5f73ffffffffffffffffffffffffffffffffffffffff1663ce0b421360016040518263ffffffff1660e01b81526004016104219190610a8c565b602060405180830381865afa92505050801561045b57506040513d601f19601f8201168201806040525081019061045891906109cd565b60015b61053357610467610795565b806308c379a0036104c3575061047b610822565b8061048657506104c5565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516104b59190610911565b60405180910390a15061052e565b505b3d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516105249190610983565b60405180910390a1505b610561565b507ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a15b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce0b4213836040518263ffffffff1660e01b81526004016105bd9190610770565b602060405180830381865afa9250505080156105f757506040513d601f19601f820116820180604052508101906105f491906109cd565b60015b61066e57610603610795565b806308c379a00361065f5750610617610822565b806106225750610661565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516106519190610911565b60405180910390a150610669565b505b3d5f5f3e3d5ffd5b6106a3565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a1809150506106a4565b5b919050565b6103f380610aa683390190565b6103e780610e9983390190565b5f604051905090565b5f5ffd5b5f819050919050565b6106e2816106d0565b81146106ec575f5ffd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106cc565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b61076a816106d0565b82525050565b5f6020820190506107835f830184610761565b92915050565b5f8160e01c9050919050565b5f60033d11156107b15760045f5f3e6107ae5f51610789565b90505b90565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107fa826107b4565b810181811067ffffffffffffffff82111715610819576108186107c4565b5b80604052505050565b5f60443d106108ae576108336106c3565b60043d036004823e80513d602482011167ffffffffffffffff8211171561085b5750506108ae565b808201805167ffffffffffffffff81111561087957505050506108ae565b80602083010160043d0385018111156108965750505050506108ae565b6108a5826020018501866107f1565b82955050505050505b90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108e3826108b1565b6108ed81856108bb565b93506108fd8185602086016108cb565b610906816107b4565b840191505092915050565b5f6020820190508181035f83015261092981846108d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61095582610931565b61095f818561093b565b935061096f8185602086016108cb565b610978816107b4565b840191505092915050565b5f6020820190508181035f83015261099b818461094b565b905092915050565b6109ac8161072e565b81146109b6575f5ffd5b50565b5f815190506109c7816109a3565b92915050565b5f602082840312156109e2576109e16106cc565b5b5f6109ef848285016109b9565b91505092915050565b5f819050919050565b5f819050919050565b5f610a24610a1f610a1a846109f8565b610a01565b6106d0565b9050919050565b610a3481610a0a565b82525050565b5f602082019050610a4d5f830184610a2b565b92915050565b5f819050919050565b5f610a76610a71610a6c84610a53565b610a01565b6106d0565b9050919050565b610a8681610a5c565b82525050565b5f602082019050610a9f5f830184610a7d565b9291505056fe608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033a2646970667358221220a4c3ee7c54fed7a89ff2f1412156741d62896cefe95b98cb0b853ccb492829a264736f6c63430008220033608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033","sourceMap":"665:2805:71:-:0;;;879:53;;;;;;;;;;923:1;910:15;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;903:4;;:22;;;;;;;;;;;;;;;;;;665:2805;;;;;;;;;;:::o;7:85:139:-;52:7;81:5;70:16;;7:85;;;:::o;98:77::-;135:7;164:5;153:16;;98:77;;;:::o;181:60::-;209:3;230:5;223:12;;181:60;;;:::o;247:158::-;305:9;338:61;356:42;365:32;391:5;365:32;:::i;:::-;356:42;:::i;:::-;338:61;:::i;:::-;325:74;;247:158;;;:::o;411:147::-;506:45;545:5;506:45;:::i;:::-;501:3;494:58;411:147;;:::o;564:238::-;665:4;703:2;692:9;688:18;680:26;;716:79;792:1;781:9;777:17;768:6;716:79;:::i;:::-;564:238;;;;:::o;665:2805:71:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806360ebc1721461004e578063617a691c1461007e5780637e3b0c571461009c578063fe0d94c1146100a6575b5f5ffd5b61006860048036038101906100639190610703565b6100d6565b6040516100759190610748565b60405180910390f35b610086610285565b6040516100939190610748565b60405180910390f35b6100a46103e7565b005b6100c060048036038101906100bb9190610703565b610563565b6040516100cd9190610748565b60405180910390f35b5f816040516100e4906106a9565b6100ee9190610770565b604051809103905ff080156101005760015b6101d85761010c610795565b806308c379a0036101685750610120610822565b8061012b575061016a565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161015a9190610911565b60405180910390a1506101d3565b505b3d805f8114610194576040519150601f19603f3d011682016040523d82523d5f602084013e610199565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516101c99190610983565b60405180910390a1505b610280565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663ce0b4213846040518263ffffffff1660e01b815260040161023d9190610770565b602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906109cd565b9150505b919050565b5f5f6002604051610295906106b6565b61029f9190610a3a565b604051809103905ff0801580156102b8573d5f5f3e3d5ffd5b5090505f600290508173ffffffffffffffffffffffffffffffffffffffff1663ce0b4213826040518263ffffffff1660e01b81526004016102f99190610770565b602060405180830381865afa92505050801561033357506040513d601f19601f8201168201806040525081019061033091906109cd565b60015b6103aa5761033f610795565b806308c379a00361039b5750610353610822565b8061035e575061039d565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a68160405161038d9190610911565b60405180910390a1506103a5565b505b3d5f5f3e3d5ffd5b6103e1565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a18093505050506103e4565b50505b90565b5f73ffffffffffffffffffffffffffffffffffffffff1663ce0b421360016040518263ffffffff1660e01b81526004016104219190610a8c565b602060405180830381865afa92505050801561045b57506040513d601f19601f8201168201806040525081019061045891906109cd565b60015b61053357610467610795565b806308c379a0036104c3575061047b610822565b8061048657506104c5565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516104b59190610911565b60405180910390a15061052e565b505b3d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b507fb6f66868478aebcea8c7a15c8c7dd37a513a4127424642ee3573117b52fa3e39816040516105249190610983565b60405180910390a1505b610561565b507ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a15b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce0b4213836040518263ffffffff1660e01b81526004016105bd9190610770565b602060405180830381865afa9250505080156105f757506040513d601f19601f820116820180604052508101906105f491906109cd565b60015b61066e57610603610795565b806308c379a00361065f5750610617610822565b806106225750610661565b7fb761112ad379c509744de8d585702b0d2694d4ceaef85ad50d452ff06821a6a6816040516106519190610911565b60405180910390a150610669565b505b3d5f5f3e3d5ffd5b6106a3565b7ffd76336752e93f2cc77cf13a41be8b6c156731030376354d634d28a9a87b916260405160405180910390a1809150506106a4565b5b919050565b6103f380610aa683390190565b6103e780610e9983390190565b5f604051905090565b5f5ffd5b5f819050919050565b6106e2816106d0565b81146106ec575f5ffd5b50565b5f813590506106fd816106d9565b92915050565b5f60208284031215610718576107176106cc565b5b5f610725848285016106ef565b91505092915050565b5f8115159050919050565b6107428161072e565b82525050565b5f60208201905061075b5f830184610739565b92915050565b61076a816106d0565b82525050565b5f6020820190506107835f830184610761565b92915050565b5f8160e01c9050919050565b5f60033d11156107b15760045f5f3e6107ae5f51610789565b90505b90565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107fa826107b4565b810181811067ffffffffffffffff82111715610819576108186107c4565b5b80604052505050565b5f60443d106108ae576108336106c3565b60043d036004823e80513d602482011167ffffffffffffffff8211171561085b5750506108ae565b808201805167ffffffffffffffff81111561087957505050506108ae565b80602083010160043d0385018111156108965750505050506108ae565b6108a5826020018501866107f1565b82955050505050505b90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108e3826108b1565b6108ed81856108bb565b93506108fd8185602086016108cb565b610906816107b4565b840191505092915050565b5f6020820190508181035f83015261092981846108d9565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61095582610931565b61095f818561093b565b935061096f8185602086016108cb565b610978816107b4565b840191505092915050565b5f6020820190508181035f83015261099b818461094b565b905092915050565b6109ac8161072e565b81146109b6575f5ffd5b50565b5f815190506109c7816109a3565b92915050565b5f602082840312156109e2576109e16106cc565b5b5f6109ef848285016109b9565b91505092915050565b5f819050919050565b5f819050919050565b5f610a24610a1f610a1a846109f8565b610a01565b6106d0565b9050919050565b610a3481610a0a565b82525050565b5f602082019050610a4d5f830184610a2b565b92915050565b5f819050919050565b5f610a76610a71610a6c84610a53565b610a01565b6106d0565b9050919050565b610a8681610a5c565b82525050565b5f602082019050610a9f5f830184610a7d565b9291505056fe608060405234801561000f575f5ffd5b506040516103f33803806103f3833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102558061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100ec565b61005d565b6040516100549190610131565b60405180910390f35b5f5f60028361006c9190610177565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a390610201565b60405180910390fd5b60019050919050565b5f5ffd5b5f819050919050565b6100cb816100b9565b81146100d5575f5ffd5b50565b5f813590506100e6816100c2565b92915050565b5f60208284031215610101576101006100b5565b5b5f61010e848285016100d8565b91505092915050565b5f8115159050919050565b61012b81610117565b82525050565b5f6020820190506101445f830184610122565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610181826100b9565b915061018c836100b9565b92508261019c5761019b61014a565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101eb600e836101a7565b91506101f6826101b7565b602082019050919050565b5f6020820190508181035f830152610218816101df565b905091905056fea26469706673582212204970a9560791f2a84eb93de2608d6376ca87e6cdad52c1b72f3d9d3d8390f72764736f6c63430008220033608060405234801561000f575f5ffd5b506040516103e73803806103e7833981810160405281019061003191906100c1565b5f8103610073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161006a90610146565b60405180910390fd5b6001810361008457610083610164565b5b50610191565b5f5ffd5b5f819050919050565b6100a08161008e565b81146100aa575f5ffd5b50565b5f815190506100bb81610097565b92915050565b5f602082840312156100d6576100d561008a565b5b5f6100e3848285016100ad565b91505092915050565b5f82825260208201905092915050565b7f696e76616c6964206e756d6265720000000000000000000000000000000000005f82015250565b5f610130600e836100ec565b915061013b826100fc565b602082019050919050565b5f6020820190508181035f83015261015d81610124565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b6102498061019e5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063ce0b42131461002d575b5f5ffd5b610047600480360381019061004291906100eb565b61005d565b6040516100549190610125565b60405180910390f35b5f5f60028361006c919061016b565b146100ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100a3906101f5565b60405180910390fd5b819050919050565b5f5ffd5b5f819050919050565b6100ca816100b8565b81146100d4575f5ffd5b50565b5f813590506100e5816100c1565b92915050565b5f60208284031215610100576100ff6100b4565b5b5f61010d848285016100d7565b91505092915050565b61011f816100b8565b82525050565b5f6020820190506101385f830184610116565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610175826100b8565b9150610180836100b8565b9250826101905761018f61013e565b5b828206905092915050565b5f82825260208201905092915050565b7f5570732120526576657274696e670000000000000000000000000000000000005f82015250565b5f6101df600e8361019b565b91506101ea826101ab565b602082019050919050565b5f6020820190508181035f83015261020c816101d3565b905091905056fea264697066735822122092a527d04f6e7c91bc0dff53260df355cccd5da03fee2c177914a488532bd0a364736f6c63430008220033a2646970667358221220a4c3ee7c54fed7a89ff2f1412156741d62896cefe95b98cb0b853ccb492829a264736f6c63430008220033","sourceMap":"665:2805:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1684:610;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3014:454;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2383:533;;;:::i;:::-;;1078:361;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1684:610;1730:12;1771:1;1758:15;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;1754:534;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2054:18;2065:6;2054:18;;;;;;:::i;:::-;;;;;;;;1922:161;1754:534;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2260:17;2270:6;2260:17;;;;;;:::i;:::-;;;;;;;;2084:204;1754:534;;;;1855:14;;;;;;;;;;1893:5;:14;;;1908:1;1893:17;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1883:27;;1774:147;1754:534;1684:610;;;:::o;3014:454::-;3058:12;3081:17;3123:1;3109:16;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3081:45;;3136:14;3153:1;3136:18;;3177:9;3168:28;;;3197:6;3168:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3164:298;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3433:18;3444:6;3433:18;;;;;;:::i;:::-;;;;;;;;3340:122;3164:298;;;;;;;;;;;;;;;;3285:14;;;;;;;;;;3320:8;3313:15;;;;;;;3164:298;3071:397;;3014:454;;:::o;2383:533::-;2448:1;2431:29;;;2461:1;2431:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2427:483;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;2677:18;2688:6;2677:18;;;;;;:::i;:::-;;;;;;;;2546:160;2427:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2882:17;2892:6;2882:17;;;;;;:::i;:::-;;;;;;;;2707:203;2427:483;;;;;2520:14;;;;;;;;;;2427:483;2383:533::o;1078:361::-;1126:12;1154:4;;;;;;;;;;;:13;;;1168:6;1154:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1150:283;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1404:18;1415:6;1404:18;;;;;;:::i;:::-;;;;;;;;1311:122;1150:283;;;;;;;;;;;;;;;;1256:14;;;;;;;;;;1291:8;1284:15;;;;;1150:283;1078:361;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:90::-;1059:7;1102:5;1095:13;1088:21;1077:32;;1025:90;;;:::o;1121:109::-;1202:21;1217:5;1202:21;:::i;:::-;1197:3;1190:34;1121:109;;:::o;1236:210::-;1323:4;1361:2;1350:9;1346:18;1338:26;;1374:65;1436:1;1425:9;1421:17;1412:6;1374:65;:::i;:::-;1236:210;;;;:::o;1452:118::-;1539:24;1557:5;1539:24;:::i;:::-;1534:3;1527:37;1452:118;;:::o;1576:222::-;1669:4;1707:2;1696:9;1692:18;1684:26;;1720:71;1788:1;1777:9;1773:17;1764:6;1720:71;:::i;:::-;1576:222;;;;:::o;1804:106::-;1848:8;1897:5;1892:3;1888:15;1867:36;;1804:106;;;:::o;1916:183::-;1951:3;1989:1;1971:16;1968:23;1965:128;;;2027:1;2024;2021;2006:23;2049:34;2080:1;2074:8;2049:34;:::i;:::-;2042:41;;1965:128;1916:183;:::o;2105:102::-;2146:6;2197:2;2193:7;2188:2;2181:5;2177:14;2173:28;2163:38;;2105:102;;;:::o;2213:180::-;2261:77;2258:1;2251:88;2358:4;2355:1;2348:15;2382:4;2379:1;2372:15;2399:281;2482:27;2504:4;2482:27;:::i;:::-;2474:6;2470:40;2612:6;2600:10;2597:22;2576:18;2564:10;2561:34;2558:62;2555:88;;;2623:18;;:::i;:::-;2555:88;2663:10;2659:2;2652:22;2442:238;2399:281;;:::o;2686:711::-;2725:3;2763:4;2745:16;2742:26;2771:5;2739:39;2800:20;;:::i;:::-;2875:1;2857:16;2853:24;2850:1;2844:4;2829:49;2908:4;2902:11;3007:16;3000:4;2992:6;2988:17;2985:39;2952:18;2944:6;2941:30;2925:113;2922:146;;;3053:5;;;;2922:146;3099:6;3093:4;3089:17;3135:3;3129:10;3162:18;3154:6;3151:30;3148:43;;;3184:5;;;;;;3148:43;3232:6;3225:4;3220:3;3216:14;3212:27;3291:1;3273:16;3269:24;3263:4;3259:35;3254:3;3251:44;3248:57;;;3298:5;;;;;;;3248:57;3315;3363:6;3357:4;3353:17;3345:6;3341:30;3335:4;3315:57;:::i;:::-;3388:3;3381:10;;2729:668;;;;;2686:711;;:::o;3403:99::-;3455:6;3489:5;3483:12;3473:22;;3403:99;;;:::o;3508:169::-;3592:11;3626:6;3621:3;3614:19;3666:4;3661:3;3657:14;3642:29;;3508:169;;;;:::o;3683:139::-;3772:6;3767:3;3762;3756:23;3813:1;3804:6;3799:3;3795:16;3788:27;3683:139;;;:::o;3828:377::-;3916:3;3944:39;3977:5;3944:39;:::i;:::-;3999:71;4063:6;4058:3;3999:71;:::i;:::-;3992:78;;4079:65;4137:6;4132:3;4125:4;4118:5;4114:16;4079:65;:::i;:::-;4169:29;4191:6;4169:29;:::i;:::-;4164:3;4160:39;4153:46;;3920:285;3828:377;;;;:::o;4211:313::-;4324:4;4362:2;4351:9;4347:18;4339:26;;4411:9;4405:4;4401:20;4397:1;4386:9;4382:17;4375:47;4439:78;4512:4;4503:6;4439:78;:::i;:::-;4431:86;;4211:313;;;;:::o;4530:98::-;4581:6;4615:5;4609:12;4599:22;;4530:98;;;:::o;4634:168::-;4717:11;4751:6;4746:3;4739:19;4791:4;4786:3;4782:14;4767:29;;4634:168;;;;:::o;4808:373::-;4894:3;4922:38;4954:5;4922:38;:::i;:::-;4976:70;5039:6;5034:3;4976:70;:::i;:::-;4969:77;;5055:65;5113:6;5108:3;5101:4;5094:5;5090:16;5055:65;:::i;:::-;5145:29;5167:6;5145:29;:::i;:::-;5140:3;5136:39;5129:46;;4898:283;4808:373;;;;:::o;5187:309::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5385:9;5379:4;5375:20;5371:1;5360:9;5356:17;5349:47;5413:76;5484:4;5475:6;5413:76;:::i;:::-;5405:84;;5187:309;;;;:::o;5502:116::-;5572:21;5587:5;5572:21;:::i;:::-;5565:5;5562:32;5552:60;;5608:1;5605;5598:12;5552:60;5502:116;:::o;5624:137::-;5678:5;5709:6;5703:13;5694:22;;5725:30;5749:5;5725:30;:::i;:::-;5624:137;;;;:::o;5767:345::-;5834:6;5883:2;5871:9;5862:7;5858:23;5854:32;5851:119;;;5889:79;;:::i;:::-;5851:119;6009:1;6034:61;6087:7;6078:6;6067:9;6063:22;6034:61;:::i;:::-;6024:71;;5980:125;5767:345;;;;:::o;6118:85::-;6163:7;6192:5;6181:16;;6118:85;;;:::o;6209:60::-;6237:3;6258:5;6251:12;;6209:60;;;:::o;6275:158::-;6333:9;6366:61;6384:42;6393:32;6419:5;6393:32;:::i;:::-;6384:42;:::i;:::-;6366:61;:::i;:::-;6353:74;;6275:158;;;:::o;6439:147::-;6534:45;6573:5;6534:45;:::i;:::-;6529:3;6522:58;6439:147;;:::o;6592:238::-;6693:4;6731:2;6720:9;6716:18;6708:26;;6744:79;6820:1;6809:9;6805:17;6796:6;6744:79;:::i;:::-;6592:238;;;;:::o;6836:85::-;6881:7;6910:5;6899:16;;6836:85;;;:::o;6927:158::-;6985:9;7018:61;7036:42;7045:32;7071:5;7045:32;:::i;:::-;7036:42;:::i;:::-;7018:61;:::i;:::-;7005:74;;6927:158;;;:::o;7091:147::-;7186:45;7225:5;7186:45;:::i;:::-;7181:3;7174:58;7091:147;;:::o;7244:238::-;7345:4;7383:2;7372:9;7368:18;7360:26;;7396:79;7472:1;7461:9;7457:17;7448:6;7396:79;:::i;:::-;7244:238;;;;:::o","linkReferences":{}},"methodIdentifiers":{"execute(uint256)":"fe0d94c1","executeNew(uint256)":"60ebc172","executeRevert()":"7e3b0c57","executeRevert2()":"617a691c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CatchByte\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"CatchEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"SuccessEvent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"executeNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeRevert2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/30_TryCatch/TryCatch.sol\":\"TryCatch\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/30_TryCatch/TryCatch.sol\":{\"keccak256\":\"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92\",\"dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"CatchByte","anonymous":false},{"inputs":[{"internalType":"string","name":"message","type":"string","indexed":false}],"type":"event","name":"CatchEvent","anonymous":false},{"inputs":[],"type":"event","name":"SuccessEvent","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"executeNew","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"executeRevert2","outputs":[{"internalType":"bool","name":"success","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/30_TryCatch/TryCatch.sol":"TryCatch"},"evmVersion":"prague","libraries":{}},"sources":{"src/30_TryCatch/TryCatch.sol":{"keccak256":"0xdbf1cce835b42cfdc3c4d854c8d379a8a21ce3fd74a58762652c3698df5fa287","urls":["bzz-raw://77688ca1b825d0974cc03869dd33791f73b32da3865a95230d98b16eefa76d92","dweb:/ipfs/QmVbiTKF4m2kVyJYFGV72CzX7tXSoUEmUBXAjaiQaem8WM"],"license":"MIT"}},"version":1},"id":71} \ No newline at end of file diff --git a/out/UUPS.sol/UUPS1.json b/out/UUPS.sol/UUPS1.json index a0104cdc..7f064776 100644 --- a/out/UUPS.sol/UUPS1.json +++ b/out/UUPS.sol/UUPS1.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107198061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c640000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207f41f86ff6c16a0f43f2ca5592d36237b3653b78814ffb308535785522e8d98b64736f6c63430008220033","sourceMap":"905:671:108:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c640000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207f41f86ff6c16a0f43f2ca5592d36237b3653b78814ffb308535785522e8d98b64736f6c63430008220033","sourceMap":"905:671:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;986:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1190:51;;;:::i;:::-;;1049:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1022:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1432:142;1517:5;;;;;;;;;;;1503:19;;:10;:19;;;1495:28;;;;;;1550:17;1533:14;;:34;;;;;;;;;;;;;;;;;;1432:142;:::o;986:29::-;;;;;;;;;;;;;:::o;1190:51::-;1221:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1190:51::o;1049:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1022:20::-;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:99::-;1580:6;1614:5;1608:12;1598:22;;1528:99;;;:::o;1633:169::-;1717:11;1751:6;1746:3;1739:19;1791:4;1786:3;1782:14;1767:29;;1633:169;;;;:::o;1808:139::-;1897:6;1892:3;1887;1881:23;1938:1;1929:6;1924:3;1920:16;1913:27;1808:139;;;:::o;1953:102::-;1994:6;2045:2;2041:7;2036:2;2029:5;2025:14;2021:28;2011:38;;1953:102;;;:::o;2061:377::-;2149:3;2177:39;2210:5;2177:39;:::i;:::-;2232:71;2296:6;2291:3;2232:71;:::i;:::-;2225:78;;2312:65;2370:6;2365:3;2358:4;2351:5;2347:16;2312:65;:::i;:::-;2402:29;2424:6;2402:29;:::i;:::-;2397:3;2393:39;2386:46;;2153:285;2061:377;;;;:::o;2444:313::-;2557:4;2595:2;2584:9;2580:18;2572:26;;2644:9;2638:4;2634:20;2630:1;2619:9;2615:17;2608:47;2672:78;2745:4;2736:6;2672:78;:::i;:::-;2664:86;;2444:313;;;;:::o;2763:180::-;2811:77;2808:1;2801:88;2908:4;2905:1;2898:15;2932:4;2929:1;2922:15;2949:180;2997:77;2994:1;2987:88;3094:4;3091:1;3084:15;3118:4;3115:1;3108:15;3135:320;3179:6;3216:1;3210:4;3206:12;3196:22;;3263:1;3257:4;3253:12;3284:18;3274:81;;3340:4;3332:6;3328:17;3318:27;;3274:81;3402:2;3394:6;3391:14;3371:18;3368:38;3365:84;;3421:18;;:::i;:::-;3365:84;3186:269;3135:320;;;:::o;3461:141::-;3510:4;3533:3;3525:11;;3556:3;3553:1;3546:14;3590:4;3587:1;3577:18;3569:26;;3461:141;;;:::o;3608:93::-;3645:6;3692:2;3687;3680:5;3676:14;3672:23;3662:33;;3608:93;;;:::o;3707:107::-;3751:8;3801:5;3795:4;3791:16;3770:37;;3707:107;;;;:::o;3820:393::-;3889:6;3939:1;3927:10;3923:18;3962:97;3992:66;3981:9;3962:97;:::i;:::-;4080:39;4110:8;4099:9;4080:39;:::i;:::-;4068:51;;4152:4;4148:9;4141:5;4137:21;4128:30;;4201:4;4191:8;4187:19;4180:5;4177:30;4167:40;;3896:317;;3820:393;;;;;:::o;4219:77::-;4256:7;4285:5;4274:16;;4219:77;;;:::o;4302:60::-;4330:3;4351:5;4344:12;;4302:60;;;:::o;4368:142::-;4418:9;4451:53;4469:34;4478:24;4496:5;4478:24;:::i;:::-;4469:34;:::i;:::-;4451:53;:::i;:::-;4438:66;;4368:142;;;:::o;4516:75::-;4559:3;4580:5;4573:12;;4516:75;;;:::o;4597:269::-;4707:39;4738:7;4707:39;:::i;:::-;4768:91;4817:41;4841:16;4817:41;:::i;:::-;4809:6;4802:4;4796:11;4768:91;:::i;:::-;4762:4;4755:105;4673:193;4597:269;;;:::o;4872:73::-;4917:3;4938:1;4931:8;;4872:73;:::o;4951:189::-;5028:32;;:::i;:::-;5069:65;5127:6;5119;5113:4;5069:65;:::i;:::-;5004:136;4951:189;;:::o;5146:214::-;5231:1;5216:138;5241:9;5238:1;5235:16;5216:138;;;5293:51;5342:1;5338;5327:9;5323:17;5293:51;:::i;:::-;5266:1;5263;5259:9;5254:14;;5216:138;;;5220:14;5146:214;;:::o;5366:746::-;5467:2;5462:3;5459:11;5456:649;;;5496:10;5491:3;5488:19;5485:610;;;5542:38;5574:5;5542:38;:::i;:::-;5617:22;5635:3;5617:22;:::i;:::-;5676:29;5694:10;5676:29;:::i;:::-;5866:2;5854:10;5851:18;5848:79;;;5908:1;5892:17;;5848:79;5977:12;5967:8;5963:27;6007:74;6067:12;6053;6049:31;6036:11;6007:74;:::i;:::-;5508:587;;;;5485:610;5456:649;5366:746;;;:::o;6118:117::-;6172:8;6222:5;6216:4;6212:16;6191:37;;6118:117;;;;:::o;6241:169::-;6285:6;6318:51;6366:1;6362:6;6354:5;6351:1;6347:13;6318:51;:::i;:::-;6314:56;6399:4;6393;6389:15;6379:25;;6292:118;6241:169;;;;:::o;6415:295::-;6491:4;6637:29;6662:3;6656:4;6637:29;:::i;:::-;6629:37;;6699:3;6696:1;6692:11;6686:4;6683:21;6675:29;;6415:295;;;;:::o;6715:1395::-;6832:37;6865:3;6832:37;:::i;:::-;6934:18;6926:6;6923:30;6920:56;;;6956:18;;:::i;:::-;6920:56;7000:38;7032:4;7026:11;7000:38;:::i;:::-;7085:67;7145:6;7137;7131:4;7085:67;:::i;:::-;7179:1;7203:4;7190:17;;7235:2;7227:6;7224:14;7252:1;7247:618;;;;7909:1;7926:6;7923:77;;;7975:9;7970:3;7966:19;7960:26;7951:35;;7923:77;8026:67;8086:6;8079:5;8026:67;:::i;:::-;8020:4;8013:81;7882:222;7217:887;;7247:618;7299:4;7295:9;7287:6;7283:22;7333:37;7365:4;7333:37;:::i;:::-;7392:1;7406:208;7420:7;7417:1;7414:14;7406:208;;;7499:9;7494:3;7490:19;7484:26;7476:6;7469:42;7550:1;7542:6;7538:14;7528:24;;7597:2;7586:9;7582:18;7569:31;;7443:4;7440:1;7436:12;7431:17;;7406:208;;;7642:6;7633:7;7630:19;7627:179;;;7700:9;7695:3;7691:19;7685:26;7743:48;7785:4;7777:6;7773:17;7762:9;7743:48;:::i;:::-;7735:6;7728:64;7650:156;7627:179;7852:1;7848;7840:6;7836:14;7832:22;7826:4;7819:36;7254:611;;;7217:887;;6807:1303;;;6715:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPS1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPS1"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107198061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c640000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207f41f86ff6c16a0f43f2ca5592d36237b3653b78814ffb308535785522e8d98b64736f6c63430008220033","sourceMap":"905:671:102:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c640000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207f41f86ff6c16a0f43f2ca5592d36237b3653b78814ffb308535785522e8d98b64736f6c63430008220033","sourceMap":"905:671:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;986:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1190:51;;;:::i;:::-;;1049:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1022:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1432:142;1517:5;;;;;;;;;;;1503:19;;:10;:19;;;1495:28;;;;;;1550:17;1533:14;;:34;;;;;;;;;;;;;;;;;;1432:142;:::o;986:29::-;;;;;;;;;;;;;:::o;1190:51::-;1221:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1190:51::o;1049:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1022:20::-;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:99::-;1580:6;1614:5;1608:12;1598:22;;1528:99;;;:::o;1633:169::-;1717:11;1751:6;1746:3;1739:19;1791:4;1786:3;1782:14;1767:29;;1633:169;;;;:::o;1808:139::-;1897:6;1892:3;1887;1881:23;1938:1;1929:6;1924:3;1920:16;1913:27;1808:139;;;:::o;1953:102::-;1994:6;2045:2;2041:7;2036:2;2029:5;2025:14;2021:28;2011:38;;1953:102;;;:::o;2061:377::-;2149:3;2177:39;2210:5;2177:39;:::i;:::-;2232:71;2296:6;2291:3;2232:71;:::i;:::-;2225:78;;2312:65;2370:6;2365:3;2358:4;2351:5;2347:16;2312:65;:::i;:::-;2402:29;2424:6;2402:29;:::i;:::-;2397:3;2393:39;2386:46;;2153:285;2061:377;;;;:::o;2444:313::-;2557:4;2595:2;2584:9;2580:18;2572:26;;2644:9;2638:4;2634:20;2630:1;2619:9;2615:17;2608:47;2672:78;2745:4;2736:6;2672:78;:::i;:::-;2664:86;;2444:313;;;;:::o;2763:180::-;2811:77;2808:1;2801:88;2908:4;2905:1;2898:15;2932:4;2929:1;2922:15;2949:180;2997:77;2994:1;2987:88;3094:4;3091:1;3084:15;3118:4;3115:1;3108:15;3135:320;3179:6;3216:1;3210:4;3206:12;3196:22;;3263:1;3257:4;3253:12;3284:18;3274:81;;3340:4;3332:6;3328:17;3318:27;;3274:81;3402:2;3394:6;3391:14;3371:18;3368:38;3365:84;;3421:18;;:::i;:::-;3365:84;3186:269;3135:320;;;:::o;3461:141::-;3510:4;3533:3;3525:11;;3556:3;3553:1;3546:14;3590:4;3587:1;3577:18;3569:26;;3461:141;;;:::o;3608:93::-;3645:6;3692:2;3687;3680:5;3676:14;3672:23;3662:33;;3608:93;;;:::o;3707:107::-;3751:8;3801:5;3795:4;3791:16;3770:37;;3707:107;;;;:::o;3820:393::-;3889:6;3939:1;3927:10;3923:18;3962:97;3992:66;3981:9;3962:97;:::i;:::-;4080:39;4110:8;4099:9;4080:39;:::i;:::-;4068:51;;4152:4;4148:9;4141:5;4137:21;4128:30;;4201:4;4191:8;4187:19;4180:5;4177:30;4167:40;;3896:317;;3820:393;;;;;:::o;4219:77::-;4256:7;4285:5;4274:16;;4219:77;;;:::o;4302:60::-;4330:3;4351:5;4344:12;;4302:60;;;:::o;4368:142::-;4418:9;4451:53;4469:34;4478:24;4496:5;4478:24;:::i;:::-;4469:34;:::i;:::-;4451:53;:::i;:::-;4438:66;;4368:142;;;:::o;4516:75::-;4559:3;4580:5;4573:12;;4516:75;;;:::o;4597:269::-;4707:39;4738:7;4707:39;:::i;:::-;4768:91;4817:41;4841:16;4817:41;:::i;:::-;4809:6;4802:4;4796:11;4768:91;:::i;:::-;4762:4;4755:105;4673:193;4597:269;;;:::o;4872:73::-;4917:3;4938:1;4931:8;;4872:73;:::o;4951:189::-;5028:32;;:::i;:::-;5069:65;5127:6;5119;5113:4;5069:65;:::i;:::-;5004:136;4951:189;;:::o;5146:214::-;5231:1;5216:138;5241:9;5238:1;5235:16;5216:138;;;5293:51;5342:1;5338;5327:9;5323:17;5293:51;:::i;:::-;5266:1;5263;5259:9;5254:14;;5216:138;;;5220:14;5146:214;;:::o;5366:746::-;5467:2;5462:3;5459:11;5456:649;;;5496:10;5491:3;5488:19;5485:610;;;5542:38;5574:5;5542:38;:::i;:::-;5617:22;5635:3;5617:22;:::i;:::-;5676:29;5694:10;5676:29;:::i;:::-;5866:2;5854:10;5851:18;5848:79;;;5908:1;5892:17;;5848:79;5977:12;5967:8;5963:27;6007:74;6067:12;6053;6049:31;6036:11;6007:74;:::i;:::-;5508:587;;;;5485:610;5456:649;5366:746;;;:::o;6118:117::-;6172:8;6222:5;6216:4;6212:16;6191:37;;6118:117;;;;:::o;6241:169::-;6285:6;6318:51;6366:1;6362:6;6354:5;6351:1;6347:13;6318:51;:::i;:::-;6314:56;6399:4;6393;6389:15;6379:25;;6292:118;6241:169;;;;:::o;6415:295::-;6491:4;6637:29;6662:3;6656:4;6637:29;:::i;:::-;6629:37;;6699:3;6696:1;6692:11;6686:4;6683:21;6675:29;;6415:295;;;;:::o;6715:1395::-;6832:37;6865:3;6832:37;:::i;:::-;6934:18;6926:6;6923:30;6920:56;;;6956:18;;:::i;:::-;6920:56;7000:38;7032:4;7026:11;7000:38;:::i;:::-;7085:67;7145:6;7137;7131:4;7085:67;:::i;:::-;7179:1;7203:4;7190:17;;7235:2;7227:6;7224:14;7252:1;7247:618;;;;7909:1;7926:6;7923:77;;;7975:9;7970:3;7966:19;7960:26;7951:35;;7923:77;8026:67;8086:6;8079:5;8026:67;:::i;:::-;8020:4;8013:81;7882:222;7217:887;;7247:618;7299:4;7295:9;7287:6;7283:22;7333:37;7365:4;7333:37;:::i;:::-;7392:1;7406:208;7420:7;7417:1;7414:14;7406:208;;;7499:9;7494:3;7490:19;7484:26;7476:6;7469:42;7550:1;7542:6;7538:14;7528:24;;7597:2;7586:9;7582:18;7569:31;;7443:4;7440:1;7436:12;7431:17;;7406:208;;;7642:6;7633:7;7630:19;7627:179;;;7700:9;7695:3;7691:19;7685:26;7743:48;7785:4;7777:6;7773:17;7762:9;7743:48;:::i;:::-;7735:6;7728:64;7650:156;7627:179;7852:1;7848;7840:6;7836:14;7832:22;7826:4;7819:36;7254:611;;;7217:887;;6807:1303;;;6715:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPS1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPS1"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/UUPS.sol/UUPS2.json b/out/UUPS.sol/UUPS2.json index dd744a1a..a1088731 100644 --- a/out/UUPS.sol/UUPS2.json +++ b/out/UUPS.sol/UUPS2.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107198061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e65770000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f6b4cf4fc948895904235775124bdc60bd8194c3c44de31714498a30f5cefe7164736f6c63430008220033","sourceMap":"1604:671:108:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e65770000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f6b4cf4fc948895904235775124bdc60bd8194c3c44de31714498a30f5cefe7164736f6c63430008220033","sourceMap":"1604:671:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2131:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1685:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1889:51;;;:::i;:::-;;1748:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1721:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2131:142;2216:5;;;;;;;;;;;2202:19;;:10;:19;;;2194:28;;;;;;2249:17;2232:14;;:34;;;;;;;;;;;;;;;;;;2131:142;:::o;1685:29::-;;;;;;;;;;;;;:::o;1889:51::-;1920:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1889:51::o;1748:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1721:20::-;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:99::-;1580:6;1614:5;1608:12;1598:22;;1528:99;;;:::o;1633:169::-;1717:11;1751:6;1746:3;1739:19;1791:4;1786:3;1782:14;1767:29;;1633:169;;;;:::o;1808:139::-;1897:6;1892:3;1887;1881:23;1938:1;1929:6;1924:3;1920:16;1913:27;1808:139;;;:::o;1953:102::-;1994:6;2045:2;2041:7;2036:2;2029:5;2025:14;2021:28;2011:38;;1953:102;;;:::o;2061:377::-;2149:3;2177:39;2210:5;2177:39;:::i;:::-;2232:71;2296:6;2291:3;2232:71;:::i;:::-;2225:78;;2312:65;2370:6;2365:3;2358:4;2351:5;2347:16;2312:65;:::i;:::-;2402:29;2424:6;2402:29;:::i;:::-;2397:3;2393:39;2386:46;;2153:285;2061:377;;;;:::o;2444:313::-;2557:4;2595:2;2584:9;2580:18;2572:26;;2644:9;2638:4;2634:20;2630:1;2619:9;2615:17;2608:47;2672:78;2745:4;2736:6;2672:78;:::i;:::-;2664:86;;2444:313;;;;:::o;2763:180::-;2811:77;2808:1;2801:88;2908:4;2905:1;2898:15;2932:4;2929:1;2922:15;2949:180;2997:77;2994:1;2987:88;3094:4;3091:1;3084:15;3118:4;3115:1;3108:15;3135:320;3179:6;3216:1;3210:4;3206:12;3196:22;;3263:1;3257:4;3253:12;3284:18;3274:81;;3340:4;3332:6;3328:17;3318:27;;3274:81;3402:2;3394:6;3391:14;3371:18;3368:38;3365:84;;3421:18;;:::i;:::-;3365:84;3186:269;3135:320;;;:::o;3461:141::-;3510:4;3533:3;3525:11;;3556:3;3553:1;3546:14;3590:4;3587:1;3577:18;3569:26;;3461:141;;;:::o;3608:93::-;3645:6;3692:2;3687;3680:5;3676:14;3672:23;3662:33;;3608:93;;;:::o;3707:107::-;3751:8;3801:5;3795:4;3791:16;3770:37;;3707:107;;;;:::o;3820:393::-;3889:6;3939:1;3927:10;3923:18;3962:97;3992:66;3981:9;3962:97;:::i;:::-;4080:39;4110:8;4099:9;4080:39;:::i;:::-;4068:51;;4152:4;4148:9;4141:5;4137:21;4128:30;;4201:4;4191:8;4187:19;4180:5;4177:30;4167:40;;3896:317;;3820:393;;;;;:::o;4219:77::-;4256:7;4285:5;4274:16;;4219:77;;;:::o;4302:60::-;4330:3;4351:5;4344:12;;4302:60;;;:::o;4368:142::-;4418:9;4451:53;4469:34;4478:24;4496:5;4478:24;:::i;:::-;4469:34;:::i;:::-;4451:53;:::i;:::-;4438:66;;4368:142;;;:::o;4516:75::-;4559:3;4580:5;4573:12;;4516:75;;;:::o;4597:269::-;4707:39;4738:7;4707:39;:::i;:::-;4768:91;4817:41;4841:16;4817:41;:::i;:::-;4809:6;4802:4;4796:11;4768:91;:::i;:::-;4762:4;4755:105;4673:193;4597:269;;;:::o;4872:73::-;4917:3;4938:1;4931:8;;4872:73;:::o;4951:189::-;5028:32;;:::i;:::-;5069:65;5127:6;5119;5113:4;5069:65;:::i;:::-;5004:136;4951:189;;:::o;5146:214::-;5231:1;5216:138;5241:9;5238:1;5235:16;5216:138;;;5293:51;5342:1;5338;5327:9;5323:17;5293:51;:::i;:::-;5266:1;5263;5259:9;5254:14;;5216:138;;;5220:14;5146:214;;:::o;5366:746::-;5467:2;5462:3;5459:11;5456:649;;;5496:10;5491:3;5488:19;5485:610;;;5542:38;5574:5;5542:38;:::i;:::-;5617:22;5635:3;5617:22;:::i;:::-;5676:29;5694:10;5676:29;:::i;:::-;5866:2;5854:10;5851:18;5848:79;;;5908:1;5892:17;;5848:79;5977:12;5967:8;5963:27;6007:74;6067:12;6053;6049:31;6036:11;6007:74;:::i;:::-;5508:587;;;;5485:610;5456:649;5366:746;;;:::o;6118:117::-;6172:8;6222:5;6216:4;6212:16;6191:37;;6118:117;;;;:::o;6241:169::-;6285:6;6318:51;6366:1;6362:6;6354:5;6351:1;6347:13;6318:51;:::i;:::-;6314:56;6399:4;6393;6389:15;6379:25;;6292:118;6241:169;;;;:::o;6415:295::-;6491:4;6637:29;6662:3;6656:4;6637:29;:::i;:::-;6629:37;;6699:3;6696:1;6692:11;6686:4;6683:21;6675:29;;6415:295;;;;:::o;6715:1395::-;6832:37;6865:3;6832:37;:::i;:::-;6934:18;6926:6;6923:30;6920:56;;;6956:18;;:::i;:::-;6920:56;7000:38;7032:4;7026:11;7000:38;:::i;:::-;7085:67;7145:6;7137;7131:4;7085:67;:::i;:::-;7179:1;7203:4;7190:17;;7235:2;7227:6;7224:14;7252:1;7247:618;;;;7909:1;7926:6;7923:77;;;7975:9;7970:3;7966:19;7960:26;7951:35;;7923:77;8026:67;8086:6;8079:5;8026:67;:::i;:::-;8020:4;8013:81;7882:222;7217:887;;7247:618;7299:4;7295:9;7287:6;7283:22;7333:37;7365:4;7333:37;:::i;:::-;7392:1;7406:208;7420:7;7417:1;7414:14;7406:208;;;7499:9;7494:3;7490:19;7484:26;7476:6;7469:42;7550:1;7542:6;7538:14;7528:24;;7597:2;7586:9;7582:18;7569:31;;7443:4;7440:1;7436:12;7431:17;;7406:208;;;7642:6;7633:7;7630:19;7627:179;;;7700:9;7695:3;7691:19;7685:26;7743:48;7785:4;7777:6;7773:17;7762:9;7743:48;:::i;:::-;7735:6;7728:64;7650:156;7627:179;7852:1;7848;7840:6;7836:14;7832:22;7826:4;7819:36;7254:611;;;7217:887;;6807:1303;;;6715:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPS2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPS2"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506107198061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e65770000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f6b4cf4fc948895904235775124bdc60bd8194c3c44de31714498a30f5cefe7164736f6c63430008220033","sourceMap":"1604:671:102:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80630900f010146100595780635c60da1b14610075578063c298557814610093578063f2c31bd91461009d578063f851a440146100bb575b5f5ffd5b610073600480360381019061006e91906102ed565b6100d9565b005b61007d610173565b60405161008a9190610327565b60405180910390f35b61009b610197565b005b6100a56101de565b6040516100b291906103b0565b60405180910390f35b6100c361026a565b6040516100d09190610327565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610131575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e65770000000000000000000000000000000000000000000000000000000000815250600290816101db9190610614565b50565b600280546101eb9061042a565b80601f01602080910402602001604051908101604052809291908181526020018280546102179061042a565b80156102625780601f1061023957610100808354040283529160200191610262565b820191905f5260205f20905b81548152906001019060200180831161024557829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102bc82610293565b9050919050565b6102cc816102b2565b81146102d6575f5ffd5b50565b5f813590506102e7816102c3565b92915050565b5f602082840312156103025761030161028f565b5b5f61030f848285016102d9565b91505092915050565b610321816102b2565b82525050565b5f60208201905061033a5f830184610318565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61038282610340565b61038c818561034a565b935061039c81856020860161035a565b6103a581610368565b840191505092915050565b5f6020820190508181035f8301526103c88184610378565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061044157607f821691505b602082108103610454576104536103fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261047b565b6104c0868361047b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105046104ff6104fa846104d8565b6104e1565b6104d8565b9050919050565b5f819050919050565b61051d836104ea565b6105316105298261050b565b848454610487565b825550505050565b5f5f905090565b610548610539565b610553818484610514565b505050565b5f5b828110156105795761056e5f828401610540565b60018101905061055a565b505050565b601f8211156105cc57828211156105cb576105988161045a565b6105a18361046c565b6105aa8561046c565b60208610156105b7575f90505b8083016105c682840382610558565b505050505b5b505050565b5f82821c905092915050565b5f6105ec5f19846008026105d1565b1980831691505092915050565b5f61060483836105dd565b9150826002028217905092915050565b61061d82610340565b67ffffffffffffffff811115610636576106356103d0565b5b610640825461042a565b61064b82828561057e565b5f60209050601f83116001811461067c575f841561066a578287015190505b61067485826105f9565b8655506106db565b601f19841661068a8661045a565b5f5b828110156106b15784890151825560018201915060208501945060208101905061068c565b868310156106ce57848901516106ca601f8916826105dd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f6b4cf4fc948895904235775124bdc60bd8194c3c44de31714498a30f5cefe7164736f6c63430008220033","sourceMap":"1604:671:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2131:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1685:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1889:51;;;:::i;:::-;;1748:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1721:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2131:142;2216:5;;;;;;;;;;;2202:19;;:10;:19;;;2194:28;;;;;;2249:17;2232:14;;:34;;;;;;;;;;;;;;;;;;2131:142;:::o;1685:29::-;;;;;;;;;;;;;:::o;1889:51::-;1920:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1889:51::o;1748:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1721:20::-;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:118::-;1263:24;1281:5;1263:24;:::i;:::-;1258:3;1251:37;1176:118;;:::o;1300:222::-;1393:4;1431:2;1420:9;1416:18;1408:26;;1444:71;1512:1;1501:9;1497:17;1488:6;1444:71;:::i;:::-;1300:222;;;;:::o;1528:99::-;1580:6;1614:5;1608:12;1598:22;;1528:99;;;:::o;1633:169::-;1717:11;1751:6;1746:3;1739:19;1791:4;1786:3;1782:14;1767:29;;1633:169;;;;:::o;1808:139::-;1897:6;1892:3;1887;1881:23;1938:1;1929:6;1924:3;1920:16;1913:27;1808:139;;;:::o;1953:102::-;1994:6;2045:2;2041:7;2036:2;2029:5;2025:14;2021:28;2011:38;;1953:102;;;:::o;2061:377::-;2149:3;2177:39;2210:5;2177:39;:::i;:::-;2232:71;2296:6;2291:3;2232:71;:::i;:::-;2225:78;;2312:65;2370:6;2365:3;2358:4;2351:5;2347:16;2312:65;:::i;:::-;2402:29;2424:6;2402:29;:::i;:::-;2397:3;2393:39;2386:46;;2153:285;2061:377;;;;:::o;2444:313::-;2557:4;2595:2;2584:9;2580:18;2572:26;;2644:9;2638:4;2634:20;2630:1;2619:9;2615:17;2608:47;2672:78;2745:4;2736:6;2672:78;:::i;:::-;2664:86;;2444:313;;;;:::o;2763:180::-;2811:77;2808:1;2801:88;2908:4;2905:1;2898:15;2932:4;2929:1;2922:15;2949:180;2997:77;2994:1;2987:88;3094:4;3091:1;3084:15;3118:4;3115:1;3108:15;3135:320;3179:6;3216:1;3210:4;3206:12;3196:22;;3263:1;3257:4;3253:12;3284:18;3274:81;;3340:4;3332:6;3328:17;3318:27;;3274:81;3402:2;3394:6;3391:14;3371:18;3368:38;3365:84;;3421:18;;:::i;:::-;3365:84;3186:269;3135:320;;;:::o;3461:141::-;3510:4;3533:3;3525:11;;3556:3;3553:1;3546:14;3590:4;3587:1;3577:18;3569:26;;3461:141;;;:::o;3608:93::-;3645:6;3692:2;3687;3680:5;3676:14;3672:23;3662:33;;3608:93;;;:::o;3707:107::-;3751:8;3801:5;3795:4;3791:16;3770:37;;3707:107;;;;:::o;3820:393::-;3889:6;3939:1;3927:10;3923:18;3962:97;3992:66;3981:9;3962:97;:::i;:::-;4080:39;4110:8;4099:9;4080:39;:::i;:::-;4068:51;;4152:4;4148:9;4141:5;4137:21;4128:30;;4201:4;4191:8;4187:19;4180:5;4177:30;4167:40;;3896:317;;3820:393;;;;;:::o;4219:77::-;4256:7;4285:5;4274:16;;4219:77;;;:::o;4302:60::-;4330:3;4351:5;4344:12;;4302:60;;;:::o;4368:142::-;4418:9;4451:53;4469:34;4478:24;4496:5;4478:24;:::i;:::-;4469:34;:::i;:::-;4451:53;:::i;:::-;4438:66;;4368:142;;;:::o;4516:75::-;4559:3;4580:5;4573:12;;4516:75;;;:::o;4597:269::-;4707:39;4738:7;4707:39;:::i;:::-;4768:91;4817:41;4841:16;4817:41;:::i;:::-;4809:6;4802:4;4796:11;4768:91;:::i;:::-;4762:4;4755:105;4673:193;4597:269;;;:::o;4872:73::-;4917:3;4938:1;4931:8;;4872:73;:::o;4951:189::-;5028:32;;:::i;:::-;5069:65;5127:6;5119;5113:4;5069:65;:::i;:::-;5004:136;4951:189;;:::o;5146:214::-;5231:1;5216:138;5241:9;5238:1;5235:16;5216:138;;;5293:51;5342:1;5338;5327:9;5323:17;5293:51;:::i;:::-;5266:1;5263;5259:9;5254:14;;5216:138;;;5220:14;5146:214;;:::o;5366:746::-;5467:2;5462:3;5459:11;5456:649;;;5496:10;5491:3;5488:19;5485:610;;;5542:38;5574:5;5542:38;:::i;:::-;5617:22;5635:3;5617:22;:::i;:::-;5676:29;5694:10;5676:29;:::i;:::-;5866:2;5854:10;5851:18;5848:79;;;5908:1;5892:17;;5848:79;5977:12;5967:8;5963:27;6007:74;6067:12;6053;6049:31;6036:11;6007:74;:::i;:::-;5508:587;;;;5485:610;5456:649;5366:746;;;:::o;6118:117::-;6172:8;6222:5;6216:4;6212:16;6191:37;;6118:117;;;;:::o;6241:169::-;6285:6;6318:51;6366:1;6362:6;6354:5;6351:1;6347:13;6318:51;:::i;:::-;6314:56;6399:4;6393;6389:15;6379:25;;6292:118;6241:169;;;;:::o;6415:295::-;6491:4;6637:29;6662:3;6656:4;6637:29;:::i;:::-;6629:37;;6699:3;6696:1;6692:11;6686:4;6683:21;6675:29;;6415:295;;;;:::o;6715:1395::-;6832:37;6865:3;6832:37;:::i;:::-;6934:18;6926:6;6923:30;6920:56;;;6956:18;;:::i;:::-;6920:56;7000:38;7032:4;7026:11;7000:38;:::i;:::-;7085:67;7145:6;7137;7131:4;7085:67;:::i;:::-;7179:1;7203:4;7190:17;;7235:2;7227:6;7224:14;7252:1;7247:618;;;;7909:1;7926:6;7923:77;;;7975:9;7970:3;7966:19;7960:26;7951:35;;7923:77;8026:67;8086:6;8079:5;8026:67;:::i;:::-;8020:4;8013:81;7882:222;7217:887;;7247:618;7299:4;7295:9;7287:6;7283:22;7333:37;7365:4;7333:37;:::i;:::-;7392:1;7406:208;7420:7;7417:1;7414:14;7406:208;;;7499:9;7494:3;7490:19;7484:26;7476:6;7469:42;7550:1;7542:6;7538:14;7528:24;;7597:2;7586:9;7582:18;7569:31;;7443:4;7440:1;7436:12;7431:17;;7406:208;;;7642:6;7633:7;7630:19;7627:179;;;7700:9;7695:3;7691:19;7685:26;7743:48;7785:4;7777:6;7773:17;7762:9;7743:48;:::i;:::-;7735:6;7728:64;7650:156;7627:179;7852:1;7848;7840:6;7836:14;7832:22;7826:4;7819:36;7254:611;;;7217:887;;6807:1303;;;6715:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPS2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPS2"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/UUPS.sol/UUPSProxy.json b/out/UUPS.sol/UUPSProxy.json index 61a96742..8af4b222 100644 --- a/out/UUPS.sol/UUPSProxy.json +++ b/out/UUPS.sol/UUPSProxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161052e38038061052e83398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6103e28061014c5f395ff3fe608060405260043610610037575f3560e01c80635c60da1b146100c0578063f2c31bd9146100ea578063f851a4401461011457610038565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008192919061024f565b5f60405180830381855af49150503d805f81146100b9576040519150601f19603f3d011682016040523d82523d5f602084013e6100be565b606091505b005b3480156100cb575f5ffd5b506100d461013e565b6040516100e191906102a6565b60405180910390f35b3480156100f5575f5ffd5b506100fe610162565b60405161010b919061032f565b60405180910390f35b34801561011f575f5ffd5b506101286101ee565b60405161013591906102a6565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461016f9061037c565b80601f016020809104026020016040519081016040528092919081815260200182805461019b9061037c565b80156101e65780601f106101bd576101008083540402835291602001916101e6565b820191905f5260205f20905b8154815290600101906020018083116101c957829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f6102368385610213565b935061024383858461021d565b82840190509392505050565b5f61025b82848661022b565b91508190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029082610267565b9050919050565b6102a081610286565b82525050565b5f6020820190506102b95f830184610297565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610301826102bf565b61030b81856102c9565b935061031b8185602086016102d9565b610324816102e7565b840191505092915050565b5f6020820190508181035f83015261034781846102f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039357607f821691505b6020821081036103a6576103a561034f565b5b5091905056fea2646970667358221220f92f89da1bdf075c64e2d2831a9a7c21833a994b231cb921e34445ab08c1b1f664736f6c63430008220033","sourceMap":"288:556:108:-:0;;;550:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;604:10;596:5;;:18;;;;;;;;;;;;;;;;;;641:15;624:14;;:32;;;;;;;;;;;;;;;;;;550:113;288:556;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;288:556:108:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c80635c60da1b146100c0578063f2c31bd9146100ea578063f851a4401461011457610038565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008192919061024f565b5f60405180830381855af49150503d805f81146100b9576040519150601f19603f3d011682016040523d82523d5f602084013e6100be565b606091505b005b3480156100cb575f5ffd5b506100d461013e565b6040516100e191906102a6565b60405180910390f35b3480156100f5575f5ffd5b506100fe610162565b60405161010b919061032f565b60405180910390f35b34801561011f575f5ffd5b506101286101ee565b60405161013591906102a6565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461016f9061037c565b80601f016020809104026020016040519081016040528092919081815260200182805461019b9061037c565b80156101e65780601f106101bd576101008083540402835291602001916101e6565b820191905f5260205f20905b8154815290600101906020018083116101c957829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f6102368385610213565b935061024383858461021d565b82840190509392505050565b5f61025b82848661022b565b91508190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029082610267565b9050919050565b6102a081610286565b82525050565b5f6020820190506102b95f830184610297565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610301826102bf565b61030b81856102c9565b935061031b8185602086016102d9565b610324816102e7565b840191505092915050565b5f6020820190508181035f83015261034781846102f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039357607f821691505b6020821081036103a6576103a561034f565b5b5091905056fea2646970667358221220f92f89da1bdf075c64e2d2831a9a7c21833a994b231cb921e34445ab08c1b1f664736f6c63430008220033","sourceMap":"288:556:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:12;777:17;798:14;;;;;;;;;;;:27;;826:8;;798:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;313:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;411:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;370:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:29;;;;;;;;;;;;;:::o;411:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;370:20::-;;;;;;;;;;;;;:::o;7:147:145:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;966:126::-;1003:7;1043:42;1036:5;1032:54;1021:65;;966:126;;;:::o;1098:96::-;1135:7;1164:24;1182:5;1164:24;:::i;:::-;1153:35;;1098:96;;;:::o;1200:118::-;1287:24;1305:5;1287:24;:::i;:::-;1282:3;1275:37;1200:118;;:::o;1324:222::-;1417:4;1455:2;1444:9;1440:18;1432:26;;1468:71;1536:1;1525:9;1521:17;1512:6;1468:71;:::i;:::-;1324:222;;;;:::o;1552:99::-;1604:6;1638:5;1632:12;1622:22;;1552:99;;;:::o;1657:169::-;1741:11;1775:6;1770:3;1763:19;1815:4;1810:3;1806:14;1791:29;;1657:169;;;;:::o;1832:139::-;1921:6;1916:3;1911;1905:23;1962:1;1953:6;1948:3;1944:16;1937:27;1832:139;;;:::o;1977:102::-;2018:6;2069:2;2065:7;2060:2;2053:5;2049:14;2045:28;2035:38;;1977:102;;;:::o;2085:377::-;2173:3;2201:39;2234:5;2201:39;:::i;:::-;2256:71;2320:6;2315:3;2256:71;:::i;:::-;2249:78;;2336:65;2394:6;2389:3;2382:4;2375:5;2371:16;2336:65;:::i;:::-;2426:29;2448:6;2426:29;:::i;:::-;2421:3;2417:39;2410:46;;2177:285;2085:377;;;;:::o;2468:313::-;2581:4;2619:2;2608:9;2604:18;2596:26;;2668:9;2662:4;2658:20;2654:1;2643:9;2639:17;2632:47;2696:78;2769:4;2760:6;2696:78;:::i;:::-;2688:86;;2468:313;;;;:::o;2787:180::-;2835:77;2832:1;2825:88;2932:4;2929:1;2922:15;2956:4;2953:1;2946:15;2973:320;3017:6;3054:1;3048:4;3044:12;3034:22;;3101:1;3095:4;3091:12;3122:18;3112:81;;3178:4;3170:6;3166:17;3156:27;;3112:81;3240:2;3232:6;3229:14;3209:18;3206:38;3203:84;;3259:18;;:::i;:::-;3203:84;3024:269;2973:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPSProxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPSProxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":108} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161052e38038061052e83398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6103e28061014c5f395ff3fe608060405260043610610037575f3560e01c80635c60da1b146100c0578063f2c31bd9146100ea578063f851a4401461011457610038565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008192919061024f565b5f60405180830381855af49150503d805f81146100b9576040519150601f19603f3d011682016040523d82523d5f602084013e6100be565b606091505b005b3480156100cb575f5ffd5b506100d461013e565b6040516100e191906102a6565b60405180910390f35b3480156100f5575f5ffd5b506100fe610162565b60405161010b919061032f565b60405180910390f35b34801561011f575f5ffd5b506101286101ee565b60405161013591906102a6565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461016f9061037c565b80601f016020809104026020016040519081016040528092919081815260200182805461019b9061037c565b80156101e65780601f106101bd576101008083540402835291602001916101e6565b820191905f5260205f20905b8154815290600101906020018083116101c957829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f6102368385610213565b935061024383858461021d565b82840190509392505050565b5f61025b82848661022b565b91508190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029082610267565b9050919050565b6102a081610286565b82525050565b5f6020820190506102b95f830184610297565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610301826102bf565b61030b81856102c9565b935061031b8185602086016102d9565b610324816102e7565b840191505092915050565b5f6020820190508181035f83015261034781846102f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039357607f821691505b6020821081036103a6576103a561034f565b5b5091905056fea2646970667358221220f92f89da1bdf075c64e2d2831a9a7c21833a994b231cb921e34445ab08c1b1f664736f6c63430008220033","sourceMap":"288:556:102:-:0;;;550:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;604:10;596:5;;:18;;;;;;;;;;;;;;;;;;641:15;624:14;;:32;;;;;;;;;;;;;;;;;;550:113;288:556;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;288:556:102:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610037575f3560e01c80635c60da1b146100c0578063f2c31bd9146100ea578063f851a4401461011457610038565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008192919061024f565b5f60405180830381855af49150503d805f81146100b9576040519150601f19603f3d011682016040523d82523d5f602084013e6100be565b606091505b005b3480156100cb575f5ffd5b506100d461013e565b6040516100e191906102a6565b60405180910390f35b3480156100f5575f5ffd5b506100fe610162565b60405161010b919061032f565b60405180910390f35b34801561011f575f5ffd5b506101286101ee565b60405161013591906102a6565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461016f9061037c565b80601f016020809104026020016040519081016040528092919081815260200182805461019b9061037c565b80156101e65780601f106101bd576101008083540402835291602001916101e6565b820191905f5260205f20905b8154815290600101906020018083116101c957829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f6102368385610213565b935061024383858461021d565b82840190509392505050565b5f61025b82848661022b565b91508190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61029082610267565b9050919050565b6102a081610286565b82525050565b5f6020820190506102b95f830184610297565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610301826102bf565b61030b81856102c9565b935061031b8185602086016102d9565b610324816102e7565b840191505092915050565b5f6020820190508181035f83015261034781846102f7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061039357607f821691505b6020821081036103a6576103a561034f565b5b5091905056fea2646970667358221220f92f89da1bdf075c64e2d2831a9a7c21833a994b231cb921e34445ab08c1b1f664736f6c63430008220033","sourceMap":"288:556:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:12;777:17;798:14;;;;;;;;;;;:27;;826:8;;798:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;313:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;411:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;370:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:29;;;;;;;;;;;;;:::o;411:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;370:20::-;;;;;;;;;;;;;:::o;7:147:139:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;966:126::-;1003:7;1043:42;1036:5;1032:54;1021:65;;966:126;;;:::o;1098:96::-;1135:7;1164:24;1182:5;1164:24;:::i;:::-;1153:35;;1098:96;;;:::o;1200:118::-;1287:24;1305:5;1287:24;:::i;:::-;1282:3;1275:37;1200:118;;:::o;1324:222::-;1417:4;1455:2;1444:9;1440:18;1432:26;;1468:71;1536:1;1525:9;1521:17;1512:6;1468:71;:::i;:::-;1324:222;;;;:::o;1552:99::-;1604:6;1638:5;1632:12;1622:22;;1552:99;;;:::o;1657:169::-;1741:11;1775:6;1770:3;1763:19;1815:4;1810:3;1806:14;1791:29;;1657:169;;;;:::o;1832:139::-;1921:6;1916:3;1911;1905:23;1962:1;1953:6;1948:3;1944:16;1937:27;1832:139;;;:::o;1977:102::-;2018:6;2069:2;2065:7;2060:2;2053:5;2049:14;2045:28;2035:38;;1977:102;;;:::o;2085:377::-;2173:3;2201:39;2234:5;2201:39;:::i;:::-;2256:71;2320:6;2315:3;2256:71;:::i;:::-;2249:78;;2336:65;2394:6;2389:3;2382:4;2375:5;2371:16;2336:65;:::i;:::-;2426:29;2448:6;2426:29;:::i;:::-;2421:3;2417:39;2410:46;;2177:285;2085:377;;;;:::o;2468:313::-;2581:4;2619:2;2608:9;2604:18;2596:26;;2668:9;2662:4;2658:20;2654:1;2643:9;2639:17;2632:47;2696:78;2769:4;2760:6;2696:78;:::i;:::-;2688:86;;2468:313;;;;:::o;2787:180::-;2835:77;2832:1;2825:88;2932:4;2929:1;2922:15;2956:4;2953:1;2946:15;2973:320;3017:6;3054:1;3048:4;3044:12;3034:22;;3101:1;3095:4;3091:12;3122:18;3112:81;;3178:4;3170:6;3166:17;3156:27;;3112:81;3240:2;3232:6;3229:14;3209:18;3206:38;3203:84;;3259:18;;:::i;:::-;3203:84;3024:269;2973:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/49_UUPS/UUPS.sol\":\"UUPSProxy\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/49_UUPS/UUPS.sol\":{\"keccak256\":\"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046\",\"dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/49_UUPS/UUPS.sol":"UUPSProxy"},"evmVersion":"prague","libraries":{}},"sources":{"src/49_UUPS/UUPS.sol":{"keccak256":"0xc4a9ecfdfffd6d59120583b73510a7eb9fc02ec701d80b29805aca434a622c08","urls":["bzz-raw://a54441e91b2b81549ebce49087c7ff53f75a8762fc4736dd321b98c96e405046","dweb:/ipfs/QmRcbJzpF4JKaEB32g9f7t3xkjrbfa1L4n3wLTtG8Qjnnv"],"license":"MIT"}},"version":1},"id":102} \ No newline at end of file diff --git a/out/UncheckedCall.sol/Attack.json b/out/UncheckedCall.sol/Attack.json index 1a6d6169..a31be0c3 100644 --- a/out/UncheckedCall.sol/Attack.json +++ b/out/UncheckedCall.sol/Attack.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract UncheckedBank"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"bank","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract UncheckedBank"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103ed3803806103ed833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b6102d08061011d5f395ff3fe608060405260043610610042575f3560e01c806312065fe0146100475780633ccfd60b1461007157806376cdb03b1461007b578063d0e30db0146100a557610043565b5b5f5ffd5b348015610052575f5ffd5b5061005b6100af565b60405161006891906101ee565b60405180910390f35b6100796100b6565b005b348015610086575f5ffd5b5061008f610133565b60405161009c9190610281565b60405180910390f35b6100ad610157565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561011b575f5ffd5b505af115801561012d573d5f5f3e3d5ffd5b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156101bd575f5ffd5b505af11580156101cf573d5f5f3e3d5ffd5b5050505050565b5f819050919050565b6101e8816101d6565b82525050565b5f6020820190506102015f8301846101df565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61024961024461023f84610207565b610226565b610207565b9050919050565b5f61025a8261022f565b9050919050565b5f61026b82610250565b9050919050565b61027b81610261565b82525050565b5f6020820190506102945f830184610272565b9291505056fea26469706673582212208f6ae0265147e72f8bb97394075031f288bbae115706074a9f407ddace36568964736f6c63430008220033","sourceMap":"774:709:139:-:0;;;881:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;931:5;924:4;;:12;;;;;;;;;;;;;;;;;;881:62;774:709;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:397::-;1155:6;1204:2;1192:9;1183:7;1179:23;1175:32;1172:119;;;1210:79;;:::i;:::-;1172:119;1330:1;1355:87;1434:7;1425:6;1414:9;1410:22;1355:87;:::i;:::-;1345:97;;1301:151;1062:397;;;;:::o;774:709:139:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610042575f3560e01c806312065fe0146100475780633ccfd60b1461007157806376cdb03b1461007b578063d0e30db0146100a557610043565b5b5f5ffd5b348015610052575f5ffd5b5061005b6100af565b60405161006891906101ee565b60405180910390f35b6100796100b6565b005b348015610086575f5ffd5b5061008f610133565b60405161009c9190610281565b60405180910390f35b6100ad610157565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561011b575f5ffd5b505af115801561012d573d5f5f3e3d5ffd5b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156101bd575f5ffd5b505af11580156101cf573d5f5f3e3d5ffd5b5050505050565b5f819050919050565b6101e8816101d6565b82525050565b5f6020820190506102015f8301846101df565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61024961024461023f84610207565b610226565b610207565b9050919050565b5f61025a8261022f565b9050919050565b5f61026b82610250565b9050919050565b61027b81610261565b82525050565b5f6020820190506102945f830184610272565b9291505056fea26469706673582212208f6ae0265147e72f8bb97394075031f288bbae115706074a9f407ddace36568964736f6c63430008220033","sourceMap":"774:709:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1382:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1275:69;;;:::i;:::-;;796:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1116:85;;;:::i;:::-;;1382:99;1427:7;1453:21;1446:28;;1382:99;:::o;1275:69::-;1322:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1275:69::o;796:25::-;;;;;;;;;;;;;:::o;1116:85::-;1162:4;;;;;;;;;;;:12;;;1182:9;1162:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:85::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:60::-;602:3;623:5;616:12;;574:60;;;:::o;640:142::-;690:9;723:53;741:34;750:24;768:5;750:24;:::i;:::-;741:34;:::i;:::-;723:53;:::i;:::-;710:66;;640:142;;;:::o;788:126::-;838:9;871:37;902:5;871:37;:::i;:::-;858:50;;788:126;;;:::o;920:149::-;993:9;1026:37;1057:5;1026:37;:::i;:::-;1013:50;;920:149;;;:::o;1075:177::-;1185:60;1239:5;1185:60;:::i;:::-;1180:3;1173:73;1075:177;;:::o;1258:268::-;1374:4;1412:2;1401:9;1397:18;1389:26;;1425:94;1516:1;1505:9;1501:17;1492:6;1425:94;:::i;:::-;1258:268;;;;:::o","linkReferences":{}},"methodIdentifiers":{"bank()":"76cdb03b","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract UncheckedBank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contract UncheckedBank\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":{\"keccak256\":\"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9\",\"dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract UncheckedBank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"bank","outputs":[{"internalType":"contract UncheckedBank","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S13_UncheckedCall/UncheckedCall.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S13_UncheckedCall/UncheckedCall.sol":{"keccak256":"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5","urls":["bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9","dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm"],"license":"MIT"}},"version":1},"id":139} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_bank","type":"address","internalType":"contract UncheckedBank"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"bank","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract UncheckedBank"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516103ed3803806103ed833981810160405281019061003191906100e5565b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610110565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100a38261007a565b9050919050565b5f6100b482610099565b9050919050565b6100c4816100aa565b81146100ce575f5ffd5b50565b5f815190506100df816100bb565b92915050565b5f602082840312156100fa576100f9610076565b5b5f610107848285016100d1565b91505092915050565b6102d08061011d5f395ff3fe608060405260043610610042575f3560e01c806312065fe0146100475780633ccfd60b1461007157806376cdb03b1461007b578063d0e30db0146100a557610043565b5b5f5ffd5b348015610052575f5ffd5b5061005b6100af565b60405161006891906101ee565b60405180910390f35b6100796100b6565b005b348015610086575f5ffd5b5061008f610133565b60405161009c9190610281565b60405180910390f35b6100ad610157565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561011b575f5ffd5b505af115801561012d573d5f5f3e3d5ffd5b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156101bd575f5ffd5b505af11580156101cf573d5f5f3e3d5ffd5b5050505050565b5f819050919050565b6101e8816101d6565b82525050565b5f6020820190506102015f8301846101df565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61024961024461023f84610207565b610226565b610207565b9050919050565b5f61025a8261022f565b9050919050565b5f61026b82610250565b9050919050565b61027b81610261565b82525050565b5f6020820190506102945f830184610272565b9291505056fea26469706673582212208f6ae0265147e72f8bb97394075031f288bbae115706074a9f407ddace36568964736f6c63430008220033","sourceMap":"774:709:133:-:0;;;881:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;931:5;924:4;;:12;;;;;;;;;;;;;;;;;;881:62;774:709;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:397::-;1155:6;1204:2;1192:9;1183:7;1179:23;1175:32;1172:119;;;1210:79;;:::i;:::-;1172:119;1330:1;1355:87;1434:7;1425:6;1414:9;1410:22;1355:87;:::i;:::-;1345:97;;1301:151;1062:397;;;;:::o;774:709:133:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610042575f3560e01c806312065fe0146100475780633ccfd60b1461007157806376cdb03b1461007b578063d0e30db0146100a557610043565b5b5f5ffd5b348015610052575f5ffd5b5061005b6100af565b60405161006891906101ee565b60405180910390f35b6100796100b6565b005b348015610086575f5ffd5b5061008f610133565b60405161009c9190610281565b60405180910390f35b6100ad610157565b005b5f47905090565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561011b575f5ffd5b505af115801561012d573d5f5f3e3d5ffd5b50505050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156101bd575f5ffd5b505af11580156101cf573d5f5f3e3d5ffd5b5050505050565b5f819050919050565b6101e8816101d6565b82525050565b5f6020820190506102015f8301846101df565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61024961024461023f84610207565b610226565b610207565b9050919050565b5f61025a8261022f565b9050919050565b5f61026b82610250565b9050919050565b61027b81610261565b82525050565b5f6020820190506102945f830184610272565b9291505056fea26469706673582212208f6ae0265147e72f8bb97394075031f288bbae115706074a9f407ddace36568964736f6c63430008220033","sourceMap":"774:709:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1382:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1275:69;;;:::i;:::-;;796:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1116:85;;;:::i;:::-;;1382:99;1427:7;1453:21;1446:28;;1382:99;:::o;1275:69::-;1322:4;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1275:69::o;796:25::-;;;;;;;;;;;;;:::o;1116:85::-;1162:4;;;;;;;;;;;:12;;;1182:9;1162:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1116:85::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:60::-;602:3;623:5;616:12;;574:60;;;:::o;640:142::-;690:9;723:53;741:34;750:24;768:5;750:24;:::i;:::-;741:34;:::i;:::-;723:53;:::i;:::-;710:66;;640:142;;;:::o;788:126::-;838:9;871:37;902:5;871:37;:::i;:::-;858:50;;788:126;;;:::o;920:149::-;993:9;1026:37;1057:5;1026:37;:::i;:::-;1013:50;;920:149;;;:::o;1075:177::-;1185:60;1239:5;1185:60;:::i;:::-;1180:3;1173:73;1075:177;;:::o;1258:268::-;1374:4;1412:2;1401:9;1397:18;1389:26;;1425:94;1516:1;1505:9;1501:17;1492:6;1425:94;:::i;:::-;1258:268;;;;:::o","linkReferences":{}},"methodIdentifiers":{"bank()":"76cdb03b","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract UncheckedBank\",\"name\":\"_bank\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contract UncheckedBank\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":\"Attack\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":{\"keccak256\":\"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9\",\"dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract UncheckedBank","name":"_bank","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"bank","outputs":[{"internalType":"contract UncheckedBank","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S13_UncheckedCall/UncheckedCall.sol":"Attack"},"evmVersion":"prague","libraries":{}},"sources":{"src/S13_UncheckedCall/UncheckedCall.sol":{"keccak256":"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5","urls":["bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9","dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file diff --git a/out/UncheckedCall.sol/UncheckedBank.json b/out/UncheckedCall.sol/UncheckedBank.json index 77cf8af5..141184d4 100644 --- a/out/UncheckedCall.sol/UncheckedBank.json +++ b/out/UncheckedCall.sol/UncheckedBank.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506103fd8061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b604051610063919061024d565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a391906102c4565b6101cd565b6040516100b5919061024d565b60405180910390f35b6100c66101e1565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014890610349565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461022c9190610394565b92505081905550565b5f819050919050565b61024781610235565b82525050565b5f6020820190506102605f83018461023e565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102938261026a565b9050919050565b6102a381610289565b81146102ad575f5ffd5b50565b5f813590506102be8161029a565b92915050565b5f602082840312156102d9576102d8610266565b5b5f6102e6848285016102b0565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103336014836102ef565b915061033e826102ff565b602082019050919050565b5f6020820190508181035f83015261036081610327565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61039e82610235565b91506103a983610235565b92508282019050808211156103c1576103c0610367565b5b9291505056fea2646970667358221220798a61043ed458fba05285f779d30cc6c9bbb43bf437099f74a61099270462fb64736f6c63430008220033","sourceMap":"69:703:139:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b604051610063919061024d565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a391906102c4565b6101cd565b6040516100b5919061024d565b60405180910390f35b6100c66101e1565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014890610349565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461022c9190610394565b92505081905550565b5f819050919050565b61024781610235565b82525050565b5f6020820190506102605f83018461023e565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102938261026a565b9050919050565b6102a381610289565b81146102ad575f5ffd5b50565b5f813590506102be8161029a565b92915050565b5f602082840312156102d9576102d8610266565b5b5f6102e6848285016102b0565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103336014836102ef565b915061033e826102ff565b602082019050919050565b5f6020820190508181035f83015261036081610327565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61039e82610235565b91506103a983610235565b92508282019050808211156103c1576103c0610367565b5b9291505056fea2646970667358221220798a61043ed458fba05285f779d30cc6c9bbb43bf437099f74a61099270462fb64736f6c63430008220033","sourceMap":"69:703:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;671:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:292;;;;;;;;;;;;;:::i;:::-;;98:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;207:87;;;:::i;:::-;;671:99;716:7;742:21;735:28;;671:99;:::o;338:292::-;401:15;419:9;:21;429:10;419:21;;;;;;;;;;;;;;;;401:39;;468:1;458:7;:11;450:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;528:1;504:9;:21;514:10;504:21;;;;;;;;;;;;;;;:25;;;;575:12;598:10;590:24;;:33;615:7;590:33;;;;;;;;;;;;;;;;;;;;;;;575:48;;367:263;;338:292::o;98:45::-;;;;;;;;;;;;;;;;;:::o;207:87::-;278:9;253;:21;263:10;253:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;207:87::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:180::-;2807:77;2804:1;2797:88;2904:4;2901:1;2894:15;2928:4;2925:1;2918:15;2945:191;2985:3;3004:20;3022:1;3004:20;:::i;:::-;2999:25;;3038:20;3056:1;3038:20;:::i;:::-;3033:25;;3081:1;3078;3074:9;3067:16;;3102:3;3099:1;3096:10;3093:36;;;3109:18;;:::i;:::-;3093:36;2945:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":\"UncheckedBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":{\"keccak256\":\"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9\",\"dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S13_UncheckedCall/UncheckedCall.sol":"UncheckedBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S13_UncheckedCall/UncheckedCall.sol":{"keccak256":"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5","urls":["bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9","dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm"],"license":"MIT"}},"version":1},"id":139} \ No newline at end of file +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506103fd8061001c5f395ff3fe60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b604051610063919061024d565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a391906102c4565b6101cd565b6040516100b5919061024d565b60405180910390f35b6100c66101e1565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014890610349565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461022c9190610394565b92505081905550565b5f819050919050565b61024781610235565b82525050565b5f6020820190506102605f83018461023e565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102938261026a565b9050919050565b6102a381610289565b81146102ad575f5ffd5b50565b5f813590506102be8161029a565b92915050565b5f602082840312156102d9576102d8610266565b5b5f6102e6848285016102b0565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103336014836102ef565b915061033e826102ff565b602082019050919050565b5f6020820190508181035f83015261036081610327565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61039e82610235565b91506103a983610235565b92508282019050808211156103c1576103c0610367565b5b9291505056fea2646970667358221220798a61043ed458fba05285f779d30cc6c9bbb43bf437099f74a61099270462fb64736f6c63430008220033","sourceMap":"69:703:133:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806312065fe0146100425780633ccfd60b1461006c57806370a0823114610082578063d0e30db0146100be575b5f5ffd5b34801561004d575f5ffd5b506100566100c8565b604051610063919061024d565b60405180910390f35b348015610077575f5ffd5b506100806100cf565b005b34801561008d575f5ffd5b506100a860048036038101906100a391906102c4565b6101cd565b6040516100b5919061024d565b60405180910390f35b6100c66101e1565b005b5f47905090565b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014890610349565b60405180910390fd5b5f5f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f3373ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f1935050505090505050565b5f602052805f5260405f205f915090505481565b345f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461022c9190610394565b92505081905550565b5f819050919050565b61024781610235565b82525050565b5f6020820190506102605f83018461023e565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102938261026a565b9050919050565b6102a381610289565b81146102ad575f5ffd5b50565b5f813590506102be8161029a565b92915050565b5f602082840312156102d9576102d8610266565b5b5f6102e6848285016102b0565b91505092915050565b5f82825260208201905092915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6103336014836102ef565b915061033e826102ff565b602082019050919050565b5f6020820190508181035f83015261036081610327565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61039e82610235565b91506103a983610235565b92508282019050808211156103c1576103c0610367565b5b9291505056fea2646970667358221220798a61043ed458fba05285f779d30cc6c9bbb43bf437099f74a61099270462fb64736f6c63430008220033","sourceMap":"69:703:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;671:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:292;;;;;;;;;;;;;:::i;:::-;;98:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;207:87;;;:::i;:::-;;671:99;716:7;742:21;735:28;;671:99;:::o;338:292::-;401:15;419:9;:21;429:10;419:21;;;;;;;;;;;;;;;;401:39;;468:1;458:7;:11;450:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;528:1;504:9;:21;514:10;504:21;;;;;;;;;;;;;;;:25;;;;575:12;598:10;590:24;;:33;615:7;590:33;;;;;;;;;;;;;;;;;;;;;;;575:48;;367:263;;338:292::o;98:45::-;;;;;;;;;;;;;;;;;:::o;207:87::-;278:9;253;:21;263:10;253:21;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;207:87::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:169::-;1695:11;1729:6;1724:3;1717:19;1769:4;1764:3;1760:14;1745:29;;1611:169;;;;:::o;1786:170::-;1926:22;1922:1;1914:6;1910:14;1903:46;1786:170;:::o;1962:366::-;2104:3;2125:67;2189:2;2184:3;2125:67;:::i;:::-;2118:74;;2201:93;2290:3;2201:93;:::i;:::-;2319:2;2314:3;2310:12;2303:19;;1962:366;;;:::o;2334:419::-;2500:4;2538:2;2527:9;2523:18;2515:26;;2587:9;2581:4;2577:20;2573:1;2562:9;2558:17;2551:47;2615:131;2741:4;2615:131;:::i;:::-;2607:139;;2334:419;;;:::o;2759:180::-;2807:77;2804:1;2797:88;2904:4;2901:1;2894:15;2928:4;2925:1;2918:15;2945:191;2985:3;3004:20;3022:1;3004:20;:::i;:::-;2999:25;;3038:20;3056:1;3038:20;:::i;:::-;3033:25;;3081:1;3078;3074:9;3067:16;;3102:3;3099:1;3096:10;3093:36;;;3109:18;;:::i;:::-;3093:36;2945:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","deposit()":"d0e30db0","getBalance()":"12065fe0","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":\"UncheckedBank\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/S13_UncheckedCall/UncheckedCall.sol\":{\"keccak256\":\"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9\",\"dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/S13_UncheckedCall/UncheckedCall.sol":"UncheckedBank"},"evmVersion":"prague","libraries":{}},"sources":{"src/S13_UncheckedCall/UncheckedCall.sol":{"keccak256":"0x8998a299068c8c702f1c74dd39be7e5fc6bd9803dae6ea126a6cfeaf97d657b5","urls":["bzz-raw://c2c7bb10d555ef78d99d229ebacb050a93a21efd39041652966031e65e89b5c9","dweb:/ipfs/QmeTEkC45oUKvU9wMeL9VQPZbUr1uhgRJXvuEQcSwFDDSm"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file diff --git a/out/UniswapV2Flashloan.sol/IUniswapV2Callee.json b/out/UniswapV2Flashloan.sol/IUniswapV2Callee.json index 2ab4743b..784af105 100644 --- a/out/UniswapV2Flashloan.sol/IUniswapV2Callee.json +++ b/out/UniswapV2Flashloan.sol/IUniswapV2Callee.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV2Flashloan.sol":"IUniswapV2Callee"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"}},"version":1},"id":122} \ No newline at end of file +{"abi":[{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV2Flashloan.sol":"IUniswapV2Callee"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"}},"version":1},"id":116} \ No newline at end of file diff --git a/out/UniswapV2Flashloan.sol/UniswapV2Flashloan.json b/out/UniswapV2Flashloan.sol/UniswapV2Flashloan.json index d2a6adb4..e64a2319 100644 --- a/out/UniswapV2Flashloan.sol/UniswapV2Flashloan.json +++ b/out/UniswapV2Flashloan.sol/UniswapV2Flashloan.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033","sourceMap":"275:1936:122:-:0;;;775:80;;;;;;;;;;383:42;821:15;;;463:42;543;821:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;799:49;;;;;;;;;;275:1936;;7:126:145;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:332::-;486:4;524:2;513:9;509:18;501:26;;537:71;605:1;594:9;590:17;581:6;537:71;:::i;:::-;618:72;686:2;675:9;671:18;662:6;618:72;:::i;:::-;365:332;;;;;:::o;784:117::-;893:1;890;883:12;1030:122;1103:24;1121:5;1103:24;:::i;:::-;1096:5;1093:35;1083:63;;1142:1;1139;1132:12;1083:63;1030:122;:::o;1158:143::-;1215:5;1246:6;1240:13;1231:22;;1262:33;1289:5;1262:33;:::i;:::-;1158:143;;;;:::o;1307:351::-;1377:6;1426:2;1414:9;1405:7;1401:23;1397:32;1394:119;;;1432:79;;:::i;:::-;1394:119;1552:1;1577:64;1633:7;1624:6;1613:9;1609:22;1577:64;:::i;:::-;1567:74;;1523:128;1307:351;;;;:::o;275:1936:122:-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033","sourceMap":"275:1936:122:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:954;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;884:297;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1255:954;1451:14;1483:10;1468:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1451:52;;1535:14;1567:10;1552:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1535:52;;383:42;1640:15;;;1656:6;1664;1640:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1626:45;;:10;:45;;;1619:53;;;;:::i;:::-;;1749:19;1770:18;1803:4;;1792:36;;;;;;;:::i;:::-;1748:80;;;;543:42;1890:19;;:11;:19;;;1882:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2043:8;2076:1;2070:3;2065:1;2055:7;:11;;;;:::i;:::-;2054:19;;;;:::i;:::-;:23;;;;:::i;:::-;2043:34;;2087:18;2118:3;2108:7;:13;;;;:::i;:::-;2087:34;;543:42;2159:13;;;2181:4;2188:13;2159:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1390:819;;;;;;1255:954;;;;;:::o;884:297::-;1005:17;543:42;1042:10;1025:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1005:48;;1129:4;:9;;;1139:1;1142:10;1162:4;1169;1129:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:252;884:297;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:329::-;3165:6;3214:2;3202:9;3193:7;3189:23;3185:32;3182:119;;;3220:79;;:::i;:::-;3182:119;3340:1;3365:53;3410:7;3401:6;3390:9;3386:22;3365:53;:::i;:::-;3355:63;;3311:117;3106:329;;;;:::o;3441:143::-;3498:5;3529:6;3523:13;3514:22;;3545:33;3572:5;3545:33;:::i;:::-;3441:143;;;;:::o;3590:351::-;3660:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:119;;;3715:79;;:::i;:::-;3677:119;3835:1;3860:64;3916:7;3907:6;3896:9;3892:22;3860:64;:::i;:::-;3850:74;;3806:128;3590:351;;;;:::o;3947:118::-;4034:24;4052:5;4034:24;:::i;:::-;4029:3;4022:37;3947:118;;:::o;4071:332::-;4192:4;4230:2;4219:9;4215:18;4207:26;;4243:71;4311:1;4300:9;4296:17;4287:6;4243:71;:::i;:::-;4324:72;4392:2;4381:9;4377:18;4368:6;4324:72;:::i;:::-;4071:332;;;;;:::o;4409:180::-;4457:77;4454:1;4447:88;4554:4;4551:1;4544:15;4578:4;4575:1;4568:15;4595:104;4640:7;4669:24;4687:5;4669:24;:::i;:::-;4658:35;;4595:104;;;:::o;4705:138::-;4786:32;4812:5;4786:32;:::i;:::-;4779:5;4776:43;4766:71;;4833:1;4830;4823:12;4766:71;4705:138;:::o;4849:155::-;4903:5;4941:6;4928:20;4919:29;;4957:41;4992:5;4957:41;:::i;:::-;4849:155;;;;:::o;5010:490::-;5086:6;5094;5143:2;5131:9;5122:7;5118:23;5114:32;5111:119;;;5149:79;;:::i;:::-;5111:119;5269:1;5294:61;5347:7;5338:6;5327:9;5323:22;5294:61;:::i;:::-;5284:71;;5240:125;5404:2;5430:53;5475:7;5466:6;5455:9;5451:22;5430:53;:::i;:::-;5420:63;;5375:118;5010:490;;;;;:::o;5506:169::-;5590:11;5624:6;5619:3;5612:19;5664:4;5659:3;5655:14;5640:29;;5506:169;;;;:::o;5681:170::-;5821:22;5817:1;5809:6;5805:14;5798:46;5681:170;:::o;5857:366::-;5999:3;6020:67;6084:2;6079:3;6020:67;:::i;:::-;6013:74;;6096:93;6185:3;6096:93;:::i;:::-;6214:2;6209:3;6205:12;6198:19;;5857:366;;;:::o;6229:419::-;6395:4;6433:2;6422:9;6418:18;6410:26;;6482:9;6476:4;6472:20;6468:1;6457:9;6453:17;6446:47;6510:131;6636:4;6510:131;:::i;:::-;6502:139;;6229:419;;;:::o;6654:180::-;6702:77;6699:1;6692:88;6799:4;6796:1;6789:15;6823:4;6820:1;6813:15;6840:410;6880:7;6903:20;6921:1;6903:20;:::i;:::-;6898:25;;6937:20;6955:1;6937:20;:::i;:::-;6932:25;;6992:1;6989;6985:9;7014:30;7032:11;7014:30;:::i;:::-;7003:41;;7193:1;7184:7;7180:15;7177:1;7174:22;7154:1;7147:9;7127:83;7104:139;;7223:18;;:::i;:::-;7104:139;6888:362;6840:410;;;;:::o;7256:180::-;7304:77;7301:1;7294:88;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7442:185;7482:1;7499:20;7517:1;7499:20;:::i;:::-;7494:25;;7533:20;7551:1;7533:20;:::i;:::-;7528:25;;7572:1;7562:35;;7577:18;;:::i;:::-;7562:35;7619:1;7616;7612:9;7607:14;;7442:185;;;;:::o;7633:191::-;7673:3;7692:20;7710:1;7692:20;:::i;:::-;7687:25;;7726:20;7744:1;7726:20;:::i;:::-;7721:25;;7769:1;7766;7762:9;7755:16;;7790:3;7787:1;7784:10;7781:36;;;7797:18;;:::i;:::-;7781:36;7633:191;;;;:::o;7830:118::-;7917:24;7935:5;7917:24;:::i;:::-;7912:3;7905:37;7830:118;;:::o;7954:332::-;8075:4;8113:2;8102:9;8098:18;8090:26;;8126:71;8194:1;8183:9;8179:17;8170:6;8126:71;:::i;:::-;8207:72;8275:2;8264:9;8260:18;8251:6;8207:72;:::i;:::-;7954:332;;;;;:::o;8292:90::-;8326:7;8369:5;8362:13;8355:21;8344:32;;8292:90;;;:::o;8388:116::-;8458:21;8473:5;8458:21;:::i;:::-;8451:5;8448:32;8438:60;;8494:1;8491;8484:12;8438:60;8388:116;:::o;8510:137::-;8564:5;8595:6;8589:13;8580:22;;8611:30;8635:5;8611:30;:::i;:::-;8510:137;;;;:::o;8653:345::-;8720:6;8769:2;8757:9;8748:7;8744:23;8740:32;8737:119;;;8775:79;;:::i;:::-;8737:119;8895:1;8920:61;8973:7;8964:6;8953:9;8949:22;8920:61;:::i;:::-;8910:71;;8866:125;8653:345;;;;:::o;9004:85::-;9049:7;9078:5;9067:16;;9004:85;;;:::o;9095:60::-;9123:3;9144:5;9137:12;;9095:60;;;:::o;9161:158::-;9219:9;9252:61;9270:42;9279:32;9305:5;9279:32;:::i;:::-;9270:42;:::i;:::-;9252:61;:::i;:::-;9239:74;;9161:158;;;:::o;9325:147::-;9420:45;9459:5;9420:45;:::i;:::-;9415:3;9408:58;9325:147;;:::o;9478:98::-;9529:6;9563:5;9557:12;9547:22;;9478:98;;;:::o;9582:168::-;9665:11;9699:6;9694:3;9687:19;9739:4;9734:3;9730:14;9715:29;;9582:168;;;;:::o;9756:139::-;9845:6;9840:3;9835;9829:23;9886:1;9877:6;9872:3;9868:16;9861:27;9756:139;;;:::o;9901:102::-;9942:6;9993:2;9989:7;9984:2;9977:5;9973:14;9969:28;9959:38;;9901:102;;;:::o;10009:373::-;10095:3;10123:38;10155:5;10123:38;:::i;:::-;10177:70;10240:6;10235:3;10177:70;:::i;:::-;10170:77;;10256:65;10314:6;10309:3;10302:4;10295:5;10291:16;10256:65;:::i;:::-;10346:29;10368:6;10346:29;:::i;:::-;10341:3;10337:39;10330:46;;10099:283;10009:373;;;;:::o;10388:656::-;10591:4;10629:3;10618:9;10614:19;10606:27;;10643:79;10719:1;10708:9;10704:17;10695:6;10643:79;:::i;:::-;10732:72;10800:2;10789:9;10785:18;10776:6;10732:72;:::i;:::-;10814;10882:2;10871:9;10867:18;10858:6;10814:72;:::i;:::-;10933:9;10927:4;10923:20;10918:2;10907:9;10903:18;10896:48;10961:76;11032:4;11023:6;10961:76;:::i;:::-;10953:84;;10388:656;;;;;;;:::o","linkReferences":{},"immutableReferences":{"61916":[{"start":794,"length":32},{"start":992,"length":32}]}},"methodIdentifiers":{"flashloan(uint256)":"65b6c4f0","uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":\"UniswapV2Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV2Flashloan.sol":"UniswapV2Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"}},"version":1},"id":122} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uniswapV2Call","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033","sourceMap":"275:1936:116:-:0;;;775:80;;;;;;;;;;383:42;821:15;;;463:42;543;821:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;799:49;;;;;;;;;;275:1936;;7:126:139;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:332::-;486:4;524:2;513:9;509:18;501:26;;537:71;605:1;594:9;590:17;581:6;537:71;:::i;:::-;618:72;686:2;675:9;671:18;662:6;618:72;:::i;:::-;365:332;;;;;:::o;784:117::-;893:1;890;883:12;1030:122;1103:24;1121:5;1103:24;:::i;:::-;1096:5;1093:35;1083:63;;1142:1;1139;1132:12;1083:63;1030:122;:::o;1158:143::-;1215:5;1246:6;1240:13;1231:22;;1262:33;1289:5;1262:33;:::i;:::-;1158:143;;;;:::o;1307:351::-;1377:6;1426:2;1414:9;1405:7;1401:23;1397:32;1394:119;;;1432:79;;:::i;:::-;1394:119;1552:1;1577:64;1633:7;1624:6;1613:9;1609:22;1577:64;:::i;:::-;1567:74;;1523:128;1307:351;;;;:::o;275:1936:116:-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033","sourceMap":"275:1936:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1255:954;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;884:297;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1255:954;1451:14;1483:10;1468:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1451:52;;1535:14;1567:10;1552:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1535:52;;383:42;1640:15;;;1656:6;1664;1640:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1626:45;;:10;:45;;;1619:53;;;;:::i;:::-;;1749:19;1770:18;1803:4;;1792:36;;;;;;;:::i;:::-;1748:80;;;;543:42;1890:19;;:11;:19;;;1882:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;2043:8;2076:1;2070:3;2065:1;2055:7;:11;;;;:::i;:::-;2054:19;;;;:::i;:::-;:23;;;;:::i;:::-;2043:34;;2087:18;2118:3;2108:7;:13;;;;:::i;:::-;2087:34;;543:42;2159:13;;;2181:4;2188:13;2159:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1390:819;;;;;;1255:954;;;;;:::o;884:297::-;1005:17;543:42;1042:10;1025:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1005:48;;1129:4;:9;;;1139:1;1142:10;1162:4;1169;1129:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:252;884:297;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:329::-;3165:6;3214:2;3202:9;3193:7;3189:23;3185:32;3182:119;;;3220:79;;:::i;:::-;3182:119;3340:1;3365:53;3410:7;3401:6;3390:9;3386:22;3365:53;:::i;:::-;3355:63;;3311:117;3106:329;;;;:::o;3441:143::-;3498:5;3529:6;3523:13;3514:22;;3545:33;3572:5;3545:33;:::i;:::-;3441:143;;;;:::o;3590:351::-;3660:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:119;;;3715:79;;:::i;:::-;3677:119;3835:1;3860:64;3916:7;3907:6;3896:9;3892:22;3860:64;:::i;:::-;3850:74;;3806:128;3590:351;;;;:::o;3947:118::-;4034:24;4052:5;4034:24;:::i;:::-;4029:3;4022:37;3947:118;;:::o;4071:332::-;4192:4;4230:2;4219:9;4215:18;4207:26;;4243:71;4311:1;4300:9;4296:17;4287:6;4243:71;:::i;:::-;4324:72;4392:2;4381:9;4377:18;4368:6;4324:72;:::i;:::-;4071:332;;;;;:::o;4409:180::-;4457:77;4454:1;4447:88;4554:4;4551:1;4544:15;4578:4;4575:1;4568:15;4595:104;4640:7;4669:24;4687:5;4669:24;:::i;:::-;4658:35;;4595:104;;;:::o;4705:138::-;4786:32;4812:5;4786:32;:::i;:::-;4779:5;4776:43;4766:71;;4833:1;4830;4823:12;4766:71;4705:138;:::o;4849:155::-;4903:5;4941:6;4928:20;4919:29;;4957:41;4992:5;4957:41;:::i;:::-;4849:155;;;;:::o;5010:490::-;5086:6;5094;5143:2;5131:9;5122:7;5118:23;5114:32;5111:119;;;5149:79;;:::i;:::-;5111:119;5269:1;5294:61;5347:7;5338:6;5327:9;5323:22;5294:61;:::i;:::-;5284:71;;5240:125;5404:2;5430:53;5475:7;5466:6;5455:9;5451:22;5430:53;:::i;:::-;5420:63;;5375:118;5010:490;;;;;:::o;5506:169::-;5590:11;5624:6;5619:3;5612:19;5664:4;5659:3;5655:14;5640:29;;5506:169;;;;:::o;5681:170::-;5821:22;5817:1;5809:6;5805:14;5798:46;5681:170;:::o;5857:366::-;5999:3;6020:67;6084:2;6079:3;6020:67;:::i;:::-;6013:74;;6096:93;6185:3;6096:93;:::i;:::-;6214:2;6209:3;6205:12;6198:19;;5857:366;;;:::o;6229:419::-;6395:4;6433:2;6422:9;6418:18;6410:26;;6482:9;6476:4;6472:20;6468:1;6457:9;6453:17;6446:47;6510:131;6636:4;6510:131;:::i;:::-;6502:139;;6229:419;;;:::o;6654:180::-;6702:77;6699:1;6692:88;6799:4;6796:1;6789:15;6823:4;6820:1;6813:15;6840:410;6880:7;6903:20;6921:1;6903:20;:::i;:::-;6898:25;;6937:20;6955:1;6937:20;:::i;:::-;6932:25;;6992:1;6989;6985:9;7014:30;7032:11;7014:30;:::i;:::-;7003:41;;7193:1;7184:7;7180:15;7177:1;7174:22;7154:1;7147:9;7127:83;7104:139;;7223:18;;:::i;:::-;7104:139;6888:362;6840:410;;;;:::o;7256:180::-;7304:77;7301:1;7294:88;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7442:185;7482:1;7499:20;7517:1;7499:20;:::i;:::-;7494:25;;7533:20;7551:1;7533:20;:::i;:::-;7528:25;;7572:1;7562:35;;7577:18;;:::i;:::-;7562:35;7619:1;7616;7612:9;7607:14;;7442:185;;;;:::o;7633:191::-;7673:3;7692:20;7710:1;7692:20;:::i;:::-;7687:25;;7726:20;7744:1;7726:20;:::i;:::-;7721:25;;7769:1;7766;7762:9;7755:16;;7790:3;7787:1;7784:10;7781:36;;;7797:18;;:::i;:::-;7781:36;7633:191;;;;:::o;7830:118::-;7917:24;7935:5;7917:24;:::i;:::-;7912:3;7905:37;7830:118;;:::o;7954:332::-;8075:4;8113:2;8102:9;8098:18;8090:26;;8126:71;8194:1;8183:9;8179:17;8170:6;8126:71;:::i;:::-;8207:72;8275:2;8264:9;8260:18;8251:6;8207:72;:::i;:::-;7954:332;;;;;:::o;8292:90::-;8326:7;8369:5;8362:13;8355:21;8344:32;;8292:90;;;:::o;8388:116::-;8458:21;8473:5;8458:21;:::i;:::-;8451:5;8448:32;8438:60;;8494:1;8491;8484:12;8438:60;8388:116;:::o;8510:137::-;8564:5;8595:6;8589:13;8580:22;;8611:30;8635:5;8611:30;:::i;:::-;8510:137;;;;:::o;8653:345::-;8720:6;8769:2;8757:9;8748:7;8744:23;8740:32;8737:119;;;8775:79;;:::i;:::-;8737:119;8895:1;8920:61;8973:7;8964:6;8953:9;8949:22;8920:61;:::i;:::-;8910:71;;8866:125;8653:345;;;;:::o;9004:85::-;9049:7;9078:5;9067:16;;9004:85;;;:::o;9095:60::-;9123:3;9144:5;9137:12;;9095:60;;;:::o;9161:158::-;9219:9;9252:61;9270:42;9279:32;9305:5;9279:32;:::i;:::-;9270:42;:::i;:::-;9252:61;:::i;:::-;9239:74;;9161:158;;;:::o;9325:147::-;9420:45;9459:5;9420:45;:::i;:::-;9415:3;9408:58;9325:147;;:::o;9478:98::-;9529:6;9563:5;9557:12;9547:22;;9478:98;;;:::o;9582:168::-;9665:11;9699:6;9694:3;9687:19;9739:4;9734:3;9730:14;9715:29;;9582:168;;;;:::o;9756:139::-;9845:6;9840:3;9835;9829:23;9886:1;9877:6;9872:3;9868:16;9861:27;9756:139;;;:::o;9901:102::-;9942:6;9993:2;9989:7;9984:2;9977:5;9973:14;9969:28;9959:38;;9901:102;;;:::o;10009:373::-;10095:3;10123:38;10155:5;10123:38;:::i;:::-;10177:70;10240:6;10235:3;10177:70;:::i;:::-;10170:77;;10256:65;10314:6;10309:3;10302:4;10295:5;10291:16;10256:65;:::i;:::-;10346:29;10368:6;10346:29;:::i;:::-;10341:3;10337:39;10330:46;;10099:283;10009:373;;;;:::o;10388:656::-;10591:4;10629:3;10618:9;10614:19;10606:27;;10643:79;10719:1;10708:9;10704:17;10695:6;10643:79;:::i;:::-;10732:72;10800:2;10789:9;10785:18;10776:6;10732:72;:::i;:::-;10814;10882:2;10871:9;10867:18;10858:6;10814:72;:::i;:::-;10933:9;10927:4;10923:20;10918:2;10907:9;10903:18;10896:48;10961:76;11032:4;11023:6;10961:76;:::i;:::-;10953:84;;10388:656;;;;;;;:::o","linkReferences":{},"immutableReferences":{"61013":[{"start":794,"length":32},{"start":992,"length":32}]}},"methodIdentifiers":{"flashloan(uint256)":"65b6c4f0","uniswapV2Call(address,uint256,uint256,bytes)":"10d1e85c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":\"UniswapV2Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV2Call"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV2Flashloan.sol":"UniswapV2Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"}},"version":1},"id":116} \ No newline at end of file diff --git a/out/UniswapV2Flashloan.t.sol/UniswapV2FlashloanTest.json b/out/UniswapV2Flashloan.t.sol/UniswapV2FlashloanTest.json index 28e4fc9e..460fc544 100644 --- a/out/UniswapV2Flashloan.t.sol/UniswapV2FlashloanTest.json +++ b/out/UniswapV2Flashloan.t.sol/UniswapV2FlashloanTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b506127ac806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611292565b60405180910390f35b6101316105c3565b60405161013e91906114d2565b60405180910390f35b61014f610747565b60405161015c9190611292565b60405180910390f35b61016d6107d2565b60405161017a9190611292565b60405180910390f35b61018b61085d565b60405161019891906116d0565b60405180910390f35b6101a96109df565b6040516101b69190611773565b60405180910390f35b6101c7610ab3565b6040516101d49190611888565b60405180910390f35b6101e5610bfa565b005b6101ef610ddf565b6040516101fc9190611888565b60405180910390f35b61020d610f26565b60405161021a9190611773565b60405180910390f35b61022b610ffa565b60405161023891906118c2565b60405180910390f35b610249611101565b6040516102569190611292565b60405180910390f35b61026761118c565b60405161027491906118c2565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670429d069189e00006040518363ffffffff1660e01b815260040161038a929190611935565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca919061198a565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a191906119c4565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd9061119e565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611a0a565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611a0a565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611a0a565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611a73565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d47919061198a565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610daf91906119c4565b5f604051808303815f87803b158015610dc6575f5ffd5b505af1158015610dd8573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb25790505b50505050508152505081526020019060010190610e02565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff1578382905f5260205f20018054610f6690611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290611a0a565b8015610fdd5780601f10610fb457610100808354040283529160200191610fdd565b820191905f5260205f20905b815481529060010190602001808311610fc057829003601f168201915b505050505081526020019060010190610f49565b50505050905090565b5f60085f9054906101000a900460ff161561101857600190506110fe565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110ba929190611ab2565b602060405180830381865afa1580156110d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f99190611b03565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611139575b5050505050905090565b601f5f9054906101000a900460ff1681565b610c4880611b2f83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fd826111d4565b9050919050565b61120d816111f3565b82525050565b5f61121e8383611204565b60208301905092915050565b5f602082019050919050565b5f611240826111ab565b61124a81856111b5565b9350611255836111c5565b805f5b8381101561128557815161126c8882611213565b97506112778361122a565b925050600181019050611258565b5085935050505092915050565b5f6020820190508181035f8301526112aa8184611236565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134682611304565b611350818561130e565b935061136081856020860161131e565b6113698161132c565b840191505092915050565b5f61137f838361133c565b905092915050565b5f602082019050919050565b5f61139d826112db565b6113a781856112e5565b9350836020820285016113b9856112f5565b805f5b858110156113f457848403895281516113d58582611374565b94506113e083611387565b925060208a019950506001810190506113bc565b50829750879550505050505092915050565b5f604083015f83015161141b5f860182611204565b50602083015184820360208601526114338282611393565b9150508091505092915050565b5f61144b8383611406565b905092915050565b5f602082019050919050565b5f611469826112b2565b61147381856112bc565b935083602082028501611485856112cc565b805f5b858110156114c057848403895281516114a18582611440565b94506114ac83611453565b925060208a01995050600181019050611488565b50829750879550505050505092915050565b5f6020820190508181035f8301526114ea818461145f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157881611544565b82525050565b5f611589838361156f565b60208301905092915050565b5f602082019050919050565b5f6115ab8261151b565b6115b58185611525565b93506115c083611535565b805f5b838110156115f05781516115d7888261157e565b97506115e283611595565b9250506001810190506115c3565b5085935050505092915050565b5f604083015f8301518482035f860152611617828261133c565b9150506020830151848203602086015261163182826115a1565b9150508091505092915050565b5f61164983836115fd565b905092915050565b5f602082019050919050565b5f611667826114f2565b61167181856114fc565b9350836020820285016116838561150c565b805f5b858110156116be578484038952815161169f858261163e565b94506116aa83611651565b925060208a01995050600181019050611686565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e8818461165d565b905092915050565b5f82825260208201905092915050565b5f61170a826112db565b61171481856116f0565b935083602082028501611726856112f5565b805f5b8581101561176157848403895281516117428582611374565b945061174d83611387565b925060208a01995050600181019050611729565b50829750879550505050505092915050565b5f6020820190508181035f83015261178b8184611700565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d15f860182611204565b50602083015184820360208601526117e982826115a1565b9150508091505092915050565b5f61180183836117bc565b905092915050565b5f602082019050919050565b5f61181f82611793565b611829818561179d565b93508360208202850161183b856117ad565b805f5b85811015611876578484038952815161185785826117f6565b945061186283611809565b925060208a0199505060018101905061183e565b50829750879550505050505092915050565b5f6020820190508181035f8301526118a08184611815565b905092915050565b5f8115159050919050565b6118bc816118a8565b82525050565b5f6020820190506118d55f8301846118b3565b92915050565b6118e4816111f3565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191f61191a611915846118ea565b6118fc565b6118f3565b9050919050565b61192f81611905565b82525050565b5f6040820190506119485f8301856118db565b6119556020830184611926565b9392505050565b5f5ffd5b611969816118a8565b8114611973575f5ffd5b50565b5f8151905061198481611960565b92915050565b5f6020828403121561199f5761199e61195c565b5b5f6119ac84828501611976565b91505092915050565b6119be816118f3565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2157607f821691505b602082108103611a3457611a336119dd565b5b50919050565b5f819050919050565b5f611a5d611a58611a5384611a3a565b6118fc565b6118f3565b9050919050565b611a6d81611a43565b82525050565b5f604082019050611a865f8301856118db565b611a936020830184611a64565b9392505050565b5f819050919050565b611aac81611a9a565b82525050565b5f604082019050611ac55f8301856118db565b611ad26020830184611aa3565b9392505050565b611ae281611a9a565b8114611aec575f5ffd5b50565b5f81519050611afd81611ad9565b92915050565b5f60208284031215611b1857611b1761195c565b5b5f611b2584828501611aef565b9150509291505056fe60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033a264697066735822122096303a199f21805e5950882427ae3751a0c3097dcb1a4efdaf6e5729422f088664736f6c63430008220033","sourceMap":"197:930:125:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;152:42:125;243:32;;;;;;;;;;;;;;;;;;;;197:930;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611292565b60405180910390f35b6101316105c3565b60405161013e91906114d2565b60405180910390f35b61014f610747565b60405161015c9190611292565b60405180910390f35b61016d6107d2565b60405161017a9190611292565b60405180910390f35b61018b61085d565b60405161019891906116d0565b60405180910390f35b6101a96109df565b6040516101b69190611773565b60405180910390f35b6101c7610ab3565b6040516101d49190611888565b60405180910390f35b6101e5610bfa565b005b6101ef610ddf565b6040516101fc9190611888565b60405180910390f35b61020d610f26565b60405161021a9190611773565b60405180910390f35b61022b610ffa565b60405161023891906118c2565b60405180910390f35b610249611101565b6040516102569190611292565b60405180910390f35b61026761118c565b60405161027491906118c2565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670429d069189e00006040518363ffffffff1660e01b815260040161038a929190611935565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca919061198a565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a191906119c4565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd9061119e565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611a0a565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611a0a565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611a0a565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611a73565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d47919061198a565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610daf91906119c4565b5f604051808303815f87803b158015610dc6575f5ffd5b505af1158015610dd8573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb25790505b50505050508152505081526020019060010190610e02565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff1578382905f5260205f20018054610f6690611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290611a0a565b8015610fdd5780601f10610fb457610100808354040283529160200191610fdd565b820191905f5260205f20905b815481529060010190602001808311610fc057829003601f168201915b505050505081526020019060010190610f49565b50505050905090565b5f60085f9054906101000a900460ff161561101857600190506110fe565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110ba929190611ab2565b602060405180830381865afa1580156110d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f99190611b03565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611139575b5050505050905090565b601f5f9054906101000a900460ff1681565b610c4880611b2f83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fd826111d4565b9050919050565b61120d816111f3565b82525050565b5f61121e8383611204565b60208301905092915050565b5f602082019050919050565b5f611240826111ab565b61124a81856111b5565b9350611255836111c5565b805f5b8381101561128557815161126c8882611213565b97506112778361122a565b925050600181019050611258565b5085935050505092915050565b5f6020820190508181035f8301526112aa8184611236565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134682611304565b611350818561130e565b935061136081856020860161131e565b6113698161132c565b840191505092915050565b5f61137f838361133c565b905092915050565b5f602082019050919050565b5f61139d826112db565b6113a781856112e5565b9350836020820285016113b9856112f5565b805f5b858110156113f457848403895281516113d58582611374565b94506113e083611387565b925060208a019950506001810190506113bc565b50829750879550505050505092915050565b5f604083015f83015161141b5f860182611204565b50602083015184820360208601526114338282611393565b9150508091505092915050565b5f61144b8383611406565b905092915050565b5f602082019050919050565b5f611469826112b2565b61147381856112bc565b935083602082028501611485856112cc565b805f5b858110156114c057848403895281516114a18582611440565b94506114ac83611453565b925060208a01995050600181019050611488565b50829750879550505050505092915050565b5f6020820190508181035f8301526114ea818461145f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157881611544565b82525050565b5f611589838361156f565b60208301905092915050565b5f602082019050919050565b5f6115ab8261151b565b6115b58185611525565b93506115c083611535565b805f5b838110156115f05781516115d7888261157e565b97506115e283611595565b9250506001810190506115c3565b5085935050505092915050565b5f604083015f8301518482035f860152611617828261133c565b9150506020830151848203602086015261163182826115a1565b9150508091505092915050565b5f61164983836115fd565b905092915050565b5f602082019050919050565b5f611667826114f2565b61167181856114fc565b9350836020820285016116838561150c565b805f5b858110156116be578484038952815161169f858261163e565b94506116aa83611651565b925060208a01995050600181019050611686565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e8818461165d565b905092915050565b5f82825260208201905092915050565b5f61170a826112db565b61171481856116f0565b935083602082028501611726856112f5565b805f5b8581101561176157848403895281516117428582611374565b945061174d83611387565b925060208a01995050600181019050611729565b50829750879550505050505092915050565b5f6020820190508181035f83015261178b8184611700565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d15f860182611204565b50602083015184820360208601526117e982826115a1565b9150508091505092915050565b5f61180183836117bc565b905092915050565b5f602082019050919050565b5f61181f82611793565b611829818561179d565b93508360208202850161183b856117ad565b805f5b85811015611876578484038952815161185785826117f6565b945061186283611809565b925060208a0199505060018101905061183e565b50829750879550505050505092915050565b5f6020820190508181035f8301526118a08184611815565b905092915050565b5f8115159050919050565b6118bc816118a8565b82525050565b5f6020820190506118d55f8301846118b3565b92915050565b6118e4816111f3565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191f61191a611915846118ea565b6118fc565b6118f3565b9050919050565b61192f81611905565b82525050565b5f6040820190506119485f8301856118db565b6119556020830184611926565b9392505050565b5f5ffd5b611969816118a8565b8114611973575f5ffd5b50565b5f8151905061198481611960565b92915050565b5f6020828403121561199f5761199e61195c565b5b5f6119ac84828501611976565b91505092915050565b6119be816118f3565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2157607f821691505b602082108103611a3457611a336119dd565b5b50919050565b5f819050919050565b5f611a5d611a58611a5384611a3a565b6118fc565b6118f3565b9050919050565b611a6d81611a43565b82525050565b5f604082019050611a865f8301856118db565b611a936020830184611a64565b9392505050565b5f819050919050565b611aac81611a9a565b82525050565b5f604082019050611ac55f8301856118db565b611ad26020830184611aa3565b9392505050565b611ae281611a9a565b8114611aec575f5ffd5b50565b5f81519050611afd81611ad9565b92915050565b5f60208284031215611b1857611b1761195c565b5b5f611b2584828501611aef565b9150509291505056fe60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033a264697066735822122096303a199f21805e5950882427ae3751a0c3097dcb1a4efdaf6e5729422f088664736f6c63430008220033","sourceMap":"197:930:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:367;;;:::i;:::-;;325:77;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;408:309:125;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;758:367:125;868:4;;;;;;;;;;;:12;;;888:4;868:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:4;;;;;;;;;;;:13;;;927:9;;;;;;;;;;;939:4;905:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;987:19;1009:10;987:32;;351:42:0;1056:15:125;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1083:9;;;;;;;;;;;:19;;;1103:14;1083:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:331;758:367::o;325:77::-;371:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;359:9;;:36;;;;;;;;;;;;;;;;;;325:77::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;408:309:125:-;514:4;;;;;;;;;;;:12;;;534:4;514:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;551:4;;;;;;;;;;;:13;;;573:9;;;;;;;;;;;585:4;551:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;633:19;655:10;633:32;;675:9;;;;;;;;;;;:19;;;695:14;675:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:277;408:309::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:102::-;19548:7;19577:5;19566:16;;19486:102;;;:::o;19594:77::-;19631:7;19660:5;19649:16;;19594:77;;;:::o;19677:60::-;19705:3;19726:5;19719:12;;19677:60;;;:::o;19743:192::-;19818:9;19851:78;19869:59;19878:49;19921:5;19878:49;:::i;:::-;19869:59;:::i;:::-;19851:78;:::i;:::-;19838:91;;19743:192;;;:::o;19941:181::-;20053:62;20109:5;20053:62;:::i;:::-;20048:3;20041:75;19941:181;;:::o;20128:382::-;20274:4;20312:2;20301:9;20297:18;20289:26;;20325:71;20393:1;20382:9;20378:17;20369:6;20325:71;:::i;:::-;20406:97;20499:2;20488:9;20484:18;20475:6;20406:97;:::i;:::-;20128:382;;;;;:::o;20597:117::-;20706:1;20703;20696:12;20843:116;20913:21;20928:5;20913:21;:::i;:::-;20906:5;20903:32;20893:60;;20949:1;20946;20939:12;20893:60;20843:116;:::o;20965:137::-;21019:5;21050:6;21044:13;21035:22;;21066:30;21090:5;21066:30;:::i;:::-;20965:137;;;;:::o;21108:345::-;21175:6;21224:2;21212:9;21203:7;21199:23;21195:32;21192:119;;;21230:79;;:::i;:::-;21192:119;21350:1;21375:61;21428:7;21419:6;21408:9;21404:22;21375:61;:::i;:::-;21365:71;;21321:125;21108:345;;;;:::o;21459:118::-;21546:24;21564:5;21546:24;:::i;:::-;21541:3;21534:37;21459:118;;:::o;21583:222::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21727:71;21795:1;21784:9;21780:17;21771:6;21727:71;:::i;:::-;21583:222;;;;:::o;21811:180::-;21859:77;21856:1;21849:88;21956:4;21953:1;21946:15;21980:4;21977:1;21970:15;21997:320;22041:6;22078:1;22072:4;22068:12;22058:22;;22125:1;22119:4;22115:12;22146:18;22136:81;;22202:4;22194:6;22190:17;22180:27;;22136:81;22264:2;22256:6;22253:14;22233:18;22230:38;22227:84;;22283:18;;:::i;:::-;22227:84;22048:269;21997:320;;;:::o;22323:103::-;22386:7;22415:5;22404:16;;22323:103;;;:::o;22432:194::-;22508:9;22541:79;22559:60;22568:50;22612:5;22568:50;:::i;:::-;22559:60;:::i;:::-;22541:79;:::i;:::-;22528:92;;22432:194;;;:::o;22632:183::-;22745:63;22802:5;22745:63;:::i;:::-;22740:3;22733:76;22632:183;;:::o;22821:384::-;22968:4;23006:2;22995:9;22991:18;22983:26;;23019:71;23087:1;23076:9;23072:17;23063:6;23019:71;:::i;:::-;23100:98;23194:2;23183:9;23179:18;23170:6;23100:98;:::i;:::-;22821:384;;;;;:::o;23211:77::-;23248:7;23277:5;23266:16;;23211:77;;;:::o;23294:118::-;23381:24;23399:5;23381:24;:::i;:::-;23376:3;23369:37;23294:118;;:::o;23418:332::-;23539:4;23577:2;23566:9;23562:18;23554:26;;23590:71;23658:1;23647:9;23643:17;23634:6;23590:71;:::i;:::-;23671:72;23739:2;23728:9;23724:18;23715:6;23671:72;:::i;:::-;23418:332;;;;;:::o;23756:122::-;23829:24;23847:5;23829:24;:::i;:::-;23822:5;23819:35;23809:63;;23868:1;23865;23858:12;23809:63;23756:122;:::o;23884:143::-;23941:5;23972:6;23966:13;23957:22;;23988:33;24015:5;23988:33;:::i;:::-;23884:143;;;;:::o;24033:351::-;24103:6;24152:2;24140:9;24131:7;24127:23;24123:32;24120:119;;;24158:79;;:::i;:::-;24120:119;24278:1;24303:64;24359:7;24350:6;24339:9;24335:22;24303:64;:::i;:::-;24293:74;;24249:128;24033:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/UniswapV2Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]},\"src/57_Flashloan/test/UniswapV2Flashloan.t.sol\":{\"keccak256\":\"0xa642f1a1f2f237c1110c82002c26b95dc2bba4188f2c56a185661924f620744c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e62b12f8c1b9d995bf13f40f4b5d73c479eaa738693312f24c54e92d68bb00\",\"dweb:/ipfs/QmbMgaKeqGFWXWMHvnAyvn6DETebh4nift1E3xAMGDBKup\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/UniswapV2Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"},"src/57_Flashloan/test/UniswapV2Flashloan.t.sol":{"keccak256":"0xa642f1a1f2f237c1110c82002c26b95dc2bba4188f2c56a185661924f620744c","urls":["bzz-raw://08e62b12f8c1b9d995bf13f40f4b5d73c479eaa738693312f24c54e92d68bb00","dweb:/ipfs/QmbMgaKeqGFWXWMHvnAyvn6DETebh4nift1E3xAMGDBKup"],"license":"MIT"}},"version":1},"id":125} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b506127ac806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611292565b60405180910390f35b6101316105c3565b60405161013e91906114d2565b60405180910390f35b61014f610747565b60405161015c9190611292565b60405180910390f35b61016d6107d2565b60405161017a9190611292565b60405180910390f35b61018b61085d565b60405161019891906116d0565b60405180910390f35b6101a96109df565b6040516101b69190611773565b60405180910390f35b6101c7610ab3565b6040516101d49190611888565b60405180910390f35b6101e5610bfa565b005b6101ef610ddf565b6040516101fc9190611888565b60405180910390f35b61020d610f26565b60405161021a9190611773565b60405180910390f35b61022b610ffa565b60405161023891906118c2565b60405180910390f35b610249611101565b6040516102569190611292565b60405180910390f35b61026761118c565b60405161027491906118c2565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670429d069189e00006040518363ffffffff1660e01b815260040161038a929190611935565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca919061198a565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a191906119c4565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd9061119e565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611a0a565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611a0a565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611a0a565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611a73565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d47919061198a565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610daf91906119c4565b5f604051808303815f87803b158015610dc6575f5ffd5b505af1158015610dd8573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb25790505b50505050508152505081526020019060010190610e02565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff1578382905f5260205f20018054610f6690611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290611a0a565b8015610fdd5780601f10610fb457610100808354040283529160200191610fdd565b820191905f5260205f20905b815481529060010190602001808311610fc057829003601f168201915b505050505081526020019060010190610f49565b50505050905090565b5f60085f9054906101000a900460ff161561101857600190506110fe565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110ba929190611ab2565b602060405180830381865afa1580156110d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f99190611b03565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611139575b5050505050905090565b601f5f9054906101000a900460ff1681565b610c4880611b2f83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fd826111d4565b9050919050565b61120d816111f3565b82525050565b5f61121e8383611204565b60208301905092915050565b5f602082019050919050565b5f611240826111ab565b61124a81856111b5565b9350611255836111c5565b805f5b8381101561128557815161126c8882611213565b97506112778361122a565b925050600181019050611258565b5085935050505092915050565b5f6020820190508181035f8301526112aa8184611236565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134682611304565b611350818561130e565b935061136081856020860161131e565b6113698161132c565b840191505092915050565b5f61137f838361133c565b905092915050565b5f602082019050919050565b5f61139d826112db565b6113a781856112e5565b9350836020820285016113b9856112f5565b805f5b858110156113f457848403895281516113d58582611374565b94506113e083611387565b925060208a019950506001810190506113bc565b50829750879550505050505092915050565b5f604083015f83015161141b5f860182611204565b50602083015184820360208601526114338282611393565b9150508091505092915050565b5f61144b8383611406565b905092915050565b5f602082019050919050565b5f611469826112b2565b61147381856112bc565b935083602082028501611485856112cc565b805f5b858110156114c057848403895281516114a18582611440565b94506114ac83611453565b925060208a01995050600181019050611488565b50829750879550505050505092915050565b5f6020820190508181035f8301526114ea818461145f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157881611544565b82525050565b5f611589838361156f565b60208301905092915050565b5f602082019050919050565b5f6115ab8261151b565b6115b58185611525565b93506115c083611535565b805f5b838110156115f05781516115d7888261157e565b97506115e283611595565b9250506001810190506115c3565b5085935050505092915050565b5f604083015f8301518482035f860152611617828261133c565b9150506020830151848203602086015261163182826115a1565b9150508091505092915050565b5f61164983836115fd565b905092915050565b5f602082019050919050565b5f611667826114f2565b61167181856114fc565b9350836020820285016116838561150c565b805f5b858110156116be578484038952815161169f858261163e565b94506116aa83611651565b925060208a01995050600181019050611686565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e8818461165d565b905092915050565b5f82825260208201905092915050565b5f61170a826112db565b61171481856116f0565b935083602082028501611726856112f5565b805f5b8581101561176157848403895281516117428582611374565b945061174d83611387565b925060208a01995050600181019050611729565b50829750879550505050505092915050565b5f6020820190508181035f83015261178b8184611700565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d15f860182611204565b50602083015184820360208601526117e982826115a1565b9150508091505092915050565b5f61180183836117bc565b905092915050565b5f602082019050919050565b5f61181f82611793565b611829818561179d565b93508360208202850161183b856117ad565b805f5b85811015611876578484038952815161185785826117f6565b945061186283611809565b925060208a0199505060018101905061183e565b50829750879550505050505092915050565b5f6020820190508181035f8301526118a08184611815565b905092915050565b5f8115159050919050565b6118bc816118a8565b82525050565b5f6020820190506118d55f8301846118b3565b92915050565b6118e4816111f3565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191f61191a611915846118ea565b6118fc565b6118f3565b9050919050565b61192f81611905565b82525050565b5f6040820190506119485f8301856118db565b6119556020830184611926565b9392505050565b5f5ffd5b611969816118a8565b8114611973575f5ffd5b50565b5f8151905061198481611960565b92915050565b5f6020828403121561199f5761199e61195c565b5b5f6119ac84828501611976565b91505092915050565b6119be816118f3565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2157607f821691505b602082108103611a3457611a336119dd565b5b50919050565b5f819050919050565b5f611a5d611a58611a5384611a3a565b6118fc565b6118f3565b9050919050565b611a6d81611a43565b82525050565b5f604082019050611a865f8301856118db565b611a936020830184611a64565b9392505050565b5f819050919050565b611aac81611a9a565b82525050565b5f604082019050611ac55f8301856118db565b611ad26020830184611aa3565b9392505050565b611ae281611a9a565b8114611aec575f5ffd5b50565b5f81519050611afd81611ad9565b92915050565b5f60208284031215611b1857611b1761195c565b5b5f611b2584828501611aef565b9150509291505056fe60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033a264697066735822122096303a199f21805e5950882427ae3751a0c3097dcb1a4efdaf6e5729422f088664736f6c63430008220033","sourceMap":"197:930:119:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;152:42:119;243:32;;;;;;;;;;;;;;;;;;;;197:930;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611292565b60405180910390f35b6101316105c3565b60405161013e91906114d2565b60405180910390f35b61014f610747565b60405161015c9190611292565b60405180910390f35b61016d6107d2565b60405161017a9190611292565b60405180910390f35b61018b61085d565b60405161019891906116d0565b60405180910390f35b6101a96109df565b6040516101b69190611773565b60405180910390f35b6101c7610ab3565b6040516101d49190611888565b60405180910390f35b6101e5610bfa565b005b6101ef610ddf565b6040516101fc9190611888565b60405180910390f35b61020d610f26565b60405161021a9190611773565b60405180910390f35b61022b610ffa565b60405161023891906118c2565b60405180910390f35b610249611101565b6040516102569190611292565b60405180910390f35b61026761118c565b60405161027491906118c2565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670429d069189e00006040518363ffffffff1660e01b815260040161038a929190611935565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca919061198a565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a191906119c4565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd9061119e565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611a0a565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611a0a565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611a0a565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611a0a565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611a73565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d47919061198a565b505f68056bc75e2d63100000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610daf91906119c4565b5f604051808303815f87803b158015610dc6575f5ffd5b505af1158015610dd8573d5f5f3e3d5ffd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610f1d578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f0557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610eb25790505b50505050508152505081526020019060010190610e02565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610ff1578382905f5260205f20018054610f6690611a0a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9290611a0a565b8015610fdd5780601f10610fb457610100808354040283529160200191610fdd565b820191905f5260205f20905b815481529060010190602001808311610fc057829003601f168201915b505050505081526020019060010190610f49565b50505050905090565b5f60085f9054906101000a900460ff161561101857600190506110fe565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016110ba929190611ab2565b602060405180830381865afa1580156110d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f99190611b03565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561118257602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611139575b5050505050905090565b601f5f9054906101000a900460ff1681565b610c4880611b2f83390190565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111fd826111d4565b9050919050565b61120d816111f3565b82525050565b5f61121e8383611204565b60208301905092915050565b5f602082019050919050565b5f611240826111ab565b61124a81856111b5565b9350611255836111c5565b805f5b8381101561128557815161126c8882611213565b97506112778361122a565b925050600181019050611258565b5085935050505092915050565b5f6020820190508181035f8301526112aa8184611236565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61134682611304565b611350818561130e565b935061136081856020860161131e565b6113698161132c565b840191505092915050565b5f61137f838361133c565b905092915050565b5f602082019050919050565b5f61139d826112db565b6113a781856112e5565b9350836020820285016113b9856112f5565b805f5b858110156113f457848403895281516113d58582611374565b94506113e083611387565b925060208a019950506001810190506113bc565b50829750879550505050505092915050565b5f604083015f83015161141b5f860182611204565b50602083015184820360208601526114338282611393565b9150508091505092915050565b5f61144b8383611406565b905092915050565b5f602082019050919050565b5f611469826112b2565b61147381856112bc565b935083602082028501611485856112cc565b805f5b858110156114c057848403895281516114a18582611440565b94506114ac83611453565b925060208a01995050600181019050611488565b50829750879550505050505092915050565b5f6020820190508181035f8301526114ea818461145f565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61157881611544565b82525050565b5f611589838361156f565b60208301905092915050565b5f602082019050919050565b5f6115ab8261151b565b6115b58185611525565b93506115c083611535565b805f5b838110156115f05781516115d7888261157e565b97506115e283611595565b9250506001810190506115c3565b5085935050505092915050565b5f604083015f8301518482035f860152611617828261133c565b9150506020830151848203602086015261163182826115a1565b9150508091505092915050565b5f61164983836115fd565b905092915050565b5f602082019050919050565b5f611667826114f2565b61167181856114fc565b9350836020820285016116838561150c565b805f5b858110156116be578484038952815161169f858261163e565b94506116aa83611651565b925060208a01995050600181019050611686565b50829750879550505050505092915050565b5f6020820190508181035f8301526116e8818461165d565b905092915050565b5f82825260208201905092915050565b5f61170a826112db565b61171481856116f0565b935083602082028501611726856112f5565b805f5b8581101561176157848403895281516117428582611374565b945061174d83611387565b925060208a01995050600181019050611729565b50829750879550505050505092915050565b5f6020820190508181035f83015261178b8184611700565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f8301516117d15f860182611204565b50602083015184820360208601526117e982826115a1565b9150508091505092915050565b5f61180183836117bc565b905092915050565b5f602082019050919050565b5f61181f82611793565b611829818561179d565b93508360208202850161183b856117ad565b805f5b85811015611876578484038952815161185785826117f6565b945061186283611809565b925060208a0199505060018101905061183e565b50829750879550505050505092915050565b5f6020820190508181035f8301526118a08184611815565b905092915050565b5f8115159050919050565b6118bc816118a8565b82525050565b5f6020820190506118d55f8301846118b3565b92915050565b6118e4816111f3565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f61191f61191a611915846118ea565b6118fc565b6118f3565b9050919050565b61192f81611905565b82525050565b5f6040820190506119485f8301856118db565b6119556020830184611926565b9392505050565b5f5ffd5b611969816118a8565b8114611973575f5ffd5b50565b5f8151905061198481611960565b92915050565b5f6020828403121561199f5761199e61195c565b5b5f6119ac84828501611976565b91505092915050565b6119be816118f3565b82525050565b5f6020820190506119d75f8301846119b5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a2157607f821691505b602082108103611a3457611a336119dd565b5b50919050565b5f819050919050565b5f611a5d611a58611a5384611a3a565b6118fc565b6118f3565b9050919050565b611a6d81611a43565b82525050565b5f604082019050611a865f8301856118db565b611a936020830184611a64565b9392505050565b5f819050919050565b611aac81611a9a565b82525050565b5f604082019050611ac55f8301856118db565b611ad26020830184611aa3565b9392505050565b611ae281611a9a565b8114611aec575f5ffd5b50565b5f81519050611afd81611ad9565b92915050565b5f60208284031215611b1857611b1761195c565b5b5f611b2584828501611aef565b9150509291505056fe60a060405234801561000f575f5ffd5b50735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a43905736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b815260040161008792919061013d565b602060405180830381865afa1580156100a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100c69190610192565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506101bd565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610127826100fe565b9050919050565b6101378161011d565b82525050565b5f6040820190506101505f83018561012e565b61015d602083018461012e565b9392505050565b5f5ffd5b6101718161011d565b811461017b575f5ffd5b50565b5f8151905061018c81610168565b92915050565b5f602082840312156101a7576101a6610164565b5b5f6101b48482850161017e565b91505092915050565b608051610a6c6101dc5f395f818161031a01526103e00152610a6c5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806310d1e85c1461003857806365b6c4f014610054575b5f5ffd5b610052600480360381019061004d9190610564565b610070565b005b61006e600480360381019061006991906105e8565b6103a5565b005b5f3373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100de9190610627565b90505f3373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561012a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014e9190610627565b9050735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73ffffffffffffffffffffffffffffffffffffffff1663e6a4390583836040518363ffffffff1660e01b815260040161019f929190610661565b602060405180830381865afa1580156101ba573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de9190610627565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021957610218610688565b5b5f5f858581019061022a91906106f0565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a790610788565b60405180910390fd5b5f60016103e560038a6102c391906107d3565b6102cd9190610841565b6102d79190610871565b90505f81896102e69190610871565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016103579291906108b3565b6020604051808303815f875af1158015610373573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610397919061090f565b505050505050505050505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2826040516020016103cd9291906108b3565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f5f8430856040518563ffffffff1660e01b815260040161043d94939291906109ec565b5f604051808303815f87803b158015610454575f5ffd5b505af1158015610466573d5f5f3e3d5ffd5b505050505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61049f82610476565b9050919050565b6104af81610495565b81146104b9575f5ffd5b50565b5f813590506104ca816104a6565b92915050565b5f819050919050565b6104e2816104d0565b81146104ec575f5ffd5b50565b5f813590506104fd816104d9565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261052457610523610503565b5b8235905067ffffffffffffffff81111561054157610540610507565b5b60208301915083600182028301111561055d5761055c61050b565b5b9250929050565b5f5f5f5f5f6080868803121561057d5761057c61046e565b5b5f61058a888289016104bc565b955050602061059b888289016104ef565b94505060406105ac888289016104ef565b935050606086013567ffffffffffffffff8111156105cd576105cc610472565b5b6105d98882890161050f565b92509250509295509295909350565b5f602082840312156105fd576105fc61046e565b5b5f61060a848285016104ef565b91505092915050565b5f81519050610621816104a6565b92915050565b5f6020828403121561063c5761063b61046e565b5b5f61064984828501610613565b91505092915050565b61065b81610495565b82525050565b5f6040820190506106745f830185610652565b6106816020830184610652565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f6106bf82610476565b9050919050565b6106cf816106b5565b81146106d9575f5ffd5b50565b5f813590506106ea816106c6565b92915050565b5f5f604083850312156107065761070561046e565b5b5f610713858286016106dc565b9250506020610724858286016104ef565b9150509250929050565b5f82825260208201905092915050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f61077260148361072e565b915061077d8261073e565b602082019050919050565b5f6020820190508181035f83015261079f81610766565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107dd826104d0565b91506107e8836104d0565b92508282026107f6816104d0565b9150828204841483151761080d5761080c6107a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61084b826104d0565b9150610856836104d0565b92508261086657610865610814565b5b828204905092915050565b5f61087b826104d0565b9150610886836104d0565b925082820190508082111561089e5761089d6107a6565b5b92915050565b6108ad816104d0565b82525050565b5f6040820190506108c65f830185610652565b6108d360208301846108a4565b9392505050565b5f8115159050919050565b6108ee816108da565b81146108f8575f5ffd5b50565b5f81519050610909816108e5565b92915050565b5f602082840312156109245761092361046e565b5b5f610931848285016108fb565b91505092915050565b5f819050919050565b5f819050919050565b5f61096661096161095c8461093a565b610943565b6104d0565b9050919050565b6109768161094c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109be8261097c565b6109c88185610986565b93506109d8818560208601610996565b6109e1816109a4565b840191505092915050565b5f6080820190506109ff5f83018761096d565b610a0c60208301866108a4565b610a196040830185610652565b8181036060830152610a2b81846109b4565b90509594505050505056fea2646970667358221220ce1d8fdbffe332102f5919054c73b5480f32cc29fb36a282358e26f604a193c664736f6c63430008220033a264697066735822122096303a199f21805e5950882427ae3751a0c3097dcb1a4efdaf6e5729422f088664736f6c63430008220033","sourceMap":"197:930:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:367;;;:::i;:::-;;325:77;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;408:309:119;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;758:367:119;868:4;;;;;;;;;;;:12;;;888:4;868:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:4;;;;;;;;;;;:13;;;927:9;;;;;;;;;;;939:4;905:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;987:19;1009:10;987:32;;351:42:0;1056:15:119;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1083:9;;;;;;;;;;;:19;;;1103:14;1083:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:331;758:367::o;325:77::-;371:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;359:9;;:36;;;;;;;;;;;;;;;;;;325:77::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;408:309:119:-;514:4;;;;;;;;;;;:12;;;534:4;514:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;551:4;;;;;;;;;;;:13;;;573:9;;;;;;;;;;;585:4;551:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;633:19;655:10;633:32;;675:9;;;;;;;;;;;:19;;;695:14;675:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:277;408:309::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:102::-;19548:7;19577:5;19566:16;;19486:102;;;:::o;19594:77::-;19631:7;19660:5;19649:16;;19594:77;;;:::o;19677:60::-;19705:3;19726:5;19719:12;;19677:60;;;:::o;19743:192::-;19818:9;19851:78;19869:59;19878:49;19921:5;19878:49;:::i;:::-;19869:59;:::i;:::-;19851:78;:::i;:::-;19838:91;;19743:192;;;:::o;19941:181::-;20053:62;20109:5;20053:62;:::i;:::-;20048:3;20041:75;19941:181;;:::o;20128:382::-;20274:4;20312:2;20301:9;20297:18;20289:26;;20325:71;20393:1;20382:9;20378:17;20369:6;20325:71;:::i;:::-;20406:97;20499:2;20488:9;20484:18;20475:6;20406:97;:::i;:::-;20128:382;;;;;:::o;20597:117::-;20706:1;20703;20696:12;20843:116;20913:21;20928:5;20913:21;:::i;:::-;20906:5;20903:32;20893:60;;20949:1;20946;20939:12;20893:60;20843:116;:::o;20965:137::-;21019:5;21050:6;21044:13;21035:22;;21066:30;21090:5;21066:30;:::i;:::-;20965:137;;;;:::o;21108:345::-;21175:6;21224:2;21212:9;21203:7;21199:23;21195:32;21192:119;;;21230:79;;:::i;:::-;21192:119;21350:1;21375:61;21428:7;21419:6;21408:9;21404:22;21375:61;:::i;:::-;21365:71;;21321:125;21108:345;;;;:::o;21459:118::-;21546:24;21564:5;21546:24;:::i;:::-;21541:3;21534:37;21459:118;;:::o;21583:222::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21727:71;21795:1;21784:9;21780:17;21771:6;21727:71;:::i;:::-;21583:222;;;;:::o;21811:180::-;21859:77;21856:1;21849:88;21956:4;21953:1;21946:15;21980:4;21977:1;21970:15;21997:320;22041:6;22078:1;22072:4;22068:12;22058:22;;22125:1;22119:4;22115:12;22146:18;22136:81;;22202:4;22194:6;22190:17;22180:27;;22136:81;22264:2;22256:6;22253:14;22233:18;22230:38;22227:84;;22283:18;;:::i;:::-;22227:84;22048:269;21997:320;;;:::o;22323:103::-;22386:7;22415:5;22404:16;;22323:103;;;:::o;22432:194::-;22508:9;22541:79;22559:60;22568:50;22612:5;22568:50;:::i;:::-;22559:60;:::i;:::-;22541:79;:::i;:::-;22528:92;;22432:194;;;:::o;22632:183::-;22745:63;22802:5;22745:63;:::i;:::-;22740:3;22733:76;22632:183;;:::o;22821:384::-;22968:4;23006:2;22995:9;22991:18;22983:26;;23019:71;23087:1;23076:9;23072:17;23063:6;23019:71;:::i;:::-;23100:98;23194:2;23183:9;23179:18;23170:6;23100:98;:::i;:::-;22821:384;;;;;:::o;23211:77::-;23248:7;23277:5;23266:16;;23211:77;;;:::o;23294:118::-;23381:24;23399:5;23381:24;:::i;:::-;23376:3;23369:37;23294:118;;:::o;23418:332::-;23539:4;23577:2;23566:9;23562:18;23554:26;;23590:71;23658:1;23647:9;23643:17;23634:6;23590:71;:::i;:::-;23671:72;23739:2;23728:9;23724:18;23715:6;23671:72;:::i;:::-;23418:332;;;;;:::o;23756:122::-;23829:24;23847:5;23829:24;:::i;:::-;23822:5;23819:35;23809:63;;23868:1;23865;23858:12;23809:63;23756:122;:::o;23884:143::-;23941:5;23972:6;23966:13;23957:22;;23988:33;24015:5;23988:33;:::i;:::-;23884:143;;;;:::o;24033:351::-;24103:6;24152:2;24140:9;24131:7;24127:23;24123:32;24120:119;;;24158:79;;:::i;:::-;24120:119;24278:1;24303:64;24359:7;24350:6;24339:9;24335:22;24303:64;:::i;:::-;24293:74;;24249:128;24033:351;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/UniswapV2Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV2Flashloan.sol\":{\"keccak256\":\"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2\",\"dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb\"]},\"src/57_Flashloan/test/UniswapV2Flashloan.t.sol\":{\"keccak256\":\"0xa642f1a1f2f237c1110c82002c26b95dc2bba4188f2c56a185661924f620744c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e62b12f8c1b9d995bf13f40f4b5d73c479eaa738693312f24c54e92d68bb00\",\"dweb:/ipfs/QmbMgaKeqGFWXWMHvnAyvn6DETebh4nift1E3xAMGDBKup\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/UniswapV2Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV2Flashloan.sol":{"keccak256":"0x2184775669c211e1093a316ffcd5827fc1356af2b117118b57adbdc500b29892","urls":["bzz-raw://38d4422eb48f604543b782c0520ee2ab0ba890b50fac3aeb461a52ba6e3a81d2","dweb:/ipfs/QmcRJb23jEMD4RuuendufmBrx9p49Gm5u2UJ7CYrf3B8Xb"],"license":"MIT"},"src/57_Flashloan/test/UniswapV2Flashloan.t.sol":{"keccak256":"0xa642f1a1f2f237c1110c82002c26b95dc2bba4188f2c56a185661924f620744c","urls":["bzz-raw://08e62b12f8c1b9d995bf13f40f4b5d73c479eaa738693312f24c54e92d68bb00","dweb:/ipfs/QmbMgaKeqGFWXWMHvnAyvn6DETebh4nift1E3xAMGDBKup"],"license":"MIT"}},"version":1},"id":119} \ No newline at end of file diff --git a/out/UniswapV3Flashloan.sol/IUniswapV3FlashCallback.json b/out/UniswapV3Flashloan.sol/IUniswapV3FlashCallback.json index dceb7dd4..c2377c9a 100644 --- a/out/UniswapV3Flashloan.sol/IUniswapV3FlashCallback.json +++ b/out/UniswapV3Flashloan.sol/IUniswapV3FlashCallback.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"uniswapV3FlashCallback","inputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV3FlashCallback(uint256,uint256,bytes)":"e9cbafb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3FlashCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"params\":{\"data\":\"\\u901a\\u8fc7 IUniswapV3PoolActions#flash \\u8c03\\u7528\\u7531\\u8c03\\u7528\\u8005\\u4f20\\u9012\\u7684\\u4efb\\u4f55\\u6570\\u636e\",\"fee0\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token0 \\u7684\\u8d39\\u7528\\u91d1\\u989d\",\"fee1\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token1 \\u7684\\u8d39\\u7528\\u91d1\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"notice\":\"\\u5728\\u5b9e\\u73b0\\u4e2d\\uff0c\\u4f60\\u5fc5\\u987b\\u507f\\u8fd8\\u6c60\\u4e2d\\u7531 flash \\u53d1\\u9001\\u7684\\u4ee3\\u5e01\\u53ca\\u8ba1\\u7b97\\u51fa\\u7684\\u8d39\\u7528\\u91d1\\u989d\\u3002 \\u8c03\\u7528\\u6b64\\u65b9\\u6cd5\\u7684\\u5408\\u7ea6\\u5fc5\\u987b\\u7ecf\\u7531\\u5b98\\u65b9 UniswapV3Factory \\u90e8\\u7f72\\u7684 UniswapV3Pool \\u68c0\\u67e5\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":\"IUniswapV3FlashCallback\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3FlashCallback"}],"devdoc":{"kind":"dev","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"params":{"data":"通过 IUniswapV3PoolActions#flash 调用由调用者传递的任何数据","fee0":"闪电贷结束时,应支付给池的 token0 的费用金额","fee1":"闪电贷结束时,应支付给池的 token1 的费用金额"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"notice":"在实现中,你必须偿还池中由 flash 发送的代币及计算出的费用金额。 调用此方法的合约必须经由官方 UniswapV3Factory 部署的 UniswapV3Pool 检查。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV3Flashloan.sol":"IUniswapV3FlashCallback"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"}},"version":1},"id":123} \ No newline at end of file +{"abi":[{"type":"function","name":"uniswapV3FlashCallback","inputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV3FlashCallback(uint256,uint256,bytes)":"e9cbafb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3FlashCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"params\":{\"data\":\"\\u901a\\u8fc7 IUniswapV3PoolActions#flash \\u8c03\\u7528\\u7531\\u8c03\\u7528\\u8005\\u4f20\\u9012\\u7684\\u4efb\\u4f55\\u6570\\u636e\",\"fee0\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token0 \\u7684\\u8d39\\u7528\\u91d1\\u989d\",\"fee1\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token1 \\u7684\\u8d39\\u7528\\u91d1\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"notice\":\"\\u5728\\u5b9e\\u73b0\\u4e2d\\uff0c\\u4f60\\u5fc5\\u987b\\u507f\\u8fd8\\u6c60\\u4e2d\\u7531 flash \\u53d1\\u9001\\u7684\\u4ee3\\u5e01\\u53ca\\u8ba1\\u7b97\\u51fa\\u7684\\u8d39\\u7528\\u91d1\\u989d\\u3002 \\u8c03\\u7528\\u6b64\\u65b9\\u6cd5\\u7684\\u5408\\u7ea6\\u5fc5\\u987b\\u7ecf\\u7531\\u5b98\\u65b9 UniswapV3Factory \\u90e8\\u7f72\\u7684 UniswapV3Pool \\u68c0\\u67e5\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":\"IUniswapV3FlashCallback\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3FlashCallback"}],"devdoc":{"kind":"dev","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"params":{"data":"通过 IUniswapV3PoolActions#flash 调用由调用者传递的任何数据","fee0":"闪电贷结束时,应支付给池的 token0 的费用金额","fee1":"闪电贷结束时,应支付给池的 token1 的费用金额"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"notice":"在实现中,你必须偿还池中由 flash 发送的代币及计算出的费用金额。 调用此方法的合约必须经由官方 UniswapV3Factory 部署的 UniswapV3Pool 检查。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV3Flashloan.sol":"IUniswapV3FlashCallback"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/out/UniswapV3Flashloan.sol/UniswapV3Flashloan.json b/out/UniswapV3Flashloan.sol/UniswapV3Flashloan.json index c580a2c3..0466cc19 100644 --- a/out/UniswapV3Flashloan.sol/UniswapV3Flashloan.json +++ b/out/UniswapV3Flashloan.sol/UniswapV3Flashloan.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getPool","inputs":[{"name":"_token0","type":"address","internalType":"address"},{"name":"_token1","type":"address","internalType":"address"},{"name":"_fee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"uniswapV3FlashCallback","inputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033","sourceMap":"823:1721:123:-:0;;;1276:81;;;;;;;;;;1322:27;1010:42;1090;1172:4;1322:7;;;:27;;:::i;:::-;1300:50;;;;;;;;;;823:1721;;1363:342;1478:7;1497:34;1534:92;1570:7;1591;1612:4;1534:22;;;:92;;:::i;:::-;1497:129;;1643:55;930:42;1690:7;1643:26;;;:55;;:::i;:::-;1636:62;;;1363:342;;;;;:::o;1615:274:121:-;1732:14;;:::i;:::-;1771:6;1762:15;;:6;:15;;;1758:56;;;1799:6;1807;1779:35;;;;;;;;1758:56;1831:51;;;;;;;;1848:6;1831:51;;;;;;1864:6;1831:51;;;;;;1877:3;1831:51;;;;;1824:58;;1615:274;;;;;:::o;1895:606::-;2001:12;2046:3;:10;;;2033:23;;:3;:10;;;:23;;;2025:32;;;;;;2264:7;2322:3;:10;;;2334:3;:10;;;2346:3;:7;;;2311:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2301:54;;;;;;1446:66;2385:19;;2181:249;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2146:306;;;;;;2120:350;;2067:427;;1895:606;;;;:::o;823:1721:123:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:91::-;401:7;441:8;434:5;430:20;419:31;;365:91;;;:::o;462:115::-;547:23;564:5;547:23;:::i;:::-;542:3;535:36;462:115;;:::o;583:438::-;730:4;768:2;757:9;753:18;745:26;;781:71;849:1;838:9;834:17;825:6;781:71;:::i;:::-;862:72;930:2;919:9;915:18;906:6;862:72;:::i;:::-;944:70;1010:2;999:9;995:18;986:6;944:70;:::i;:::-;583:438;;;;;;:::o;1027:148::-;1129:11;1166:3;1151:18;;1027:148;;;;:::o;1181:214::-;1321:66;1317:1;1309:6;1305:14;1298:90;1181:214;:::o;1401:400::-;1561:3;1582:84;1664:1;1659:3;1582:84;:::i;:::-;1575:91;;1675:93;1764:3;1675:93;:::i;:::-;1793:1;1788:3;1784:11;1777:18;;1401:400;;;:::o;1807:94::-;1840:8;1888:5;1884:2;1880:14;1859:35;;1807:94;;;:::o;1907:::-;1946:7;1975:20;1989:5;1975:20;:::i;:::-;1964:31;;1907:94;;;:::o;2007:100::-;2046:7;2075:26;2095:5;2075:26;:::i;:::-;2064:37;;2007:100;;;:::o;2113:157::-;2218:45;2238:24;2256:5;2238:24;:::i;:::-;2218:45;:::i;:::-;2213:3;2206:58;2113:157;;:::o;2276:77::-;2313:7;2342:5;2331:16;;2276:77;;;:::o;2359:79::-;2398:7;2427:5;2416:16;;2359:79;;;:::o;2444:157::-;2549:45;2569:24;2587:5;2569:24;:::i;:::-;2549:45;:::i;:::-;2544:3;2537:58;2444:157;;:::o;2607:804::-;2876:3;2898:148;3042:3;2898:148;:::i;:::-;2891:155;;3056:75;3127:3;3118:6;3056:75;:::i;:::-;3156:2;3151:3;3147:12;3140:19;;3169:75;3240:3;3231:6;3169:75;:::i;:::-;3269:2;3264:3;3260:12;3253:19;;3282:75;3353:3;3344:6;3282:75;:::i;:::-;3382:2;3377:3;3373:12;3366:19;;3402:3;3395:10;;2607:804;;;;;;:::o;823:1721:123:-;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033","sourceMap":"823:1721:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:342;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1734:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1990:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1363:342;1478:7;1497:34;1534:92;1570:7;1591;1612:4;1534:22;:92::i;:::-;1497:129;;1643:55;930:42;1690:7;1643:26;:55::i;:::-;1636:62;;;1363:342;;;;;:::o;1734:182::-;1789:17;1090:42;1826:10;1809:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1789:48;;1862:4;1847:26;;;1882:4;1889:1;1892:10;1904:4;1847:62;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:137;1734:182;:::o;1990:552::-;2195:4;2173:27;;:10;:27;;;2165:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2265:19;2286:18;2319:4;;2308:36;;;;;;;:::i;:::-;2264:80;;;;1090:42;2406:19;;:11;:19;;;2398:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1090:42;2488:13;;;2510:4;2530;2517:10;:17;;;;:::i;:::-;2488:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2104:438;;1990:552;;;;:::o;1615:274:121:-;1732:14;;:::i;:::-;1771:6;1762:15;;:6;:15;;;1758:56;;;1799:6;1807;1779:35;;;;;;;;1758:56;1831:51;;;;;;;;1848:6;1831:51;;;;;;1864:6;1831:51;;;;;;1877:3;1831:51;;;;;1824:58;;1615:274;;;;;:::o;1895:606::-;2001:12;2046:3;:10;;;2033:23;;:3;:10;;;:23;;;2025:32;;;;;;2264:7;2322:3;:10;;;2334:3;:10;;;2346:3;:7;;;2311:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2301:54;;;;;;1446:66;2385:19;;2181:249;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2146:306;;;;;;2120:350;;2067:427;;1895:606;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:145:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:91::-;877:7;917:8;910:5;906:20;895:31;;841:91;;;:::o;938:120::-;1010:23;1027:5;1010:23;:::i;:::-;1003:5;1000:34;990:62;;1048:1;1045;1038:12;990:62;938:120;:::o;1064:137::-;1109:5;1147:6;1134:20;1125:29;;1163:32;1189:5;1163:32;:::i;:::-;1064:137;;;;:::o;1207:617::-;1283:6;1291;1299;1348:2;1336:9;1327:7;1323:23;1319:32;1316:119;;;1354:79;;:::i;:::-;1316:119;1474:1;1499:53;1544:7;1535:6;1524:9;1520:22;1499:53;:::i;:::-;1489:63;;1445:117;1601:2;1627:53;1672:7;1663:6;1652:9;1648:22;1627:53;:::i;:::-;1617:63;;1572:118;1729:2;1755:52;1799:7;1790:6;1779:9;1775:22;1755:52;:::i;:::-;1745:62;;1700:117;1207:617;;;;;:::o;1830:118::-;1917:24;1935:5;1917:24;:::i;:::-;1912:3;1905:37;1830:118;;:::o;1954:222::-;2047:4;2085:2;2074:9;2070:18;2062:26;;2098:71;2166:1;2155:9;2151:17;2142:6;2098:71;:::i;:::-;1954:222;;;;:::o;2182:77::-;2219:7;2248:5;2237:16;;2182:77;;;:::o;2265:122::-;2338:24;2356:5;2338:24;:::i;:::-;2331:5;2328:35;2318:63;;2377:1;2374;2367:12;2318:63;2265:122;:::o;2393:139::-;2439:5;2477:6;2464:20;2455:29;;2493:33;2520:5;2493:33;:::i;:::-;2393:139;;;;:::o;2538:329::-;2597:6;2646:2;2634:9;2625:7;2621:23;2617:32;2614:119;;;2652:79;;:::i;:::-;2614:119;2772:1;2797:53;2842:7;2833:6;2822:9;2818:22;2797:53;:::i;:::-;2787:63;;2743:117;2538:329;;;;:::o;2873:117::-;2982:1;2979;2972:12;2996:117;3105:1;3102;3095:12;3119:117;3228:1;3225;3218:12;3255:552;3312:8;3322:6;3372:3;3365:4;3357:6;3353:17;3349:27;3339:122;;3380:79;;:::i;:::-;3339:122;3493:6;3480:20;3470:30;;3523:18;3515:6;3512:30;3509:117;;;3545:79;;:::i;:::-;3509:117;3659:4;3651:6;3647:17;3635:29;;3713:3;3705:4;3697:6;3693:17;3683:8;3679:32;3676:41;3673:128;;;3720:79;;:::i;:::-;3673:128;3255:552;;;;;:::o;3813:817::-;3901:6;3909;3917;3925;3974:2;3962:9;3953:7;3949:23;3945:32;3942:119;;;3980:79;;:::i;:::-;3942:119;4100:1;4125:53;4170:7;4161:6;4150:9;4146:22;4125:53;:::i;:::-;4115:63;;4071:117;4227:2;4253:53;4298:7;4289:6;4278:9;4274:22;4253:53;:::i;:::-;4243:63;;4198:118;4383:2;4372:9;4368:18;4355:32;4414:18;4406:6;4403:30;4400:117;;;4436:79;;:::i;:::-;4400:117;4549:64;4605:7;4596:6;4585:9;4581:22;4549:64;:::i;:::-;4531:82;;;;4326:297;3813:817;;;;;;;:::o;4636:118::-;4723:24;4741:5;4723:24;:::i;:::-;4718:3;4711:37;4636:118;;:::o;4760:332::-;4881:4;4919:2;4908:9;4904:18;4896:26;;4932:71;5000:1;4989:9;4985:17;4976:6;4932:71;:::i;:::-;5013:72;5081:2;5070:9;5066:18;5057:6;5013:72;:::i;:::-;4760:332;;;;;:::o;5098:85::-;5143:7;5172:5;5161:16;;5098:85;;;:::o;5189:60::-;5217:3;5238:5;5231:12;;5189:60;;;:::o;5255:158::-;5313:9;5346:61;5364:42;5373:32;5399:5;5373:32;:::i;:::-;5364:42;:::i;:::-;5346:61;:::i;:::-;5333:74;;5255:158;;;:::o;5419:147::-;5514:45;5553:5;5514:45;:::i;:::-;5509:3;5502:58;5419:147;;:::o;5572:98::-;5623:6;5657:5;5651:12;5641:22;;5572:98;;;:::o;5676:168::-;5759:11;5793:6;5788:3;5781:19;5833:4;5828:3;5824:14;5809:29;;5676:168;;;;:::o;5850:139::-;5939:6;5934:3;5929;5923:23;5980:1;5971:6;5966:3;5962:16;5955:27;5850:139;;;:::o;5995:102::-;6036:6;6087:2;6083:7;6078:2;6071:5;6067:14;6063:28;6053:38;;5995:102;;;:::o;6103:373::-;6189:3;6217:38;6249:5;6217:38;:::i;:::-;6271:70;6334:6;6329:3;6271:70;:::i;:::-;6264:77;;6350:65;6408:6;6403:3;6396:4;6389:5;6385:16;6350:65;:::i;:::-;6440:29;6462:6;6440:29;:::i;:::-;6435:3;6431:39;6424:46;;6193:283;6103:373;;;;:::o;6482:656::-;6685:4;6723:3;6712:9;6708:19;6700:27;;6737:71;6805:1;6794:9;6790:17;6781:6;6737:71;:::i;:::-;6818:80;6894:2;6883:9;6879:18;6870:6;6818:80;:::i;:::-;6908:72;6976:2;6965:9;6961:18;6952:6;6908:72;:::i;:::-;7027:9;7021:4;7017:20;7012:2;7001:9;6997:18;6990:48;7055:76;7126:4;7117:6;7055:76;:::i;:::-;7047:84;;6482:656;;;;;;;:::o;7144:169::-;7228:11;7262:6;7257:3;7250:19;7302:4;7297:3;7293:14;7278:29;;7144:169;;;;:::o;7319:164::-;7459:16;7455:1;7447:6;7443:14;7436:40;7319:164;:::o;7489:366::-;7631:3;7652:67;7716:2;7711:3;7652:67;:::i;:::-;7645:74;;7728:93;7817:3;7728:93;:::i;:::-;7846:2;7841:3;7837:12;7830:19;;7489:366;;;:::o;7861:419::-;8027:4;8065:2;8054:9;8050:18;8042:26;;8114:9;8108:4;8104:20;8100:1;8089:9;8085:17;8078:47;8142:131;8268:4;8142:131;:::i;:::-;8134:139;;7861:419;;;:::o;8286:104::-;8331:7;8360:24;8378:5;8360:24;:::i;:::-;8349:35;;8286:104;;;:::o;8396:138::-;8477:32;8503:5;8477:32;:::i;:::-;8470:5;8467:43;8457:71;;8524:1;8521;8514:12;8457:71;8396:138;:::o;8540:155::-;8594:5;8632:6;8619:20;8610:29;;8648:41;8683:5;8648:41;:::i;:::-;8540:155;;;;:::o;8701:490::-;8777:6;8785;8834:2;8822:9;8813:7;8809:23;8805:32;8802:119;;;8840:79;;:::i;:::-;8802:119;8960:1;8985:61;9038:7;9029:6;9018:9;9014:22;8985:61;:::i;:::-;8975:71;;8931:125;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8701:490;;;;;:::o;9197:170::-;9337:22;9333:1;9325:6;9321:14;9314:46;9197:170;:::o;9373:366::-;9515:3;9536:67;9600:2;9595:3;9536:67;:::i;:::-;9529:74;;9612:93;9701:3;9612:93;:::i;:::-;9730:2;9725:3;9721:12;9714:19;;9373:366;;;:::o;9745:419::-;9911:4;9949:2;9938:9;9934:18;9926:26;;9998:9;9992:4;9988:20;9984:1;9973:9;9969:17;9962:47;10026:131;10152:4;10026:131;:::i;:::-;10018:139;;9745:419;;;:::o;10170:180::-;10218:77;10215:1;10208:88;10315:4;10312:1;10305:15;10339:4;10336:1;10329:15;10356:191;10396:3;10415:20;10433:1;10415:20;:::i;:::-;10410:25;;10449:20;10467:1;10449:20;:::i;:::-;10444:25;;10492:1;10489;10485:9;10478:16;;10513:3;10510:1;10507:10;10504:36;;;10520:18;;:::i;:::-;10504:36;10356:191;;;;:::o;10553:90::-;10587:7;10630:5;10623:13;10616:21;10605:32;;10553:90;;;:::o;10649:116::-;10719:21;10734:5;10719:21;:::i;:::-;10712:5;10709:32;10699:60;;10755:1;10752;10745:12;10699:60;10649:116;:::o;10771:137::-;10825:5;10856:6;10850:13;10841:22;;10872:30;10896:5;10872:30;:::i;:::-;10771:137;;;;:::o;10914:345::-;10981:6;11030:2;11018:9;11009:7;11005:23;11001:32;10998:119;;;11036:79;;:::i;:::-;10998:119;11156:1;11181:61;11234:7;11225:6;11214:9;11210:22;11181:61;:::i;:::-;11171:71;;11127:125;10914:345;;;;:::o;11265:115::-;11350:23;11367:5;11350:23;:::i;:::-;11345:3;11338:36;11265:115;;:::o;11386:438::-;11533:4;11571:2;11560:9;11556:18;11548:26;;11584:71;11652:1;11641:9;11637:17;11628:6;11584:71;:::i;:::-;11665:72;11733:2;11722:9;11718:18;11709:6;11665:72;:::i;:::-;11747:70;11813:2;11802:9;11798:18;11789:6;11747:70;:::i;:::-;11386:438;;;;;;:::o;11830:148::-;11932:11;11969:3;11954:18;;11830:148;;;;:::o;11984:214::-;12124:66;12120:1;12112:6;12108:14;12101:90;11984:214;:::o;12204:400::-;12364:3;12385:84;12467:1;12462:3;12385:84;:::i;:::-;12378:91;;12478:93;12567:3;12478:93;:::i;:::-;12596:1;12591:3;12587:11;12580:18;;12204:400;;;:::o;12610:94::-;12643:8;12691:5;12687:2;12683:14;12662:35;;12610:94;;;:::o;12710:::-;12749:7;12778:20;12792:5;12778:20;:::i;:::-;12767:31;;12710:94;;;:::o;12810:100::-;12849:7;12878:26;12898:5;12878:26;:::i;:::-;12867:37;;12810:100;;;:::o;12916:157::-;13021:45;13041:24;13059:5;13041:24;:::i;:::-;13021:45;:::i;:::-;13016:3;13009:58;12916:157;;:::o;13079:77::-;13116:7;13145:5;13134:16;;13079:77;;;:::o;13162:79::-;13201:7;13230:5;13219:16;;13162:79;;;:::o;13247:157::-;13352:45;13372:24;13390:5;13372:24;:::i;:::-;13352:45;:::i;:::-;13347:3;13340:58;13247:157;;:::o;13410:804::-;13679:3;13701:148;13845:3;13701:148;:::i;:::-;13694:155;;13859:75;13930:3;13921:6;13859:75;:::i;:::-;13959:2;13954:3;13950:12;13943:19;;13972:75;14043:3;14034:6;13972:75;:::i;:::-;14072:2;14067:3;14063:12;14056:19;;14085:75;14156:3;14147:6;14085:75;:::i;:::-;14185:2;14180:3;14176:12;14169:19;;14205:3;14198:10;;13410:804;;;;;;:::o","linkReferences":{},"immutableReferences":{"62083":[{"start":285,"length":32},{"start":429,"length":32},{"start":770,"length":32}]}},"methodIdentifiers":{"flashloan(uint256)":"65b6c4f0","getPool(address,address,uint24)":"1698ee82","uniswapV3FlashCallback(uint256,uint256,bytes)":"e9cbafb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"_fee\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3FlashCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"params\":{\"data\":\"\\u901a\\u8fc7 IUniswapV3PoolActions#flash \\u8c03\\u7528\\u7531\\u8c03\\u7528\\u8005\\u4f20\\u9012\\u7684\\u4efb\\u4f55\\u6570\\u636e\",\"fee0\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token0 \\u7684\\u8d39\\u7528\\u91d1\\u989d\",\"fee1\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token1 \\u7684\\u8d39\\u7528\\u91d1\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"notice\":\"\\u5728\\u5b9e\\u73b0\\u4e2d\\uff0c\\u4f60\\u5fc5\\u987b\\u507f\\u8fd8\\u6c60\\u4e2d\\u7531 flash \\u53d1\\u9001\\u7684\\u4ee3\\u5e01\\u53ca\\u8ba1\\u7b97\\u51fa\\u7684\\u8d39\\u7528\\u91d1\\u989d\\u3002 \\u8c03\\u7528\\u6b64\\u65b9\\u6cd5\\u7684\\u5408\\u7ea6\\u5fc5\\u987b\\u7ecf\\u7531\\u5b98\\u65b9 UniswapV3Factory \\u90e8\\u7f72\\u7684 UniswapV3Pool \\u68c0\\u67e5\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":\"UniswapV3Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint24","name":"_fee","type":"uint24"}],"stateMutability":"pure","type":"function","name":"getPool","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3FlashCallback"}],"devdoc":{"kind":"dev","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"params":{"data":"通过 IUniswapV3PoolActions#flash 调用由调用者传递的任何数据","fee0":"闪电贷结束时,应支付给池的 token0 的费用金额","fee1":"闪电贷结束时,应支付给池的 token1 的费用金额"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"notice":"在实现中,你必须偿还池中由 flash 发送的代币及计算出的费用金额。 调用此方法的合约必须经由官方 UniswapV3Factory 部署的 UniswapV3Pool 检查。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV3Flashloan.sol":"UniswapV3Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"}},"version":1},"id":123} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"flashloan","inputs":[{"name":"wethAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getPool","inputs":[{"name":"_token0","type":"address","internalType":"address"},{"name":"_token1","type":"address","internalType":"address"},{"name":"_fee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"uniswapV3FlashCallback","inputs":[{"name":"fee0","type":"uint256","internalType":"uint256"},{"name":"fee1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033","sourceMap":"823:1721:117:-:0;;;1276:81;;;;;;;;;;1322:27;1010:42;1090;1172:4;1322:7;;;:27;;:::i;:::-;1300:50;;;;;;;;;;823:1721;;1363:342;1478:7;1497:34;1534:92;1570:7;1591;1612:4;1534:22;;;:92;;:::i;:::-;1497:129;;1643:55;930:42;1690:7;1643:26;;;:55;;:::i;:::-;1636:62;;;1363:342;;;;;:::o;1615:274:115:-;1732:14;;:::i;:::-;1771:6;1762:15;;:6;:15;;;1758:56;;;1799:6;1807;1779:35;;;;;;;;1758:56;1831:51;;;;;;;;1848:6;1831:51;;;;;;1864:6;1831:51;;;;;;1877:3;1831:51;;;;;1824:58;;1615:274;;;;;:::o;1895:606::-;2001:12;2046:3;:10;;;2033:23;;:3;:10;;;:23;;;2025:32;;;;;;2264:7;2322:3;:10;;;2334:3;:10;;;2346:3;:7;;;2311:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2301:54;;;;;;1446:66;2385:19;;2181:249;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2146:306;;;;;;2120:350;;2067:427;;1895:606;;;;:::o;823:1721:117:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:91::-;401:7;441:8;434:5;430:20;419:31;;365:91;;;:::o;462:115::-;547:23;564:5;547:23;:::i;:::-;542:3;535:36;462:115;;:::o;583:438::-;730:4;768:2;757:9;753:18;745:26;;781:71;849:1;838:9;834:17;825:6;781:71;:::i;:::-;862:72;930:2;919:9;915:18;906:6;862:72;:::i;:::-;944:70;1010:2;999:9;995:18;986:6;944:70;:::i;:::-;583:438;;;;;;:::o;1027:148::-;1129:11;1166:3;1151:18;;1027:148;;;;:::o;1181:214::-;1321:66;1317:1;1309:6;1305:14;1298:90;1181:214;:::o;1401:400::-;1561:3;1582:84;1664:1;1659:3;1582:84;:::i;:::-;1575:91;;1675:93;1764:3;1675:93;:::i;:::-;1793:1;1788:3;1784:11;1777:18;;1401:400;;;:::o;1807:94::-;1840:8;1888:5;1884:2;1880:14;1859:35;;1807:94;;;:::o;1907:::-;1946:7;1975:20;1989:5;1975:20;:::i;:::-;1964:31;;1907:94;;;:::o;2007:100::-;2046:7;2075:26;2095:5;2075:26;:::i;:::-;2064:37;;2007:100;;;:::o;2113:157::-;2218:45;2238:24;2256:5;2238:24;:::i;:::-;2218:45;:::i;:::-;2213:3;2206:58;2113:157;;:::o;2276:77::-;2313:7;2342:5;2331:16;;2276:77;;;:::o;2359:79::-;2398:7;2427:5;2416:16;;2359:79;;;:::o;2444:157::-;2549:45;2569:24;2587:5;2569:24;:::i;:::-;2549:45;:::i;:::-;2544:3;2537:58;2444:157;;:::o;2607:804::-;2876:3;2898:148;3042:3;2898:148;:::i;:::-;2891:155;;3056:75;3127:3;3118:6;3056:75;:::i;:::-;3156:2;3151:3;3147:12;3140:19;;3169:75;3240:3;3231:6;3169:75;:::i;:::-;3269:2;3264:3;3260:12;3253:19;;3282:75;3353:3;3344:6;3282:75;:::i;:::-;3382:2;3377:3;3373:12;3366:19;;3402:3;3395:10;;2607:804;;;;;;:::o;823:1721:117:-;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033","sourceMap":"823:1721:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:342;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1734:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1990:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1363:342;1478:7;1497:34;1534:92;1570:7;1591;1612:4;1534:22;:92::i;:::-;1497:129;;1643:55;930:42;1690:7;1643:26;:55::i;:::-;1636:62;;;1363:342;;;;;:::o;1734:182::-;1789:17;1090:42;1826:10;1809:28;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1789:48;;1862:4;1847:26;;;1882:4;1889:1;1892:10;1904:4;1847:62;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:137;1734:182;:::o;1990:552::-;2195:4;2173:27;;:10;:27;;;2165:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2265:19;2286:18;2319:4;;2308:36;;;;;;;:::i;:::-;2264:80;;;;1090:42;2406:19;;:11;:19;;;2398:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1090:42;2488:13;;;2510:4;2530;2517:10;:17;;;;:::i;:::-;2488:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2104:438;;1990:552;;;;:::o;1615:274:115:-;1732:14;;:::i;:::-;1771:6;1762:15;;:6;:15;;;1758:56;;;1799:6;1807;1779:35;;;;;;;;1758:56;1831:51;;;;;;;;1848:6;1831:51;;;;;;1864:6;1831:51;;;;;;1877:3;1831:51;;;;;1824:58;;1615:274;;;;;:::o;1895:606::-;2001:12;2046:3;:10;;;2033:23;;:3;:10;;;:23;;;2025:32;;;;;;2264:7;2322:3;:10;;;2334:3;:10;;;2346:3;:7;;;2311:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2301:54;;;;;;1446:66;2385:19;;2181:249;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2146:306;;;;;;2120:350;;2067:427;;1895:606;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:139:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:91::-;877:7;917:8;910:5;906:20;895:31;;841:91;;;:::o;938:120::-;1010:23;1027:5;1010:23;:::i;:::-;1003:5;1000:34;990:62;;1048:1;1045;1038:12;990:62;938:120;:::o;1064:137::-;1109:5;1147:6;1134:20;1125:29;;1163:32;1189:5;1163:32;:::i;:::-;1064:137;;;;:::o;1207:617::-;1283:6;1291;1299;1348:2;1336:9;1327:7;1323:23;1319:32;1316:119;;;1354:79;;:::i;:::-;1316:119;1474:1;1499:53;1544:7;1535:6;1524:9;1520:22;1499:53;:::i;:::-;1489:63;;1445:117;1601:2;1627:53;1672:7;1663:6;1652:9;1648:22;1627:53;:::i;:::-;1617:63;;1572:118;1729:2;1755:52;1799:7;1790:6;1779:9;1775:22;1755:52;:::i;:::-;1745:62;;1700:117;1207:617;;;;;:::o;1830:118::-;1917:24;1935:5;1917:24;:::i;:::-;1912:3;1905:37;1830:118;;:::o;1954:222::-;2047:4;2085:2;2074:9;2070:18;2062:26;;2098:71;2166:1;2155:9;2151:17;2142:6;2098:71;:::i;:::-;1954:222;;;;:::o;2182:77::-;2219:7;2248:5;2237:16;;2182:77;;;:::o;2265:122::-;2338:24;2356:5;2338:24;:::i;:::-;2331:5;2328:35;2318:63;;2377:1;2374;2367:12;2318:63;2265:122;:::o;2393:139::-;2439:5;2477:6;2464:20;2455:29;;2493:33;2520:5;2493:33;:::i;:::-;2393:139;;;;:::o;2538:329::-;2597:6;2646:2;2634:9;2625:7;2621:23;2617:32;2614:119;;;2652:79;;:::i;:::-;2614:119;2772:1;2797:53;2842:7;2833:6;2822:9;2818:22;2797:53;:::i;:::-;2787:63;;2743:117;2538:329;;;;:::o;2873:117::-;2982:1;2979;2972:12;2996:117;3105:1;3102;3095:12;3119:117;3228:1;3225;3218:12;3255:552;3312:8;3322:6;3372:3;3365:4;3357:6;3353:17;3349:27;3339:122;;3380:79;;:::i;:::-;3339:122;3493:6;3480:20;3470:30;;3523:18;3515:6;3512:30;3509:117;;;3545:79;;:::i;:::-;3509:117;3659:4;3651:6;3647:17;3635:29;;3713:3;3705:4;3697:6;3693:17;3683:8;3679:32;3676:41;3673:128;;;3720:79;;:::i;:::-;3673:128;3255:552;;;;;:::o;3813:817::-;3901:6;3909;3917;3925;3974:2;3962:9;3953:7;3949:23;3945:32;3942:119;;;3980:79;;:::i;:::-;3942:119;4100:1;4125:53;4170:7;4161:6;4150:9;4146:22;4125:53;:::i;:::-;4115:63;;4071:117;4227:2;4253:53;4298:7;4289:6;4278:9;4274:22;4253:53;:::i;:::-;4243:63;;4198:118;4383:2;4372:9;4368:18;4355:32;4414:18;4406:6;4403:30;4400:117;;;4436:79;;:::i;:::-;4400:117;4549:64;4605:7;4596:6;4585:9;4581:22;4549:64;:::i;:::-;4531:82;;;;4326:297;3813:817;;;;;;;:::o;4636:118::-;4723:24;4741:5;4723:24;:::i;:::-;4718:3;4711:37;4636:118;;:::o;4760:332::-;4881:4;4919:2;4908:9;4904:18;4896:26;;4932:71;5000:1;4989:9;4985:17;4976:6;4932:71;:::i;:::-;5013:72;5081:2;5070:9;5066:18;5057:6;5013:72;:::i;:::-;4760:332;;;;;:::o;5098:85::-;5143:7;5172:5;5161:16;;5098:85;;;:::o;5189:60::-;5217:3;5238:5;5231:12;;5189:60;;;:::o;5255:158::-;5313:9;5346:61;5364:42;5373:32;5399:5;5373:32;:::i;:::-;5364:42;:::i;:::-;5346:61;:::i;:::-;5333:74;;5255:158;;;:::o;5419:147::-;5514:45;5553:5;5514:45;:::i;:::-;5509:3;5502:58;5419:147;;:::o;5572:98::-;5623:6;5657:5;5651:12;5641:22;;5572:98;;;:::o;5676:168::-;5759:11;5793:6;5788:3;5781:19;5833:4;5828:3;5824:14;5809:29;;5676:168;;;;:::o;5850:139::-;5939:6;5934:3;5929;5923:23;5980:1;5971:6;5966:3;5962:16;5955:27;5850:139;;;:::o;5995:102::-;6036:6;6087:2;6083:7;6078:2;6071:5;6067:14;6063:28;6053:38;;5995:102;;;:::o;6103:373::-;6189:3;6217:38;6249:5;6217:38;:::i;:::-;6271:70;6334:6;6329:3;6271:70;:::i;:::-;6264:77;;6350:65;6408:6;6403:3;6396:4;6389:5;6385:16;6350:65;:::i;:::-;6440:29;6462:6;6440:29;:::i;:::-;6435:3;6431:39;6424:46;;6193:283;6103:373;;;;:::o;6482:656::-;6685:4;6723:3;6712:9;6708:19;6700:27;;6737:71;6805:1;6794:9;6790:17;6781:6;6737:71;:::i;:::-;6818:80;6894:2;6883:9;6879:18;6870:6;6818:80;:::i;:::-;6908:72;6976:2;6965:9;6961:18;6952:6;6908:72;:::i;:::-;7027:9;7021:4;7017:20;7012:2;7001:9;6997:18;6990:48;7055:76;7126:4;7117:6;7055:76;:::i;:::-;7047:84;;6482:656;;;;;;;:::o;7144:169::-;7228:11;7262:6;7257:3;7250:19;7302:4;7297:3;7293:14;7278:29;;7144:169;;;;:::o;7319:164::-;7459:16;7455:1;7447:6;7443:14;7436:40;7319:164;:::o;7489:366::-;7631:3;7652:67;7716:2;7711:3;7652:67;:::i;:::-;7645:74;;7728:93;7817:3;7728:93;:::i;:::-;7846:2;7841:3;7837:12;7830:19;;7489:366;;;:::o;7861:419::-;8027:4;8065:2;8054:9;8050:18;8042:26;;8114:9;8108:4;8104:20;8100:1;8089:9;8085:17;8078:47;8142:131;8268:4;8142:131;:::i;:::-;8134:139;;7861:419;;;:::o;8286:104::-;8331:7;8360:24;8378:5;8360:24;:::i;:::-;8349:35;;8286:104;;;:::o;8396:138::-;8477:32;8503:5;8477:32;:::i;:::-;8470:5;8467:43;8457:71;;8524:1;8521;8514:12;8457:71;8396:138;:::o;8540:155::-;8594:5;8632:6;8619:20;8610:29;;8648:41;8683:5;8648:41;:::i;:::-;8540:155;;;;:::o;8701:490::-;8777:6;8785;8834:2;8822:9;8813:7;8809:23;8805:32;8802:119;;;8840:79;;:::i;:::-;8802:119;8960:1;8985:61;9038:7;9029:6;9018:9;9014:22;8985:61;:::i;:::-;8975:71;;8931:125;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8701:490;;;;;:::o;9197:170::-;9337:22;9333:1;9325:6;9321:14;9314:46;9197:170;:::o;9373:366::-;9515:3;9536:67;9600:2;9595:3;9536:67;:::i;:::-;9529:74;;9612:93;9701:3;9612:93;:::i;:::-;9730:2;9725:3;9721:12;9714:19;;9373:366;;;:::o;9745:419::-;9911:4;9949:2;9938:9;9934:18;9926:26;;9998:9;9992:4;9988:20;9984:1;9973:9;9969:17;9962:47;10026:131;10152:4;10026:131;:::i;:::-;10018:139;;9745:419;;;:::o;10170:180::-;10218:77;10215:1;10208:88;10315:4;10312:1;10305:15;10339:4;10336:1;10329:15;10356:191;10396:3;10415:20;10433:1;10415:20;:::i;:::-;10410:25;;10449:20;10467:1;10449:20;:::i;:::-;10444:25;;10492:1;10489;10485:9;10478:16;;10513:3;10510:1;10507:10;10504:36;;;10520:18;;:::i;:::-;10504:36;10356:191;;;;:::o;10553:90::-;10587:7;10630:5;10623:13;10616:21;10605:32;;10553:90;;;:::o;10649:116::-;10719:21;10734:5;10719:21;:::i;:::-;10712:5;10709:32;10699:60;;10755:1;10752;10745:12;10699:60;10649:116;:::o;10771:137::-;10825:5;10856:6;10850:13;10841:22;;10872:30;10896:5;10872:30;:::i;:::-;10771:137;;;;:::o;10914:345::-;10981:6;11030:2;11018:9;11009:7;11005:23;11001:32;10998:119;;;11036:79;;:::i;:::-;10998:119;11156:1;11181:61;11234:7;11225:6;11214:9;11210:22;11181:61;:::i;:::-;11171:71;;11127:125;10914:345;;;;:::o;11265:115::-;11350:23;11367:5;11350:23;:::i;:::-;11345:3;11338:36;11265:115;;:::o;11386:438::-;11533:4;11571:2;11560:9;11556:18;11548:26;;11584:71;11652:1;11641:9;11637:17;11628:6;11584:71;:::i;:::-;11665:72;11733:2;11722:9;11718:18;11709:6;11665:72;:::i;:::-;11747:70;11813:2;11802:9;11798:18;11789:6;11747:70;:::i;:::-;11386:438;;;;;;:::o;11830:148::-;11932:11;11969:3;11954:18;;11830:148;;;;:::o;11984:214::-;12124:66;12120:1;12112:6;12108:14;12101:90;11984:214;:::o;12204:400::-;12364:3;12385:84;12467:1;12462:3;12385:84;:::i;:::-;12378:91;;12478:93;12567:3;12478:93;:::i;:::-;12596:1;12591:3;12587:11;12580:18;;12204:400;;;:::o;12610:94::-;12643:8;12691:5;12687:2;12683:14;12662:35;;12610:94;;;:::o;12710:::-;12749:7;12778:20;12792:5;12778:20;:::i;:::-;12767:31;;12710:94;;;:::o;12810:100::-;12849:7;12878:26;12898:5;12878:26;:::i;:::-;12867:37;;12810:100;;;:::o;12916:157::-;13021:45;13041:24;13059:5;13041:24;:::i;:::-;13021:45;:::i;:::-;13016:3;13009:58;12916:157;;:::o;13079:77::-;13116:7;13145:5;13134:16;;13079:77;;;:::o;13162:79::-;13201:7;13230:5;13219:16;;13162:79;;;:::o;13247:157::-;13352:45;13372:24;13390:5;13372:24;:::i;:::-;13352:45;:::i;:::-;13347:3;13340:58;13247:157;;:::o;13410:804::-;13679:3;13701:148;13845:3;13701:148;:::i;:::-;13694:155;;13859:75;13930:3;13921:6;13859:75;:::i;:::-;13959:2;13954:3;13950:12;13943:19;;13972:75;14043:3;14034:6;13972:75;:::i;:::-;14072:2;14067:3;14063:12;14056:19;;14085:75;14156:3;14147:6;14085:75;:::i;:::-;14185:2;14180:3;14176:12;14169:19;;14205:3;14198:10;;13410:804;;;;;;:::o","linkReferences":{},"immutableReferences":{"61180":[{"start":285,"length":32},{"start":429,"length":32},{"start":770,"length":32}]}},"methodIdentifiers":{"flashloan(uint256)":"65b6c4f0","getPool(address,address,uint24)":"1698ee82","uniswapV3FlashCallback(uint256,uint256,bytes)":"e9cbafb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wethAmount\",\"type\":\"uint256\"}],\"name\":\"flashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"_fee\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fee0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3FlashCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"params\":{\"data\":\"\\u901a\\u8fc7 IUniswapV3PoolActions#flash \\u8c03\\u7528\\u7531\\u8c03\\u7528\\u8005\\u4f20\\u9012\\u7684\\u4efb\\u4f55\\u6570\\u636e\",\"fee0\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token0 \\u7684\\u8d39\\u7528\\u91d1\\u989d\",\"fee1\":\"\\u95ea\\u7535\\u8d37\\u7ed3\\u675f\\u65f6\\uff0c\\u5e94\\u652f\\u4ed8\\u7ed9\\u6c60\\u7684 token1 \\u7684\\u8d39\\u7528\\u91d1\\u989d\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3FlashCallback(uint256,uint256,bytes)\":{\"notice\":\"\\u5728\\u5b9e\\u73b0\\u4e2d\\uff0c\\u4f60\\u5fc5\\u987b\\u507f\\u8fd8\\u6c60\\u4e2d\\u7531 flash \\u53d1\\u9001\\u7684\\u4ee3\\u5e01\\u53ca\\u8ba1\\u7b97\\u51fa\\u7684\\u8d39\\u7528\\u91d1\\u989d\\u3002 \\u8c03\\u7528\\u6b64\\u65b9\\u6cd5\\u7684\\u5408\\u7ea6\\u5fc5\\u987b\\u7ecf\\u7531\\u5b98\\u65b9 UniswapV3Factory \\u90e8\\u7f72\\u7684 UniswapV3Pool \\u68c0\\u67e5\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":\"UniswapV3Flashloan\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"wethAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"flashloan"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint24","name":"_fee","type":"uint24"}],"stateMutability":"pure","type":"function","name":"getPool","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3FlashCallback"}],"devdoc":{"kind":"dev","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"params":{"data":"通过 IUniswapV3PoolActions#flash 调用由调用者传递的任何数据","fee0":"闪电贷结束时,应支付给池的 token0 的费用金额","fee1":"闪电贷结束时,应支付给池的 token1 的费用金额"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniswapV3FlashCallback(uint256,uint256,bytes)":{"notice":"在实现中,你必须偿还池中由 flash 发送的代币及计算出的费用金额。 调用此方法的合约必须经由官方 UniswapV3Factory 部署的 UniswapV3Pool 检查。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/src/UniswapV3Flashloan.sol":"UniswapV3Flashloan"},"evmVersion":"prague","libraries":{}},"sources":{"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/out/UniswapV3Flashloan.t.sol/UniswapV2FlashloanTest.json b/out/UniswapV3Flashloan.t.sol/UniswapV2FlashloanTest.json index a15ff004..1c24f3ae 100644 --- a/out/UniswapV3Flashloan.t.sol/UniswapV2FlashloanTest.json +++ b/out/UniswapV3Flashloan.t.sol/UniswapV2FlashloanTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b50612e42806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611440565b60405180910390f35b6101316105c3565b60405161013e9190611680565b60405180910390f35b61014f610747565b60405161015c9190611440565b60405180910390f35b61016d6107d2565b60405161017a9190611440565b60405180910390f35b61018b61085d565b604051610198919061187e565b60405180910390f35b6101a96109df565b6040516101b69190611921565b60405180910390f35b6101c7610ab3565b6040516101d49190611a36565b60405180910390f35b6101e5610bfa565b005b6101ef610ea6565b6040516101fc9190611a36565b60405180910390f35b61020d610fed565b60405161021a9190611921565b60405180910390f35b61022b6110c1565b6040516102389190611a70565b60405180910390f35b6102496111c8565b6040516102569190611440565b60405180910390f35b610267611253565b6040516102749190611a70565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006040518363ffffffff1660e01b815260040161038a929190611ae3565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca9190611b38565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a19190611b72565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd90611342565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611bb8565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611bb8565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611bb8565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611c21565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190611b38565b505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610dc59190611c48565b602060405180830381865afa158015610de0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190611c8b565b9050610e0f81611265565b5f670de0b6b3a7640000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610e759190611b72565b5f604051808303815f87803b158015610e8c575f5ffd5b505af1158015610e9e573d5f5f3e3d5ffd5b505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610fe4578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610fcc57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f795790505b50505050508152505081526020019060010190610ec9565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156110b8578382905f5260205f2001805461102d90611bb8565b80601f016020809104026020016040519081016040528092919081815260200182805461105990611bb8565b80156110a45780601f1061107b576101008083540402835291602001916110a4565b820191905f5260205f20905b81548152906001019060200180831161108757829003601f168201915b505050505081526020019060010190611010565b50505050905090565b5f60085f9054906101000a900460ff16156110df57600190506111c5565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611181929190611cce565b602060405180830381865afa15801561119c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190611d1f565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561124957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611200575b5050505050905090565b601f5f9054906101000a900460ff1681565b6112fb816040516024016112799190611b72565b6040516020818303038152906040527ff82c50f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112fe565b50565b6113158161130d611318611337565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61134f819050919050565b61109580611d7883390190565b611357611d4a565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113ab82611382565b9050919050565b6113bb816113a1565b82525050565b5f6113cc83836113b2565b60208301905092915050565b5f602082019050919050565b5f6113ee82611359565b6113f88185611363565b935061140383611373565b805f5b8381101561143357815161141a88826113c1565b9750611425836113d8565b925050600181019050611406565b5085935050505092915050565b5f6020820190508181035f83015261145881846113e4565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114f4826114b2565b6114fe81856114bc565b935061150e8185602086016114cc565b611517816114da565b840191505092915050565b5f61152d83836114ea565b905092915050565b5f602082019050919050565b5f61154b82611489565b6115558185611493565b935083602082028501611567856114a3565b805f5b858110156115a257848403895281516115838582611522565b945061158e83611535565b925060208a0199505060018101905061156a565b50829750879550505050505092915050565b5f604083015f8301516115c95f8601826113b2565b50602083015184820360208601526115e18282611541565b9150508091505092915050565b5f6115f983836115b4565b905092915050565b5f602082019050919050565b5f61161782611460565b611621818561146a565b9350836020820285016116338561147a565b805f5b8581101561166e578484038952815161164f85826115ee565b945061165a83611601565b925060208a01995050600181019050611636565b50829750879550505050505092915050565b5f6020820190508181035f830152611698818461160d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611726816116f2565b82525050565b5f611737838361171d565b60208301905092915050565b5f602082019050919050565b5f611759826116c9565b61176381856116d3565b935061176e836116e3565b805f5b8381101561179e578151611785888261172c565b975061179083611743565b925050600181019050611771565b5085935050505092915050565b5f604083015f8301518482035f8601526117c582826114ea565b915050602083015184820360208601526117df828261174f565b9150508091505092915050565b5f6117f783836117ab565b905092915050565b5f602082019050919050565b5f611815826116a0565b61181f81856116aa565b935083602082028501611831856116ba565b805f5b8581101561186c578484038952815161184d85826117ec565b9450611858836117ff565b925060208a01995050600181019050611834565b50829750879550505050505092915050565b5f6020820190508181035f830152611896818461180b565b905092915050565b5f82825260208201905092915050565b5f6118b882611489565b6118c2818561189e565b9350836020820285016118d4856114a3565b805f5b8581101561190f57848403895281516118f08582611522565b94506118fb83611535565b925060208a019950506001810190506118d7565b50829750879550505050505092915050565b5f6020820190508181035f83015261193981846118ae565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f83015161197f5f8601826113b2565b5060208301518482036020860152611997828261174f565b9150508091505092915050565b5f6119af838361196a565b905092915050565b5f602082019050919050565b5f6119cd82611941565b6119d7818561194b565b9350836020820285016119e98561195b565b805f5b85811015611a245784840389528151611a0585826119a4565b9450611a10836119b7565b925060208a019950506001810190506119ec565b50829750879550505050505092915050565b5f6020820190508181035f830152611a4e81846119c3565b905092915050565b5f8115159050919050565b611a6a81611a56565b82525050565b5f602082019050611a835f830184611a61565b92915050565b611a92816113a1565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f611acd611ac8611ac384611a98565b611aaa565b611aa1565b9050919050565b611add81611ab3565b82525050565b5f604082019050611af65f830185611a89565b611b036020830184611ad4565b9392505050565b5f5ffd5b611b1781611a56565b8114611b21575f5ffd5b50565b5f81519050611b3281611b0e565b92915050565b5f60208284031215611b4d57611b4c611b0a565b5b5f611b5a84828501611b24565b91505092915050565b611b6c81611aa1565b82525050565b5f602082019050611b855f830184611b63565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bcf57607f821691505b602082108103611be257611be1611b8b565b5b50919050565b5f819050919050565b5f611c0b611c06611c0184611be8565b611aaa565b611aa1565b9050919050565b611c1b81611bf1565b82525050565b5f604082019050611c345f830185611a89565b611c416020830184611c12565b9392505050565b5f602082019050611c5b5f830184611a89565b92915050565b611c6a81611aa1565b8114611c74575f5ffd5b50565b5f81519050611c8581611c61565b92915050565b5f60208284031215611ca057611c9f611b0a565b5b5f611cad84828501611c77565b91505092915050565b5f819050919050565b611cc881611cb6565b82525050565b5f604082019050611ce15f830185611a89565b611cee6020830184611cbf565b9392505050565b611cfe81611cb6565b8114611d08575f5ffd5b50565b5f81519050611d1981611cf5565b92915050565b5f60208284031215611d3457611d33611b0a565b5b5f611d4184828501611d0b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033a26469706673582212207c1e88165149ca8a22f105a51fb9fb29f050f34f5a37c29e5585b4327562ba0664736f6c63430008220033","sourceMap":"219:1043:126:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;174:42:126;265:32;;;;;;;;;;;;;;;;;;;;219:1043;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611440565b60405180910390f35b6101316105c3565b60405161013e9190611680565b60405180910390f35b61014f610747565b60405161015c9190611440565b60405180910390f35b61016d6107d2565b60405161017a9190611440565b60405180910390f35b61018b61085d565b604051610198919061187e565b60405180910390f35b6101a96109df565b6040516101b69190611921565b60405180910390f35b6101c7610ab3565b6040516101d49190611a36565b60405180910390f35b6101e5610bfa565b005b6101ef610ea6565b6040516101fc9190611a36565b60405180910390f35b61020d610fed565b60405161021a9190611921565b60405180910390f35b61022b6110c1565b6040516102389190611a70565b60405180910390f35b6102496111c8565b6040516102569190611440565b60405180910390f35b610267611253565b6040516102749190611a70565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006040518363ffffffff1660e01b815260040161038a929190611ae3565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca9190611b38565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a19190611b72565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd90611342565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611bb8565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611bb8565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611bb8565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611c21565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190611b38565b505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610dc59190611c48565b602060405180830381865afa158015610de0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190611c8b565b9050610e0f81611265565b5f670de0b6b3a7640000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610e759190611b72565b5f604051808303815f87803b158015610e8c575f5ffd5b505af1158015610e9e573d5f5f3e3d5ffd5b505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610fe4578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610fcc57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f795790505b50505050508152505081526020019060010190610ec9565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156110b8578382905f5260205f2001805461102d90611bb8565b80601f016020809104026020016040519081016040528092919081815260200182805461105990611bb8565b80156110a45780601f1061107b576101008083540402835291602001916110a4565b820191905f5260205f20905b81548152906001019060200180831161108757829003601f168201915b505050505081526020019060010190611010565b50505050905090565b5f60085f9054906101000a900460ff16156110df57600190506111c5565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611181929190611cce565b602060405180830381865afa15801561119c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190611d1f565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561124957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611200575b5050505050905090565b601f5f9054906101000a900460ff1681565b6112fb816040516024016112799190611b72565b6040516020818303038152906040527ff82c50f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112fe565b50565b6113158161130d611318611337565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61134f819050919050565b61109580611d7883390190565b611357611d4a565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113ab82611382565b9050919050565b6113bb816113a1565b82525050565b5f6113cc83836113b2565b60208301905092915050565b5f602082019050919050565b5f6113ee82611359565b6113f88185611363565b935061140383611373565b805f5b8381101561143357815161141a88826113c1565b9750611425836113d8565b925050600181019050611406565b5085935050505092915050565b5f6020820190508181035f83015261145881846113e4565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114f4826114b2565b6114fe81856114bc565b935061150e8185602086016114cc565b611517816114da565b840191505092915050565b5f61152d83836114ea565b905092915050565b5f602082019050919050565b5f61154b82611489565b6115558185611493565b935083602082028501611567856114a3565b805f5b858110156115a257848403895281516115838582611522565b945061158e83611535565b925060208a0199505060018101905061156a565b50829750879550505050505092915050565b5f604083015f8301516115c95f8601826113b2565b50602083015184820360208601526115e18282611541565b9150508091505092915050565b5f6115f983836115b4565b905092915050565b5f602082019050919050565b5f61161782611460565b611621818561146a565b9350836020820285016116338561147a565b805f5b8581101561166e578484038952815161164f85826115ee565b945061165a83611601565b925060208a01995050600181019050611636565b50829750879550505050505092915050565b5f6020820190508181035f830152611698818461160d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611726816116f2565b82525050565b5f611737838361171d565b60208301905092915050565b5f602082019050919050565b5f611759826116c9565b61176381856116d3565b935061176e836116e3565b805f5b8381101561179e578151611785888261172c565b975061179083611743565b925050600181019050611771565b5085935050505092915050565b5f604083015f8301518482035f8601526117c582826114ea565b915050602083015184820360208601526117df828261174f565b9150508091505092915050565b5f6117f783836117ab565b905092915050565b5f602082019050919050565b5f611815826116a0565b61181f81856116aa565b935083602082028501611831856116ba565b805f5b8581101561186c578484038952815161184d85826117ec565b9450611858836117ff565b925060208a01995050600181019050611834565b50829750879550505050505092915050565b5f6020820190508181035f830152611896818461180b565b905092915050565b5f82825260208201905092915050565b5f6118b882611489565b6118c2818561189e565b9350836020820285016118d4856114a3565b805f5b8581101561190f57848403895281516118f08582611522565b94506118fb83611535565b925060208a019950506001810190506118d7565b50829750879550505050505092915050565b5f6020820190508181035f83015261193981846118ae565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f83015161197f5f8601826113b2565b5060208301518482036020860152611997828261174f565b9150508091505092915050565b5f6119af838361196a565b905092915050565b5f602082019050919050565b5f6119cd82611941565b6119d7818561194b565b9350836020820285016119e98561195b565b805f5b85811015611a245784840389528151611a0585826119a4565b9450611a10836119b7565b925060208a019950506001810190506119ec565b50829750879550505050505092915050565b5f6020820190508181035f830152611a4e81846119c3565b905092915050565b5f8115159050919050565b611a6a81611a56565b82525050565b5f602082019050611a835f830184611a61565b92915050565b611a92816113a1565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f611acd611ac8611ac384611a98565b611aaa565b611aa1565b9050919050565b611add81611ab3565b82525050565b5f604082019050611af65f830185611a89565b611b036020830184611ad4565b9392505050565b5f5ffd5b611b1781611a56565b8114611b21575f5ffd5b50565b5f81519050611b3281611b0e565b92915050565b5f60208284031215611b4d57611b4c611b0a565b5b5f611b5a84828501611b24565b91505092915050565b611b6c81611aa1565b82525050565b5f602082019050611b855f830184611b63565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bcf57607f821691505b602082108103611be257611be1611b8b565b5b50919050565b5f819050919050565b5f611c0b611c06611c0184611be8565b611aaa565b611aa1565b9050919050565b611c1b81611bf1565b82525050565b5f604082019050611c345f830185611a89565b611c416020830184611c12565b9392505050565b5f602082019050611c5b5f830184611a89565b92915050565b611c6a81611aa1565b8114611c74575f5ffd5b50565b5f81519050611c8581611c61565b92915050565b5f60208284031215611ca057611c9f611b0a565b5b5f611cad84828501611c77565b91505092915050565b5f819050919050565b611cc881611cb6565b82525050565b5f604082019050611ce15f830185611a89565b611cee6020830184611cbf565b9392505050565b611cfe81611cb6565b8114611d08575f5ffd5b50565b5f81519050611d1981611cf5565b92915050565b5f60208284031215611d3457611d33611b0a565b5b5f611d4184828501611d0b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033a26469706673582212207c1e88165149ca8a22f105a51fb9fb29f050f34f5a37c29e5585b4327562ba0664736f6c63430008220033","sourceMap":"219:1043:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:367;;;:::i;:::-;;347:77;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;430:422:126;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;893:367:126;1003:4;;;;;;;;;;;:12;;;1023:4;1003:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1040:4;;;;;;;;;;;:13;;;1062:9;;;;;;;;;;;1074:4;1040:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1122:19;1144:10;1122:32;;351:42:0;1191:15:126;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:9;;;;;;;;;;;:19;;;1238:14;1218:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:331;893:367::o;347:77::-;393:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;381:9;;:36;;;;;;;;;;;;;;;;;;347:77::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;430:422:126:-;536:4;;;;;;;;;;;:12;;;556:4;536:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;573:4;;;;;;;;;;;:13;;;595:9;;;;;;;;;;;607:4;573:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;639:14;656:4;;;;;;;;;;;:14;;;679:9;;;;;;;;;;;656:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;639:51;;700:27;717:9;700:16;:27::i;:::-;770:19;792:8;770:30;;810:9;;;;;;;;;;;:19;;;830:14;810:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:390;;430:422::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;1037:120:15:-;1090:60;1146:2;1106:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1090:15;:60::i;:::-;1037:120;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;186:268::-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;7:114:145:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:102::-;19548:7;19577:5;19566:16;;19486:102;;;:::o;19594:77::-;19631:7;19660:5;19649:16;;19594:77;;;:::o;19677:60::-;19705:3;19726:5;19719:12;;19677:60;;;:::o;19743:192::-;19818:9;19851:78;19869:59;19878:49;19921:5;19878:49;:::i;:::-;19869:59;:::i;:::-;19851:78;:::i;:::-;19838:91;;19743:192;;;:::o;19941:181::-;20053:62;20109:5;20053:62;:::i;:::-;20048:3;20041:75;19941:181;;:::o;20128:382::-;20274:4;20312:2;20301:9;20297:18;20289:26;;20325:71;20393:1;20382:9;20378:17;20369:6;20325:71;:::i;:::-;20406:97;20499:2;20488:9;20484:18;20475:6;20406:97;:::i;:::-;20128:382;;;;;:::o;20597:117::-;20706:1;20703;20696:12;20843:116;20913:21;20928:5;20913:21;:::i;:::-;20906:5;20903:32;20893:60;;20949:1;20946;20939:12;20893:60;20843:116;:::o;20965:137::-;21019:5;21050:6;21044:13;21035:22;;21066:30;21090:5;21066:30;:::i;:::-;20965:137;;;;:::o;21108:345::-;21175:6;21224:2;21212:9;21203:7;21199:23;21195:32;21192:119;;;21230:79;;:::i;:::-;21192:119;21350:1;21375:61;21428:7;21419:6;21408:9;21404:22;21375:61;:::i;:::-;21365:71;;21321:125;21108:345;;;;:::o;21459:118::-;21546:24;21564:5;21546:24;:::i;:::-;21541:3;21534:37;21459:118;;:::o;21583:222::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21727:71;21795:1;21784:9;21780:17;21771:6;21727:71;:::i;:::-;21583:222;;;;:::o;21811:180::-;21859:77;21856:1;21849:88;21956:4;21953:1;21946:15;21980:4;21977:1;21970:15;21997:320;22041:6;22078:1;22072:4;22068:12;22058:22;;22125:1;22119:4;22115:12;22146:18;22136:81;;22202:4;22194:6;22190:17;22180:27;;22136:81;22264:2;22256:6;22253:14;22233:18;22230:38;22227:84;;22283:18;;:::i;:::-;22227:84;22048:269;21997:320;;;:::o;22323:103::-;22386:7;22415:5;22404:16;;22323:103;;;:::o;22432:194::-;22508:9;22541:79;22559:60;22568:50;22612:5;22568:50;:::i;:::-;22559:60;:::i;:::-;22541:79;:::i;:::-;22528:92;;22432:194;;;:::o;22632:183::-;22745:63;22802:5;22745:63;:::i;:::-;22740:3;22733:76;22632:183;;:::o;22821:384::-;22968:4;23006:2;22995:9;22991:18;22983:26;;23019:71;23087:1;23076:9;23072:17;23063:6;23019:71;:::i;:::-;23100:98;23194:2;23183:9;23179:18;23170:6;23100:98;:::i;:::-;22821:384;;;;;:::o;23211:222::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23355:71;23423:1;23412:9;23408:17;23399:6;23355:71;:::i;:::-;23211:222;;;;:::o;23439:122::-;23512:24;23530:5;23512:24;:::i;:::-;23505:5;23502:35;23492:63;;23551:1;23548;23541:12;23492:63;23439:122;:::o;23567:143::-;23624:5;23655:6;23649:13;23640:22;;23671:33;23698:5;23671:33;:::i;:::-;23567:143;;;;:::o;23716:351::-;23786:6;23835:2;23823:9;23814:7;23810:23;23806:32;23803:119;;;23841:79;;:::i;:::-;23803:119;23961:1;23986:64;24042:7;24033:6;24022:9;24018:22;23986:64;:::i;:::-;23976:74;;23932:128;23716:351;;;;:::o;24073:77::-;24110:7;24139:5;24128:16;;24073:77;;;:::o;24156:118::-;24243:24;24261:5;24243:24;:::i;:::-;24238:3;24231:37;24156:118;;:::o;24280:332::-;24401:4;24439:2;24428:9;24424:18;24416:26;;24452:71;24520:1;24509:9;24505:17;24496:6;24452:71;:::i;:::-;24533:72;24601:2;24590:9;24586:18;24577:6;24533:72;:::i;:::-;24280:332;;;;;:::o;24618:122::-;24691:24;24709:5;24691:24;:::i;:::-;24684:5;24681:35;24671:63;;24730:1;24727;24720:12;24671:63;24618:122;:::o;24746:143::-;24803:5;24834:6;24828:13;24819:22;;24850:33;24877:5;24850:33;:::i;:::-;24746:143;;;;:::o;24895:351::-;24965:6;25014:2;25002:9;24993:7;24989:23;24985:32;24982:119;;;25020:79;;:::i;:::-;24982:119;25140:1;25165:64;25221:7;25212:6;25201:9;25197:22;25165:64;:::i;:::-;25155:74;;25111:128;24895:351;;;;:::o;25252:180::-;25300:77;25297:1;25290:88;25397:4;25394:1;25387:15;25421:4;25418:1;25411:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/UniswapV3Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]},\"src/57_Flashloan/test/UniswapV3Flashloan.t.sol\":{\"keccak256\":\"0xa30f734e3932dd195a7f2b8052441a8696552ba8b1f5654ae7a8468f9e85db24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fd05397a6a66055e0e382a0fa0fbab71162962fc6b7891da5c6bdc66f0f224b\",\"dweb:/ipfs/QmbNiDSUU9MR8xHMkjiGBjyisWPVyoeJxXsm3AdjZ16eeH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/UniswapV3Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"},"src/57_Flashloan/test/UniswapV3Flashloan.t.sol":{"keccak256":"0xa30f734e3932dd195a7f2b8052441a8696552ba8b1f5654ae7a8468f9e85db24","urls":["bzz-raw://8fd05397a6a66055e0e382a0fa0fbab71162962fc6b7891da5c6bdc66f0f224b","dweb:/ipfs/QmbNiDSUU9MR8xHMkjiGBjyisWPVyoeJxXsm3AdjZ16eeH"],"license":"MIT"}},"version":1},"id":126} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFlashloan","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFlashloanFail","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60806040526001600c5f6101000a81548160ff0219169083151502179055506001601f5f6101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156097575f5ffd5b50612e42806100a55f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611440565b60405180910390f35b6101316105c3565b60405161013e9190611680565b60405180910390f35b61014f610747565b60405161015c9190611440565b60405180910390f35b61016d6107d2565b60405161017a9190611440565b60405180910390f35b61018b61085d565b604051610198919061187e565b60405180910390f35b6101a96109df565b6040516101b69190611921565b60405180910390f35b6101c7610ab3565b6040516101d49190611a36565b60405180910390f35b6101e5610bfa565b005b6101ef610ea6565b6040516101fc9190611a36565b60405180910390f35b61020d610fed565b60405161021a9190611921565b60405180910390f35b61022b6110c1565b6040516102389190611a70565b60405180910390f35b6102496111c8565b6040516102569190611440565b60405180910390f35b610267611253565b6040516102749190611a70565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006040518363ffffffff1660e01b815260040161038a929190611ae3565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca9190611b38565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a19190611b72565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd90611342565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611bb8565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611bb8565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611bb8565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611c21565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190611b38565b505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610dc59190611c48565b602060405180830381865afa158015610de0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190611c8b565b9050610e0f81611265565b5f670de0b6b3a7640000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610e759190611b72565b5f604051808303815f87803b158015610e8c575f5ffd5b505af1158015610e9e573d5f5f3e3d5ffd5b505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610fe4578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610fcc57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f795790505b50505050508152505081526020019060010190610ec9565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156110b8578382905f5260205f2001805461102d90611bb8565b80601f016020809104026020016040519081016040528092919081815260200182805461105990611bb8565b80156110a45780601f1061107b576101008083540402835291602001916110a4565b820191905f5260205f20905b81548152906001019060200180831161108757829003601f168201915b505050505081526020019060010190611010565b50505050905090565b5f60085f9054906101000a900460ff16156110df57600190506111c5565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611181929190611cce565b602060405180830381865afa15801561119c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190611d1f565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561124957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611200575b5050505050905090565b601f5f9054906101000a900460ff1681565b6112fb816040516024016112799190611b72565b6040516020818303038152906040527ff82c50f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112fe565b50565b6113158161130d611318611337565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61134f819050919050565b61109580611d7883390190565b611357611d4a565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113ab82611382565b9050919050565b6113bb816113a1565b82525050565b5f6113cc83836113b2565b60208301905092915050565b5f602082019050919050565b5f6113ee82611359565b6113f88185611363565b935061140383611373565b805f5b8381101561143357815161141a88826113c1565b9750611425836113d8565b925050600181019050611406565b5085935050505092915050565b5f6020820190508181035f83015261145881846113e4565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114f4826114b2565b6114fe81856114bc565b935061150e8185602086016114cc565b611517816114da565b840191505092915050565b5f61152d83836114ea565b905092915050565b5f602082019050919050565b5f61154b82611489565b6115558185611493565b935083602082028501611567856114a3565b805f5b858110156115a257848403895281516115838582611522565b945061158e83611535565b925060208a0199505060018101905061156a565b50829750879550505050505092915050565b5f604083015f8301516115c95f8601826113b2565b50602083015184820360208601526115e18282611541565b9150508091505092915050565b5f6115f983836115b4565b905092915050565b5f602082019050919050565b5f61161782611460565b611621818561146a565b9350836020820285016116338561147a565b805f5b8581101561166e578484038952815161164f85826115ee565b945061165a83611601565b925060208a01995050600181019050611636565b50829750879550505050505092915050565b5f6020820190508181035f830152611698818461160d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611726816116f2565b82525050565b5f611737838361171d565b60208301905092915050565b5f602082019050919050565b5f611759826116c9565b61176381856116d3565b935061176e836116e3565b805f5b8381101561179e578151611785888261172c565b975061179083611743565b925050600181019050611771565b5085935050505092915050565b5f604083015f8301518482035f8601526117c582826114ea565b915050602083015184820360208601526117df828261174f565b9150508091505092915050565b5f6117f783836117ab565b905092915050565b5f602082019050919050565b5f611815826116a0565b61181f81856116aa565b935083602082028501611831856116ba565b805f5b8581101561186c578484038952815161184d85826117ec565b9450611858836117ff565b925060208a01995050600181019050611834565b50829750879550505050505092915050565b5f6020820190508181035f830152611896818461180b565b905092915050565b5f82825260208201905092915050565b5f6118b882611489565b6118c2818561189e565b9350836020820285016118d4856114a3565b805f5b8581101561190f57848403895281516118f08582611522565b94506118fb83611535565b925060208a019950506001810190506118d7565b50829750879550505050505092915050565b5f6020820190508181035f83015261193981846118ae565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f83015161197f5f8601826113b2565b5060208301518482036020860152611997828261174f565b9150508091505092915050565b5f6119af838361196a565b905092915050565b5f602082019050919050565b5f6119cd82611941565b6119d7818561194b565b9350836020820285016119e98561195b565b805f5b85811015611a245784840389528151611a0585826119a4565b9450611a10836119b7565b925060208a019950506001810190506119ec565b50829750879550505050505092915050565b5f6020820190508181035f830152611a4e81846119c3565b905092915050565b5f8115159050919050565b611a6a81611a56565b82525050565b5f602082019050611a835f830184611a61565b92915050565b611a92816113a1565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f611acd611ac8611ac384611a98565b611aaa565b611aa1565b9050919050565b611add81611ab3565b82525050565b5f604082019050611af65f830185611a89565b611b036020830184611ad4565b9392505050565b5f5ffd5b611b1781611a56565b8114611b21575f5ffd5b50565b5f81519050611b3281611b0e565b92915050565b5f60208284031215611b4d57611b4c611b0a565b5b5f611b5a84828501611b24565b91505092915050565b611b6c81611aa1565b82525050565b5f602082019050611b855f830184611b63565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bcf57607f821691505b602082108103611be257611be1611b8b565b5b50919050565b5f819050919050565b5f611c0b611c06611c0184611be8565b611aaa565b611aa1565b9050919050565b611c1b81611bf1565b82525050565b5f604082019050611c345f830185611a89565b611c416020830184611c12565b9392505050565b5f602082019050611c5b5f830184611a89565b92915050565b611c6a81611aa1565b8114611c74575f5ffd5b50565b5f81519050611c8581611c61565b92915050565b5f60208284031215611ca057611c9f611b0a565b5b5f611cad84828501611c77565b91505092915050565b5f819050919050565b611cc881611cb6565b82525050565b5f604082019050611ce15f830185611a89565b611cee6020830184611cbf565b9392505050565b611cfe81611cb6565b8114611d08575f5ffd5b50565b5f81519050611d1981611cf5565b92915050565b5f60208284031215611d3457611d33611b0a565b5b5f611d4184828501611d0b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033a26469706673582212207c1e88165149ca8a22f105a51fb9fb29f050f34f5a37c29e5585b4327562ba0664736f6c63430008220033","sourceMap":"219:1043:120:-:0;;;3181:4:2;3141:44;;;;;;;;;;;;;;;;;;;;1067:4:13;1045:26;;;;;;;;;;;;;;;;;;;;174:42:120;265:32;;;;;;;;;;;;;;;;;;;;219:1043;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c806385226c8111610095578063b5508aa911610064578063b5508aa914610205578063ba414fa614610223578063e20c9f7114610241578063fa7626d41461025f576100f3565b806385226c81146101a1578063916a17c6146101bf578063a8c82a57146101dd578063b0464fdc146101e7576100f3565b80632ade3880116100d15780632ade3880146101295780633e5e3c23146101475780633f7286f41461016557806366d9a9a014610183576100f3565b806302bee1a8146100f75780630a9254e4146101015780631ed7831c1461010b575b5f5ffd5b6100ff61027d565b005b6101096104d1565b005b610113610538565b6040516101209190611440565b60405180910390f35b6101316105c3565b60405161013e9190611680565b60405180910390f35b61014f610747565b60405161015c9190611440565b60405180910390f35b61016d6107d2565b60405161017a9190611440565b60405180910390f35b61018b61085d565b604051610198919061187e565b60405180910390f35b6101a96109df565b6040516101b69190611921565b60405180910390f35b6101c7610ab3565b6040516101d49190611a36565b60405180910390f35b6101e5610bfa565b005b6101ef610ea6565b6040516101fc9190611a36565b60405180910390f35b61020d610fed565b60405161021a9190611921565b60405180910390f35b61022b6110c1565b6040516102389190611a70565b60405180910390f35b6102496111c8565b6040516102569190611440565b60405180910390f35b610267611253565b6040516102749190611a70565b60405180910390f35b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102ed575f5ffd5b505af11580156102ff573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006040518363ffffffff1660e01b815260040161038a929190611ae3565b6020604051808303815f875af11580156103a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ca9190611b38565b505f68056bc75e2d631000009050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610431575f5ffd5b505af1158015610443573d5f5f3e3d5ffd5b5050505060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b81526004016104a19190611b72565b5f604051808303815f87803b1580156104b8575f5ffd5b505af11580156104ca573d5f5f3e3d5ffd5b5050505050565b6040516104dd90611342565b604051809103905ff0801580156104f6573d5f5f3e3d5ffd5b5060205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060168054806020026020016040519081016040528092919081815260200182805480156105b957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610570575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561073e578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610727578382905f5260205f2001805461069c90611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546106c890611bb8565b80156107135780601f106106ea57610100808354040283529160200191610713565b820191905f5260205f20905b8154815290600101906020018083116106f657829003601f168201915b50505050508152602001906001019061067f565b5050505081525050815260200190600101906105e6565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156107c857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161077f575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561085357602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161080a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156109d6578382905f5260205f2090600202016040518060400160405290815f820180546108b090611bb8565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc90611bb8565b80156109275780601f106108fe57610100808354040283529160200191610927565b820191905f5260205f20905b81548152906001019060200180831161090a57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156109be57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161096b5790505b50505050508152505081526020019060010190610880565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610aaa578382905f5260205f20018054610a1f90611bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4b90611bb8565b8015610a965780601f10610a6d57610100808354040283529160200191610a96565b820191905f5260205f20905b815481529060010190602001808311610a7957829003601f168201915b505050505081526020019060010190610a02565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610bf1578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610bd957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b865790505b50505050508152505081526020019060010190610ad6565b50505050905090565b601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004015f604051808303818588803b158015610c6a575f5ffd5b505af1158015610c7c573d5f5f3e3d5ffd5b5050505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006040518363ffffffff1660e01b8152600401610d07929190611c21565b6020604051808303815f875af1158015610d23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190611b38565b505f601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610dc59190611c48565b602060405180830381865afa158015610de0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190611c8b565b9050610e0f81611265565b5f670de0b6b3a7640000905060205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166365b6c4f0826040518263ffffffff1660e01b8152600401610e759190611b72565b5f604051808303815f87803b158015610e8c575f5ffd5b505af1158015610e9e573d5f5f3e3d5ffd5b505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610fe4578382905f5260205f2090600202016040518060400160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015610fcc57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f795790505b50505050508152505081526020019060010190610ec9565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156110b8578382905f5260205f2001805461102d90611bb8565b80601f016020809104026020016040519081016040528092919081815260200182805461105990611bb8565b80156110a45780601f1061107b576101008083540402835291602001916110a4565b820191905f5260205f20905b81548152906001019060200180831161108757829003601f168201915b505050505081526020019060010190611010565b50505050905090565b5f60085f9054906101000a900460ff16156110df57600190506111c5565b5f5f1b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611181929190611cce565b602060405180830381865afa15801561119c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c09190611d1f565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801561124957602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611200575b5050505050905090565b601f5f9054906101000a900460ff1681565b6112fb816040516024016112799190611b72565b6040516020818303038152906040527ff82c50f1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506112fe565b50565b6113158161130d611318611337565b63ffffffff16565b50565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61134f819050919050565b61109580611d7883390190565b611357611d4a565b565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113ab82611382565b9050919050565b6113bb816113a1565b82525050565b5f6113cc83836113b2565b60208301905092915050565b5f602082019050919050565b5f6113ee82611359565b6113f88185611363565b935061140383611373565b805f5b8381101561143357815161141a88826113c1565b9750611425836113d8565b925050600181019050611406565b5085935050505092915050565b5f6020820190508181035f83015261145881846113e4565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6114f4826114b2565b6114fe81856114bc565b935061150e8185602086016114cc565b611517816114da565b840191505092915050565b5f61152d83836114ea565b905092915050565b5f602082019050919050565b5f61154b82611489565b6115558185611493565b935083602082028501611567856114a3565b805f5b858110156115a257848403895281516115838582611522565b945061158e83611535565b925060208a0199505060018101905061156a565b50829750879550505050505092915050565b5f604083015f8301516115c95f8601826113b2565b50602083015184820360208601526115e18282611541565b9150508091505092915050565b5f6115f983836115b4565b905092915050565b5f602082019050919050565b5f61161782611460565b611621818561146a565b9350836020820285016116338561147a565b805f5b8581101561166e578484038952815161164f85826115ee565b945061165a83611601565b925060208a01995050600181019050611636565b50829750879550505050505092915050565b5f6020820190508181035f830152611698818461160d565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611726816116f2565b82525050565b5f611737838361171d565b60208301905092915050565b5f602082019050919050565b5f611759826116c9565b61176381856116d3565b935061176e836116e3565b805f5b8381101561179e578151611785888261172c565b975061179083611743565b925050600181019050611771565b5085935050505092915050565b5f604083015f8301518482035f8601526117c582826114ea565b915050602083015184820360208601526117df828261174f565b9150508091505092915050565b5f6117f783836117ab565b905092915050565b5f602082019050919050565b5f611815826116a0565b61181f81856116aa565b935083602082028501611831856116ba565b805f5b8581101561186c578484038952815161184d85826117ec565b9450611858836117ff565b925060208a01995050600181019050611834565b50829750879550505050505092915050565b5f6020820190508181035f830152611896818461180b565b905092915050565b5f82825260208201905092915050565b5f6118b882611489565b6118c2818561189e565b9350836020820285016118d4856114a3565b805f5b8581101561190f57848403895281516118f08582611522565b94506118fb83611535565b925060208a019950506001810190506118d7565b50829750879550505050505092915050565b5f6020820190508181035f83015261193981846118ae565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f604083015f83015161197f5f8601826113b2565b5060208301518482036020860152611997828261174f565b9150508091505092915050565b5f6119af838361196a565b905092915050565b5f602082019050919050565b5f6119cd82611941565b6119d7818561194b565b9350836020820285016119e98561195b565b805f5b85811015611a245784840389528151611a0585826119a4565b9450611a10836119b7565b925060208a019950506001810190506119ec565b50829750879550505050505092915050565b5f6020820190508181035f830152611a4e81846119c3565b905092915050565b5f8115159050919050565b611a6a81611a56565b82525050565b5f602082019050611a835f830184611a61565b92915050565b611a92816113a1565b82525050565b5f819050919050565b5f819050919050565b5f819050919050565b5f611acd611ac8611ac384611a98565b611aaa565b611aa1565b9050919050565b611add81611ab3565b82525050565b5f604082019050611af65f830185611a89565b611b036020830184611ad4565b9392505050565b5f5ffd5b611b1781611a56565b8114611b21575f5ffd5b50565b5f81519050611b3281611b0e565b92915050565b5f60208284031215611b4d57611b4c611b0a565b5b5f611b5a84828501611b24565b91505092915050565b611b6c81611aa1565b82525050565b5f602082019050611b855f830184611b63565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bcf57607f821691505b602082108103611be257611be1611b8b565b5b50919050565b5f819050919050565b5f611c0b611c06611c0184611be8565b611aaa565b611aa1565b9050919050565b611c1b81611bf1565b82525050565b5f604082019050611c345f830185611a89565b611c416020830184611c12565b9392505050565b5f602082019050611c5b5f830184611a89565b92915050565b611c6a81611aa1565b8114611c74575f5ffd5b50565b5f81519050611c8581611c61565b92915050565b5f60208284031215611ca057611c9f611b0a565b5b5f611cad84828501611c77565b91505092915050565b5f819050919050565b611cc881611cb6565b82525050565b5f604082019050611ce15f830185611a89565b611cee6020830184611cbf565b9392505050565b611cfe81611cb6565b8114611d08575f5ffd5b50565b5f81519050611d1981611cf5565b92915050565b5f60208284031215611d3457611d33611b0a565b5b5f611d4184828501611d0b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfe60a060405234801561000f575f5ffd5b5061004b736b175474e89094c44da98b954eedeac495271d0f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610bb861008360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050610416565b5f5f6100968585856100c660201b60201c565b90506100bc731f98431c8ad98523631ae4a59f267346ea31f9848261016260201b60201c565b9150509392505050565b6100ce61022d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561010d57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff16106101a1575f5ffd5b82825f0151836020015184604001516040516020016101c2939291906102d8565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b60405160200161020d939291906103cf565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a58261027c565b9050919050565b6102b58161029b565b82525050565b5f62ffffff82169050919050565b6102d2816102bb565b82525050565b5f6060820190506102eb5f8301866102ac565b6102f860208301856102ac565b61030560408301846102c9565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61034b60018361030d565b915061035682610317565b600182019050919050565b5f8160601b9050919050565b5f61037782610361565b9050919050565b5f6103888261036d565b9050919050565b6103a061039b8261029b565b61037e565b82525050565b5f819050919050565b5f819050919050565b6103c96103c4826103a6565b6103af565b82525050565b5f6103d98261033f565b91506103e5828661038f565b6014820191506103f582856103b8565b60208201915061040582846103b8565b602082019150819050949350505050565b608051610c5961043c5f395f818161011d015281816101ad01526103020152610c595ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631698ee821461004357806365b6c4f014610073578063e9cbafb01461008f575b5f5ffd5b61005d600480360381019061005891906105e3565b6100ab565b60405161006a9190610642565b60405180910390f35b61008d6004803603810190610088919061068e565b6100e2565b005b6100a960048036038101906100a4919061071a565b6101ab565b005b5f5f6100b8858585610393565b90506100d8731f98431c8ad98523631ae4a59f267346ea31f9848261042f565b9150509392505050565b5f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28260405160200161010a92919061079a565b60405160208183030381529060405290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f85856040518563ffffffff1660e01b815260040161017a9493929190610873565b5f604051808303815f87803b158015610191575f5ffd5b505af11580156101a3573d5f5f3e3d5ffd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023090610917565b60405180910390fd5b5f5f838381019061024a9190610970565b9150915073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146102d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c7906109f8565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000878461032d9190610a43565b6040518363ffffffff1660e01b815260040161034a92919061079a565b6020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a9190610aab565b50505050505050565b61039b6104fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156103da57828480945081955050505b60405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018362ffffff1681525090509392505050565b5f816020015173ffffffffffffffffffffffffffffffffffffffff16825f015173ffffffffffffffffffffffffffffffffffffffff161061046e575f5ffd5b82825f01518360200151846040015160405160200161048f93929190610ae5565b604051602081830303815290604052805190602001207fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f1b6040516020016104da93929190610bdc565b604051602081830303815290604052805190602001205f1c905092915050565b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff1681525090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057a82610551565b9050919050565b61058a81610570565b8114610594575f5ffd5b50565b5f813590506105a581610581565b92915050565b5f62ffffff82169050919050565b6105c2816105ab565b81146105cc575f5ffd5b50565b5f813590506105dd816105b9565b92915050565b5f5f5f606084860312156105fa576105f9610549565b5b5f61060786828701610597565b935050602061061886828701610597565b9250506040610629868287016105cf565b9150509250925092565b61063c81610570565b82525050565b5f6020820190506106555f830184610633565b92915050565b5f819050919050565b61066d8161065b565b8114610677575f5ffd5b50565b5f8135905061068881610664565b92915050565b5f602082840312156106a3576106a2610549565b5b5f6106b08482850161067a565b91505092915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126106da576106d96106b9565b5b8235905067ffffffffffffffff8111156106f7576106f66106bd565b5b602083019150836001820283011115610713576107126106c1565b5b9250929050565b5f5f5f5f6060858703121561073257610731610549565b5b5f61073f8782880161067a565b94505060206107508782880161067a565b935050604085013567ffffffffffffffff8111156107715761077061054d565b5b61077d878288016106c5565b925092505092959194509250565b6107948161065b565b82525050565b5f6040820190506107ad5f830185610633565b6107ba602083018461078b565b9392505050565b5f819050919050565b5f819050919050565b5f6107ed6107e86107e3846107c1565b6107ca565b61065b565b9050919050565b6107fd816107d3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61084582610803565b61084f818561080d565b935061085f81856020860161081d565b6108688161082b565b840191505092915050565b5f6080820190506108865f830187610633565b61089360208301866107f4565b6108a0604083018561078b565b81810360608301526108b2818461083b565b905095945050505050565b5f82825260208201905092915050565b7f6e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f610901600e836108bd565b915061090c826108cd565b602082019050919050565b5f6020820190508181035f83015261092e816108f5565b9050919050565b5f61093f82610551565b9050919050565b61094f81610935565b8114610959575f5ffd5b50565b5f8135905061096a81610946565b92915050565b5f5f6040838503121561098657610985610549565b5b5f6109938582860161095c565b92505060206109a48582860161067a565b9150509250929050565b7f746f6b656e20626f72726f7720213d20574554480000000000000000000000005f82015250565b5f6109e26014836108bd565b91506109ed826109ae565b602082019050919050565b5f6020820190508181035f830152610a0f816109d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a4d8261065b565b9150610a588361065b565b9250828201905080821115610a7057610a6f610a16565b5b92915050565b5f8115159050919050565b610a8a81610a76565b8114610a94575f5ffd5b50565b5f81519050610aa581610a81565b92915050565b5f60208284031215610ac057610abf610549565b5b5f610acd84828501610a97565b91505092915050565b610adf816105ab565b82525050565b5f606082019050610af85f830186610633565b610b056020830185610633565b610b126040830184610ad6565b949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f610b58600183610b1a565b9150610b6382610b24565b600182019050919050565b5f8160601b9050919050565b5f610b8482610b6e565b9050919050565b5f610b9582610b7a565b9050919050565b610bad610ba882610570565b610b8b565b82525050565b5f819050919050565b5f819050919050565b610bd6610bd182610bb3565b610bbc565b82525050565b5f610be682610b4c565b9150610bf28286610b9c565b601482019150610c028285610bc5565b602082019150610c128284610bc5565b60208201915081905094935050505056fea2646970667358221220dce90cb54b397becc206066bfaf1b7f9c3601c6205e7052d7f8ba3ba1078a05864736f6c63430008220033a26469706673582212207c1e88165149ca8a22f105a51fb9fb29f050f34f5a37c29e5585b4327562ba0664736f6c63430008220033","sourceMap":"219:1043:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:367;;;:::i;:::-;;347:77;;;:::i;:::-;;4016:134:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5423:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:133;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:186;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:140;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4948:146;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;430:422:120;;;:::i;:::-;;3802:147:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3358:141;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:195:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:142:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1045:26:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;893:367:120;1003:4;;;;;;;;;;;:12;;;1023:4;1003:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1040:4;;;;;;;;;;;:13;;;1062:9;;;;;;;;;;;1074:4;1040:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1122:19;1144:10;1122:32;;351:42:0;1191:15:120;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:9;;;;;;;;;;;:19;;;1238:14;1218:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:331;893:367::o;347:77::-;393:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;381:9;;:36;;;;;;;;;;;;;;;;;;347:77::o;4016:134:6:-;4063:33;4127:16;4108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4016:134;:::o;5423:151::-;5472:42;5548:19;5526:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:151;:::o;5203:133::-;5249:33;5313:16;5294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:133;:::o;4730:141::-;4778:35;4846:18;4825:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:141;:::o;4465:186::-;4521:56;4618:26;4589:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4465:186;:::o;4231:140::-;4279:34;4346:18;4325:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4231:140;:::o;4948:146::-;4996:40;5069:18;5048:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4948:146;:::o;430:422:120:-;536:4;;;;;;;;;;;:12;;;556:4;536:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;573:4;;;;;;;;;;;:13;;;595:9;;;;;;;;;;;607:4;573:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;639:14;656:4;;;;;;;;;;;:14;;;679:9;;;;;;;;;;;656:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;639:51;;700:27;717:9;700:16;:27::i;:::-;770:19;792:8;770:30;;810:9;;;;;;;;;;;:19;;;830:14;810:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:390;;430:422::o;3802:147:6:-;3851:40;3924:18;3903:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3802:147;:::o;3358:141::-;3407:34;3474:18;3453:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3358:141;:::o;1287:195:1:-;1326:4;1346:7;;;;;;;;;;;1342:134;;;1376:4;1369:11;;;;1342:134;1463:1;1455:10;;200:28;192:37;;1418:7;;;200:28;192:37;;1236:17;1418:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;1411:54;;1287:195;;:::o;3579:142:6:-;3628:35;3696:18;3675:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:142;:::o;1045:26:13:-;;;;;;;;;;;;;:::o;1037:120:15:-;1090:60;1146:2;1106:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1090:15;:60::i;:::-;1037:120;:::o;678:129::-;749:51;792:7;749:42;761:29;749:11;:42::i;:::-;:51;;:::i;:::-;678:129;:::o;186:268::-;271:22;137:42;271:40;;435:1;432;422:7;416:14;411:2;402:7;398:16;382:14;375:5;364:73;360:78;346:102;186:268;:::o;460:212::-;571:33;652:4;643:13;;460:212;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;:::i;:::-;:::o;7:114:139:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2254:145::-;2352:6;2386:5;2380:12;2370:22;;2254:145;;;:::o;2405:215::-;2535:11;2569:6;2564:3;2557:19;2609:4;2604:3;2600:14;2585:29;;2405:215;;;;:::o;2626:163::-;2724:4;2747:3;2739:11;;2777:4;2772:3;2768:14;2760:22;;2626:163;;;:::o;2795:124::-;2872:6;2906:5;2900:12;2890:22;;2795:124;;;:::o;2925:184::-;3024:11;3058:6;3053:3;3046:19;3098:4;3093:3;3089:14;3074:29;;2925:184;;;;:::o;3115:142::-;3192:4;3215:3;3207:11;;3245:4;3240:3;3236:14;3228:22;;3115:142;;;:::o;3263:99::-;3315:6;3349:5;3343:12;3333:22;;3263:99;;;:::o;3368:159::-;3442:11;3476:6;3471:3;3464:19;3516:4;3511:3;3507:14;3492:29;;3368:159;;;;:::o;3533:139::-;3622:6;3617:3;3612;3606:23;3663:1;3654:6;3649:3;3645:16;3638:27;3533:139;;;:::o;3678:102::-;3719:6;3770:2;3766:7;3761:2;3754:5;3750:14;3746:28;3736:38;;3678:102;;;:::o;3786:357::-;3864:3;3892:39;3925:5;3892:39;:::i;:::-;3947:61;4001:6;3996:3;3947:61;:::i;:::-;3940:68;;4017:65;4075:6;4070:3;4063:4;4056:5;4052:16;4017:65;:::i;:::-;4107:29;4129:6;4107:29;:::i;:::-;4102:3;4098:39;4091:46;;3868:275;3786:357;;;;:::o;4149:196::-;4238:10;4273:66;4335:3;4327:6;4273:66;:::i;:::-;4259:80;;4149:196;;;;:::o;4351:123::-;4431:4;4463;4458:3;4454:14;4446:22;;4351:123;;;:::o;4508:971::-;4637:3;4666:64;4724:5;4666:64;:::i;:::-;4746:86;4825:6;4820:3;4746:86;:::i;:::-;4739:93;;4858:3;4903:4;4895:6;4891:17;4886:3;4882:27;4933:66;4993:5;4933:66;:::i;:::-;5022:7;5053:1;5038:396;5063:6;5060:1;5057:13;5038:396;;;5134:9;5128:4;5124:20;5119:3;5112:33;5185:6;5179:13;5213:84;5292:4;5277:13;5213:84;:::i;:::-;5205:92;;5320:70;5383:6;5320:70;:::i;:::-;5310:80;;5419:4;5414:3;5410:14;5403:21;;5098:336;5085:1;5082;5078:9;5073:14;;5038:396;;;5042:14;5450:4;5443:11;;5470:3;5463:10;;4642:837;;;;;4508:971;;;;:::o;5563:663::-;5684:3;5720:4;5715:3;5711:14;5807:4;5800:5;5796:16;5790:23;5826:63;5883:4;5878:3;5874:14;5860:12;5826:63;:::i;:::-;5735:164;5986:4;5979:5;5975:16;5969:23;6039:3;6033:4;6029:14;6022:4;6017:3;6013:14;6006:38;6065:123;6183:4;6169:12;6065:123;:::i;:::-;6057:131;;5909:290;6216:4;6209:11;;5689:537;5563:663;;;;:::o;6232:280::-;6363:10;6398:108;6502:3;6494:6;6398:108;:::i;:::-;6384:122;;6232:280;;;;:::o;6518:144::-;6619:4;6651;6646:3;6642:14;6634:22;;6518:144;;;:::o;6750:1159::-;6931:3;6960:85;7039:5;6960:85;:::i;:::-;7061:117;7171:6;7166:3;7061:117;:::i;:::-;7054:124;;7204:3;7249:4;7241:6;7237:17;7232:3;7228:27;7279:87;7360:5;7279:87;:::i;:::-;7389:7;7420:1;7405:459;7430:6;7427:1;7424:13;7405:459;;;7501:9;7495:4;7491:20;7486:3;7479:33;7552:6;7546:13;7580:126;7701:4;7686:13;7580:126;:::i;:::-;7572:134;;7729:91;7813:6;7729:91;:::i;:::-;7719:101;;7849:4;7844:3;7840:14;7833:21;;7465:399;7452:1;7449;7445:9;7440:14;;7405:459;;;7409:14;7880:4;7873:11;;7900:3;7893:10;;6936:973;;;;;6750:1159;;;;:::o;7915:497::-;8120:4;8158:2;8147:9;8143:18;8135:26;;8207:9;8201:4;8197:20;8193:1;8182:9;8178:17;8171:47;8235:170;8400:4;8391:6;8235:170;:::i;:::-;8227:178;;7915:497;;;;:::o;8418:152::-;8523:6;8557:5;8551:12;8541:22;;8418:152;;;:::o;8576:222::-;8713:11;8747:6;8742:3;8735:19;8787:4;8782:3;8778:14;8763:29;;8576:222;;;;:::o;8804:170::-;8909:4;8932:3;8924:11;;8962:4;8957:3;8953:14;8945:22;;8804:170;;;:::o;8980:113::-;9046:6;9080:5;9074:12;9064:22;;8980:113;;;:::o;9099:173::-;9187:11;9221:6;9216:3;9209:19;9261:4;9256:3;9252:14;9237:29;;9099:173;;;;:::o;9278:131::-;9344:4;9367:3;9359:11;;9397:4;9392:3;9388:14;9380:22;;9278:131;;;:::o;9415:149::-;9451:7;9491:66;9484:5;9480:78;9469:89;;9415:149;;;:::o;9570:105::-;9645:23;9662:5;9645:23;:::i;:::-;9640:3;9633:36;9570:105;;:::o;9681:175::-;9748:10;9769:44;9809:3;9801:6;9769:44;:::i;:::-;9845:4;9840:3;9836:14;9822:28;;9681:175;;;;:::o;9862:112::-;9931:4;9963;9958:3;9954:14;9946:22;;9862:112;;;:::o;10008:704::-;10115:3;10144:53;10191:5;10144:53;:::i;:::-;10213:75;10281:6;10276:3;10213:75;:::i;:::-;10206:82;;10312:55;10361:5;10312:55;:::i;:::-;10390:7;10421:1;10406:281;10431:6;10428:1;10425:13;10406:281;;;10507:6;10501:13;10534:61;10591:3;10576:13;10534:61;:::i;:::-;10527:68;;10618:59;10670:6;10618:59;:::i;:::-;10608:69;;10466:221;10453:1;10450;10446:9;10441:14;;10406:281;;;10410:14;10703:3;10696:10;;10120:592;;;10008:704;;;;:::o;10810:730::-;10945:3;10981:4;10976:3;10972:14;11072:4;11065:5;11061:16;11055:23;11125:3;11119:4;11115:14;11108:4;11103:3;11099:14;11092:38;11151:73;11219:4;11205:12;11151:73;:::i;:::-;11143:81;;10996:239;11322:4;11315:5;11311:16;11305:23;11375:3;11369:4;11365:14;11358:4;11353:3;11349:14;11342:38;11401:101;11497:4;11483:12;11401:101;:::i;:::-;11393:109;;11245:268;11530:4;11523:11;;10950:590;10810:730;;;;:::o;11546:308::-;11691:10;11726:122;11844:3;11836:6;11726:122;:::i;:::-;11712:136;;11546:308;;;;:::o;11860:151::-;11968:4;12000;11995:3;11991:14;11983:22;;11860:151;;;:::o;12113:1215::-;12308:3;12337:92;12423:5;12337:92;:::i;:::-;12445:124;12562:6;12557:3;12445:124;:::i;:::-;12438:131;;12595:3;12640:4;12632:6;12628:17;12623:3;12619:27;12670:94;12758:5;12670:94;:::i;:::-;12787:7;12818:1;12803:480;12828:6;12825:1;12822:13;12803:480;;;12899:9;12893:4;12889:20;12884:3;12877:33;12950:6;12944:13;12978:140;13113:4;13098:13;12978:140;:::i;:::-;12970:148;;13141:98;13232:6;13141:98;:::i;:::-;13131:108;;13268:4;13263:3;13259:14;13252:21;;12863:420;12850:1;12847;12843:9;12838:14;;12803:480;;;12807:14;13299:4;13292:11;;13319:3;13312:10;;12313:1015;;;;;12113:1215;;;;:::o;13334:525::-;13553:4;13591:2;13580:9;13576:18;13568:26;;13640:9;13634:4;13630:20;13626:1;13615:9;13611:17;13604:47;13668:184;13847:4;13838:6;13668:184;:::i;:::-;13660:192;;13334:525;;;;:::o;13865:194::-;13974:11;14008:6;14003:3;13996:19;14048:4;14043:3;14039:14;14024:29;;13865:194;;;;:::o;14093:991::-;14232:3;14261:64;14319:5;14261:64;:::i;:::-;14341:96;14430:6;14425:3;14341:96;:::i;:::-;14334:103;;14463:3;14508:4;14500:6;14496:17;14491:3;14487:27;14538:66;14598:5;14538:66;:::i;:::-;14627:7;14658:1;14643:396;14668:6;14665:1;14662:13;14643:396;;;14739:9;14733:4;14729:20;14724:3;14717:33;14790:6;14784:13;14818:84;14897:4;14882:13;14818:84;:::i;:::-;14810:92;;14925:70;14988:6;14925:70;:::i;:::-;14915:80;;15024:4;15019:3;15015:14;15008:21;;14703:336;14690:1;14687;14683:9;14678:14;;14643:396;;;14647:14;15055:4;15048:11;;15075:3;15068:10;;14237:847;;;;;14093:991;;;;:::o;15090:413::-;15253:4;15291:2;15280:9;15276:18;15268:26;;15340:9;15334:4;15330:20;15326:1;15315:9;15311:17;15304:47;15368:128;15491:4;15482:6;15368:128;:::i;:::-;15360:136;;15090:413;;;;:::o;15509:144::-;15606:6;15640:5;15634:12;15624:22;;15509:144;;;:::o;15659:214::-;15788:11;15822:6;15817:3;15810:19;15862:4;15857:3;15853:14;15838:29;;15659:214;;;;:::o;15879:162::-;15976:4;15999:3;15991:11;;16029:4;16024:3;16020:14;16012:22;;15879:162;;;:::o;16123:639::-;16242:3;16278:4;16273:3;16269:14;16365:4;16358:5;16354:16;16348:23;16384:63;16441:4;16436:3;16432:14;16418:12;16384:63;:::i;:::-;16293:164;16544:4;16537:5;16533:16;16527:23;16597:3;16591:4;16587:14;16580:4;16575:3;16571:14;16564:38;16623:101;16719:4;16705:12;16623:101;:::i;:::-;16615:109;;16467:268;16752:4;16745:11;;16247:515;16123:639;;;;:::o;16768:276::-;16897:10;16932:106;17034:3;17026:6;16932:106;:::i;:::-;16918:120;;16768:276;;;;:::o;17050:143::-;17150:4;17182;17177:3;17173:14;17165:22;;17050:143;;;:::o;17279:1151::-;17458:3;17487:84;17565:5;17487:84;:::i;:::-;17587:116;17696:6;17691:3;17587:116;:::i;:::-;17580:123;;17729:3;17774:4;17766:6;17762:17;17757:3;17753:27;17804:86;17884:5;17804:86;:::i;:::-;17913:7;17944:1;17929:456;17954:6;17951:1;17948:13;17929:456;;;18025:9;18019:4;18015:20;18010:3;18003:33;18076:6;18070:13;18104:124;18223:4;18208:13;18104:124;:::i;:::-;18096:132;;18251:90;18334:6;18251:90;:::i;:::-;18241:100;;18370:4;18365:3;18361:14;18354:21;;17989:396;17976:1;17973;17969:9;17964:14;;17929:456;;;17933:14;18401:4;18394:11;;18421:3;18414:10;;17463:967;;;;;17279:1151;;;;:::o;18436:493::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:168;18917:4;18908:6;18754:168;:::i;:::-;18746:176;;18436:493;;;;:::o;18935:90::-;18969:7;19012:5;19005:13;18998:21;18987:32;;18935:90;;;:::o;19031:109::-;19112:21;19127:5;19112:21;:::i;:::-;19107:3;19100:34;19031:109;;:::o;19146:210::-;19233:4;19271:2;19260:9;19256:18;19248:26;;19284:65;19346:1;19335:9;19331:17;19322:6;19284:65;:::i;:::-;19146:210;;;;:::o;19362:118::-;19449:24;19467:5;19449:24;:::i;:::-;19444:3;19437:37;19362:118;;:::o;19486:102::-;19548:7;19577:5;19566:16;;19486:102;;;:::o;19594:77::-;19631:7;19660:5;19649:16;;19594:77;;;:::o;19677:60::-;19705:3;19726:5;19719:12;;19677:60;;;:::o;19743:192::-;19818:9;19851:78;19869:59;19878:49;19921:5;19878:49;:::i;:::-;19869:59;:::i;:::-;19851:78;:::i;:::-;19838:91;;19743:192;;;:::o;19941:181::-;20053:62;20109:5;20053:62;:::i;:::-;20048:3;20041:75;19941:181;;:::o;20128:382::-;20274:4;20312:2;20301:9;20297:18;20289:26;;20325:71;20393:1;20382:9;20378:17;20369:6;20325:71;:::i;:::-;20406:97;20499:2;20488:9;20484:18;20475:6;20406:97;:::i;:::-;20128:382;;;;;:::o;20597:117::-;20706:1;20703;20696:12;20843:116;20913:21;20928:5;20913:21;:::i;:::-;20906:5;20903:32;20893:60;;20949:1;20946;20939:12;20893:60;20843:116;:::o;20965:137::-;21019:5;21050:6;21044:13;21035:22;;21066:30;21090:5;21066:30;:::i;:::-;20965:137;;;;:::o;21108:345::-;21175:6;21224:2;21212:9;21203:7;21199:23;21195:32;21192:119;;;21230:79;;:::i;:::-;21192:119;21350:1;21375:61;21428:7;21419:6;21408:9;21404:22;21375:61;:::i;:::-;21365:71;;21321:125;21108:345;;;;:::o;21459:118::-;21546:24;21564:5;21546:24;:::i;:::-;21541:3;21534:37;21459:118;;:::o;21583:222::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21727:71;21795:1;21784:9;21780:17;21771:6;21727:71;:::i;:::-;21583:222;;;;:::o;21811:180::-;21859:77;21856:1;21849:88;21956:4;21953:1;21946:15;21980:4;21977:1;21970:15;21997:320;22041:6;22078:1;22072:4;22068:12;22058:22;;22125:1;22119:4;22115:12;22146:18;22136:81;;22202:4;22194:6;22190:17;22180:27;;22136:81;22264:2;22256:6;22253:14;22233:18;22230:38;22227:84;;22283:18;;:::i;:::-;22227:84;22048:269;21997:320;;;:::o;22323:103::-;22386:7;22415:5;22404:16;;22323:103;;;:::o;22432:194::-;22508:9;22541:79;22559:60;22568:50;22612:5;22568:50;:::i;:::-;22559:60;:::i;:::-;22541:79;:::i;:::-;22528:92;;22432:194;;;:::o;22632:183::-;22745:63;22802:5;22745:63;:::i;:::-;22740:3;22733:76;22632:183;;:::o;22821:384::-;22968:4;23006:2;22995:9;22991:18;22983:26;;23019:71;23087:1;23076:9;23072:17;23063:6;23019:71;:::i;:::-;23100:98;23194:2;23183:9;23179:18;23170:6;23100:98;:::i;:::-;22821:384;;;;;:::o;23211:222::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23355:71;23423:1;23412:9;23408:17;23399:6;23355:71;:::i;:::-;23211:222;;;;:::o;23439:122::-;23512:24;23530:5;23512:24;:::i;:::-;23505:5;23502:35;23492:63;;23551:1;23548;23541:12;23492:63;23439:122;:::o;23567:143::-;23624:5;23655:6;23649:13;23640:22;;23671:33;23698:5;23671:33;:::i;:::-;23567:143;;;;:::o;23716:351::-;23786:6;23835:2;23823:9;23814:7;23810:23;23806:32;23803:119;;;23841:79;;:::i;:::-;23803:119;23961:1;23986:64;24042:7;24033:6;24022:9;24018:22;23986:64;:::i;:::-;23976:74;;23932:128;23716:351;;;;:::o;24073:77::-;24110:7;24139:5;24128:16;;24073:77;;;:::o;24156:118::-;24243:24;24261:5;24243:24;:::i;:::-;24238:3;24231:37;24156:118;;:::o;24280:332::-;24401:4;24439:2;24428:9;24424:18;24416:26;;24452:71;24520:1;24509:9;24505:17;24496:6;24452:71;:::i;:::-;24533:72;24601:2;24590:9;24586:18;24577:6;24533:72;:::i;:::-;24280:332;;;;;:::o;24618:122::-;24691:24;24709:5;24691:24;:::i;:::-;24684:5;24681:35;24671:63;;24730:1;24727;24720:12;24671:63;24618:122;:::o;24746:143::-;24803:5;24834:6;24828:13;24819:22;;24850:33;24877:5;24850:33;:::i;:::-;24746:143;;;;:::o;24895:351::-;24965:6;25014:2;25002:9;24993:7;24989:23;24985:32;24982:119;;;25020:79;;:::i;:::-;24982:119;25140:1;25165:64;25221:7;25212:6;25201:9;25197:22;25165:64;:::i;:::-;25155:74;;25111:128;24895:351;;;;:::o;25252:180::-;25300:77;25297:1;25290:88;25397:4;25394:1;25387:15;25421:4;25418:1;25411:15","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFlashloan()":"a8c82a57","testFlashloanFail()":"02bee1a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFlashloanFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"excludeArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `excludeArtifact`.\"},\"excludeContracts()\":{\"details\":\"Returns contract addresses configured via `excludeContract`.\"},\"excludeSelectors()\":{\"details\":\"Returns selector exclusions configured via `excludeSelector`.\"},\"excludeSenders()\":{\"details\":\"Returns senders configured via `excludeSender`.\"},\"targetArtifactSelectors()\":{\"details\":\"Returns artifact-selector targets configured via `targetArtifactSelector`.\"},\"targetArtifacts()\":{\"details\":\"Returns artifact identifiers configured via `targetArtifact`.\"},\"targetContracts()\":{\"details\":\"Returns contract addresses configured via `targetContract`.\"},\"targetInterfaces()\":{\"details\":\"Returns address-interface targets configured via `targetInterface`.\"},\"targetSelectors()\":{\"details\":\"Returns selector targets configured via `targetSelector`.\"},\"targetSenders()\":{\"details\":\"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist).\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/57_Flashloan/test/UniswapV3Flashloan.t.sol\":\"UniswapV2FlashloanTest\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf\",\"dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983\",\"dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2\",\"dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104\",\"dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7\",\"dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7\",\"dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23\",\"dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627\",\"dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7\",\"dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4\",\"dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"src/57_Flashloan/src/Lib.sol\":{\"keccak256\":\"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc\",\"urls\":[\"bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be\",\"dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc\"]},\"src/57_Flashloan/src/UniswapV3Flashloan.sol\":{\"keccak256\":\"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc\",\"dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU\"]},\"src/57_Flashloan/test/UniswapV3Flashloan.t.sol\":{\"keccak256\":\"0xa30f734e3932dd195a7f2b8052441a8696552ba8b1f5654ae7a8468f9e85db24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fd05397a6a66055e0e382a0fa0fbab71162962fc6b7891da5c6bdc66f0f224b\",\"dweb:/ipfs/QmbNiDSUU9MR8xHMkjiGBjyisWPVyoeJxXsm3AdjZ16eeH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloan"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFlashloanFail"}],"devdoc":{"kind":"dev","methods":{"excludeArtifacts()":{"details":"Returns artifact identifiers configured via `excludeArtifact`."},"excludeContracts()":{"details":"Returns contract addresses configured via `excludeContract`."},"excludeSelectors()":{"details":"Returns selector exclusions configured via `excludeSelector`."},"excludeSenders()":{"details":"Returns senders configured via `excludeSender`."},"targetArtifactSelectors()":{"details":"Returns artifact-selector targets configured via `targetArtifactSelector`."},"targetArtifacts()":{"details":"Returns artifact identifiers configured via `targetArtifact`."},"targetContracts()":{"details":"Returns contract addresses configured via `targetContract`."},"targetInterfaces()":{"details":"Returns address-interface targets configured via `targetInterface`."},"targetSelectors()":{"details":"Returns selector targets configured via `targetSelector`."},"targetSenders()":{"details":"Returns sender allowlist configured via `targetSender` (empty means no sender allowlist)."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/57_Flashloan/test/UniswapV3Flashloan.t.sol":"UniswapV2FlashloanTest"},"evmVersion":"prague","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x3e67a5e5023520a58889fc41e96326340f5091404c7fa0295a5bcd9fcaeec0ab","urls":["bzz-raw://6cc34f21722ac96d6a1a85297a61fd4564c55319e08f0d143bfe41783e24afcf","dweb:/ipfs/QmXFGD37meywgh2fB9TmjYMgXqjeiNY4VbrQw7zDqRsaz3"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x11a55631a3440fe8ce47bc1d8f64e5e4b3e5fc9d7fb5d3e3d9eaa5e2140272bb","urls":["bzz-raw://f32a286255890e902a5bd0e3601f985cdf5efecb36eec7483b96a0ea0ed40983","dweb:/ipfs/QmYvHt3HwVxc8iC6R9ao9iN7rRZ6P1Xa1Mww5jGsUfjFTD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xd7751c30f56f4cedf67baad5973bfc386c6a3475bdc6bfb01a06a130f6a3d26c","urls":["bzz-raw://573c4e1cc36b70cc16c5cd91d92b6227f59571ee7f75d3cfa08a6867417547d2","dweb:/ipfs/QmZBd3gsmZJEqMJ9ZwRd8C3B1U5kq5bpbqm1Gw22K8hXfy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdError.sol":{"keccak256":"0x1274b8ec8ed37e420f0e9f64487b22abb8270d3e23402b24c6f3427aadd2bbf5","urls":["bzz-raw://2bd7875d045468cb69f9d8c1aa3ca188e3e0df56fd958f6abe812ba3f354a104","dweb:/ipfs/QmbLveQx7HZRTvLw7fLwbHJe1XqRnvExjTEQ6MJF82ThxA"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x8999fb9f9f30410c779b4228fde60778f1f699616b7eb7126050cfd2c25fa37b","urls":["bzz-raw://c737f983b1770296c8c284f5835c8ecf1e2a999ab30483f0dc0fb8b3fa925ef7","dweb:/ipfs/QmfBQZXv4RUdYDJKVRXr3PUKXU114dJYGknFfBmnNDdBHs"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x85290fc3df17c1c59b86bd3479d9619f9b99e97faeb30f617bced925a0a49bf0","urls":["bzz-raw://b09672fe62652e01d4e8aa951cb4416c0ad4d2b8f8541ef31e28fd1d3bac87d7","dweb:/ipfs/QmT17qtKCY83ct3AqqNYotHpr1feUDCZnKsis4Qgt6cBBX"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x0be37e621781ad6ee0ad12127ad49df3765844562192d196dfa7662207b1c44f","urls":["bzz-raw://1a5260bcd0fbb7860a4bf3b155e9c9b7afb269d616d225c1a660dbbd2440ea23","dweb:/ipfs/QmcyoQjUqBhTPAKzB9Tq9MZFMZ45KNNV8hGhXHkCQh4mvL"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xd8583c467ce988619f04bed294e167e31a7e91c7d6e025d33ca0b6754149c147","urls":["bzz-raw://ba54d2d164fe036211932e101ca931405403612c2b8b41c035973042c4cfd627","dweb:/ipfs/QmdzfKB4qdErZfuhq7iXAcJFPhu2Ks14wWXDArDRmVXUuM"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Test.sol":{"keccak256":"0x85ec743febe9bc173a5382cab22334b44daa3fb19615f4bf2bf9000525d74a81","urls":["bzz-raw://ae0fee245cce3a372812abbf6a349aba73efb9d3b744f22969e7dbbe1ae675c7","dweb:/ipfs/QmZynvzQkNKWgSy48W3jj4FdYYczNfjbF8PuKnaFd6ovuK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x11aff2ee8ef31d9f95853b77f806d89c0028a4414969bd5f8d38d22b37f50f72","urls":["bzz-raw://e4b069af93c08b8d4915c3205260c323788dff362aa46fe83c041c3d2c6f2cb4","dweb:/ipfs/QmcYnpAfmbiLxFtPRAFSH8oUQXvsDfGrQXQ2A9MtEretba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"src/57_Flashloan/src/Lib.sol":{"keccak256":"0x9e0c02dca8bfcc0e98333a287ee8547fbef18c11e9f842794bb9f5d93d9619dc","urls":["bzz-raw://ffa2bcdd6f7cb221a4161c7e638c32f6ac7277050840174ffec5fa31d3b7c9be","dweb:/ipfs/QmU1JPevALbdoq8sj4hMEReqCzCJ7VGLbDcDM9CPcmoXwc"],"license":null},"src/57_Flashloan/src/UniswapV3Flashloan.sol":{"keccak256":"0x4a5a97b8d77e9d5b170aeb06d477fa2c1864dfc5b936b7df1841d371fc873397","urls":["bzz-raw://75ea23306bc7a85af62ba56c86994d99d3b7c75ff69cff10f272692c1c4d10dc","dweb:/ipfs/Qmd81qJm8qpPRj9ttAKnVAmyKnZuD6o45qVWm8RjrvPUgU"],"license":"MIT"},"src/57_Flashloan/test/UniswapV3Flashloan.t.sol":{"keccak256":"0xa30f734e3932dd195a7f2b8052441a8696552ba8b1f5654ae7a8468f9e85db24","urls":["bzz-raw://8fd05397a6a66055e0e382a0fa0fbab71162962fc6b7891da5c6bdc66f0f224b","dweb:/ipfs/QmbNiDSUU9MR8xHMkjiGBjyisWPVyoeJxXsm3AdjZ16eeH"],"license":"MIT"}},"version":1},"id":120} \ No newline at end of file diff --git a/out/Upgrade.sol/Logic1.json b/out/Upgrade.sol/Logic1.json index dcf1b847..41a72150 100644 --- a/out/Upgrade.sol/Logic1.json +++ b/out/Upgrade.sol/Logic1.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203326e090e73ba8181b43c0ad1a03637ab8f5fce36664da0afd8fbfd7ac5421b264736f6c63430008220033","sourceMap":"1037:340:106:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203326e090e73ba8181b43c0ad1a03637ab8f5fce36664da0afd8fbfd7ac5421b264736f6c63430008220033","sourceMap":"1037:340:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1120:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1324:51;;;:::i;:::-;;1183:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1156:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1120:29;;;;;;;;;;;;;:::o;1324:51::-;1355:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1324:51::o;1183:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1156:20::-;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"Logic1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"Logic1"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203326e090e73ba8181b43c0ad1a03637ab8f5fce36664da0afd8fbfd7ac5421b264736f6c63430008220033","sourceMap":"1037:340:100:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6f6c6400000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea26469706673582212203326e090e73ba8181b43c0ad1a03637ab8f5fce36664da0afd8fbfd7ac5421b264736f6c63430008220033","sourceMap":"1037:340:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1120:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1324:51;;;:::i;:::-;;1183:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1156:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1120:29;;;;;;;;;;;;;:::o;1324:51::-;1355:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1324:51::o;1183:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1156:20::-;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"Logic1\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"Logic1"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/out/Upgrade.sol/Logic2.json b/out/Upgrade.sol/Logic2.json index 9536f65d..e519949e 100644 --- a/out/Upgrade.sol/Logic2.json +++ b/out/Upgrade.sol/Logic2.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220ca25babf22b40d8e4f4cf73df72f45d8813c9228d747da8a4b0d4616ad5ed63d64736f6c63430008220033","sourceMap":"1396:339:106:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220ca25babf22b40d8e4f4cf73df72f45d8813c9228d747da8a4b0d4616ad5ed63d64736f6c63430008220033","sourceMap":"1396:339:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1479:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1682:51;;;:::i;:::-;;1542:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1515:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1479:29;;;;;;;;;;;;;:::o;1682:51::-;1713:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1682:51::o;1542:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1515:20::-;;;;;;;;;;;;;:::o;7:126:145:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"Logic2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"Logic2"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file +{"abi":[{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"foo","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600e575f5ffd5b506105ff8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220ca25babf22b40d8e4f4cf73df72f45d8813c9228d747da8a4b0d4616ad5ed63d64736f6c63430008220033","sourceMap":"1396:339:100:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80635c60da1b1461004e578063c29855781461006c578063f2c31bd914610076578063f851a44014610094575b5f5ffd5b6100566100b2565b604051610063919061020d565b60405180910390f35b6100746100d6565b005b61007e61011d565b60405161008b9190610296565b60405180910390f35b61009c6101a9565b6040516100a9919061020d565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600381526020017f6e657700000000000000000000000000000000000000000000000000000000008152506002908161011a91906104fa565b50565b6002805461012a90610310565b80601f016020809104026020016040519081016040528092919081815260200182805461015690610310565b80156101a15780601f10610178576101008083540402835291602001916101a1565b820191905f5260205f20905b81548152906001019060200180831161018457829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101f7826101ce565b9050919050565b610207816101ed565b82525050565b5f6020820190506102205f8301846101fe565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61026882610226565b6102728185610230565b9350610282818560208601610240565b61028b8161024e565b840191505092915050565b5f6020820190508181035f8301526102ae818461025e565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061032757607f821691505b60208210810361033a576103396102e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261039c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610361565b6103a68683610361565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103ea6103e56103e0846103be565b6103c7565b6103be565b9050919050565b5f819050919050565b610403836103d0565b61041761040f826103f1565b84845461036d565b825550505050565b5f5f905090565b61042e61041f565b6104398184846103fa565b505050565b5f5b8281101561045f576104545f828401610426565b600181019050610440565b505050565b601f8211156104b257828211156104b15761047e81610340565b61048783610352565b61049085610352565b602086101561049d575f90505b8083016104ac8284038261043e565b505050505b5b505050565b5f82821c905092915050565b5f6104d25f19846008026104b7565b1980831691505092915050565b5f6104ea83836104c3565b9150826002028217905092915050565b61050382610226565b67ffffffffffffffff81111561051c5761051b6102b6565b5b6105268254610310565b610531828285610464565b5f60209050601f831160018114610562575f8415610550578287015190505b61055a85826104df565b8655506105c1565b601f19841661057086610340565b5f5b8281101561059757848901518255600182019150602085019450602081019050610572565b868310156105b457848901516105b0601f8916826104c3565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220ca25babf22b40d8e4f4cf73df72f45d8813c9228d747da8a4b0d4616ad5ed63d64736f6c63430008220033","sourceMap":"1396:339:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1479:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1682:51;;;:::i;:::-;;1542:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1515:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1479:29;;;;;;;;;;;;;:::o;1682:51::-;1713:13;;;;;;;;;;;;;;;;;:5;:13;;;;;;:::i;:::-;;1682:51::o;1542:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1515:20::-;;;;;;;;;;;;;:::o;7:126:139:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:139::-;962:6;957:3;952;946:23;1003:1;994:6;989:3;985:16;978:27;873:139;;;:::o;1018:102::-;1059:6;1110:2;1106:7;1101:2;1094:5;1090:14;1086:28;1076:38;;1018:102;;;:::o;1126:377::-;1214:3;1242:39;1275:5;1242:39;:::i;:::-;1297:71;1361:6;1356:3;1297:71;:::i;:::-;1290:78;;1377:65;1435:6;1430:3;1423:4;1416:5;1412:16;1377:65;:::i;:::-;1467:29;1489:6;1467:29;:::i;:::-;1462:3;1458:39;1451:46;;1218:285;1126:377;;;;:::o;1509:313::-;1622:4;1660:2;1649:9;1645:18;1637:26;;1709:9;1703:4;1699:20;1695:1;1684:9;1680:17;1673:47;1737:78;1810:4;1801:6;1737:78;:::i;:::-;1729:86;;1509:313;;;;:::o;1828:180::-;1876:77;1873:1;1866:88;1973:4;1970:1;1963:15;1997:4;1994:1;1987:15;2014:180;2062:77;2059:1;2052:88;2159:4;2156:1;2149:15;2183:4;2180:1;2173:15;2200:320;2244:6;2281:1;2275:4;2271:12;2261:22;;2328:1;2322:4;2318:12;2349:18;2339:81;;2405:4;2397:6;2393:17;2383:27;;2339:81;2467:2;2459:6;2456:14;2436:18;2433:38;2430:84;;2486:18;;:::i;:::-;2430:84;2251:269;2200:320;;;:::o;2526:141::-;2575:4;2598:3;2590:11;;2621:3;2618:1;2611:14;2655:4;2652:1;2642:18;2634:26;;2526:141;;;:::o;2673:93::-;2710:6;2757:2;2752;2745:5;2741:14;2737:23;2727:33;;2673:93;;;:::o;2772:107::-;2816:8;2866:5;2860:4;2856:16;2835:37;;2772:107;;;;:::o;2885:393::-;2954:6;3004:1;2992:10;2988:18;3027:97;3057:66;3046:9;3027:97;:::i;:::-;3145:39;3175:8;3164:9;3145:39;:::i;:::-;3133:51;;3217:4;3213:9;3206:5;3202:21;3193:30;;3266:4;3256:8;3252:19;3245:5;3242:30;3232:40;;2961:317;;2885:393;;;;;:::o;3284:77::-;3321:7;3350:5;3339:16;;3284:77;;;:::o;3367:60::-;3395:3;3416:5;3409:12;;3367:60;;;:::o;3433:142::-;3483:9;3516:53;3534:34;3543:24;3561:5;3543:24;:::i;:::-;3534:34;:::i;:::-;3516:53;:::i;:::-;3503:66;;3433:142;;;:::o;3581:75::-;3624:3;3645:5;3638:12;;3581:75;;;:::o;3662:269::-;3772:39;3803:7;3772:39;:::i;:::-;3833:91;3882:41;3906:16;3882:41;:::i;:::-;3874:6;3867:4;3861:11;3833:91;:::i;:::-;3827:4;3820:105;3738:193;3662:269;;;:::o;3937:73::-;3982:3;4003:1;3996:8;;3937:73;:::o;4016:189::-;4093:32;;:::i;:::-;4134:65;4192:6;4184;4178:4;4134:65;:::i;:::-;4069:136;4016:189;;:::o;4211:214::-;4296:1;4281:138;4306:9;4303:1;4300:16;4281:138;;;4358:51;4407:1;4403;4392:9;4388:17;4358:51;:::i;:::-;4331:1;4328;4324:9;4319:14;;4281:138;;;4285:14;4211:214;;:::o;4431:746::-;4532:2;4527:3;4524:11;4521:649;;;4561:10;4556:3;4553:19;4550:610;;;4607:38;4639:5;4607:38;:::i;:::-;4682:22;4700:3;4682:22;:::i;:::-;4741:29;4759:10;4741:29;:::i;:::-;4931:2;4919:10;4916:18;4913:79;;;4973:1;4957:17;;4913:79;5042:12;5032:8;5028:27;5072:74;5132:12;5118;5114:31;5101:11;5072:74;:::i;:::-;4573:587;;;;4550:610;4521:649;4431:746;;;:::o;5183:117::-;5237:8;5287:5;5281:4;5277:16;5256:37;;5183:117;;;;:::o;5306:169::-;5350:6;5383:51;5431:1;5427:6;5419:5;5416:1;5412:13;5383:51;:::i;:::-;5379:56;5464:4;5458;5454:15;5444:25;;5357:118;5306:169;;;;:::o;5480:295::-;5556:4;5702:29;5727:3;5721:4;5702:29;:::i;:::-;5694:37;;5764:3;5761:1;5757:11;5751:4;5748:21;5740:29;;5480:295;;;;:::o;5780:1395::-;5897:37;5930:3;5897:37;:::i;:::-;5999:18;5991:6;5988:30;5985:56;;;6021:18;;:::i;:::-;5985:56;6065:38;6097:4;6091:11;6065:38;:::i;:::-;6150:67;6210:6;6202;6196:4;6150:67;:::i;:::-;6244:1;6268:4;6255:17;;6300:2;6292:6;6289:14;6317:1;6312:618;;;;6974:1;6991:6;6988:77;;;7040:9;7035:3;7031:19;7025:26;7016:35;;6988:77;7091:67;7151:6;7144:5;7091:67;:::i;:::-;7085:4;7078:81;6947:222;6282:887;;6312:618;6364:4;6360:9;6352:6;6348:22;6398:37;6430:4;6398:37;:::i;:::-;6457:1;6471:208;6485:7;6482:1;6479:14;6471:208;;;6564:9;6559:3;6555:19;6549:26;6541:6;6534:42;6615:1;6607:6;6603:14;6593:24;;6662:2;6651:9;6647:18;6634:31;;6508:4;6505:1;6501:12;6496:17;;6471:208;;;6707:6;6698:7;6695:19;6692:179;;;6765:9;6760:3;6756:19;6750:26;6808:48;6850:4;6842:6;6838:17;6827:9;6808:48;:::i;:::-;6800:6;6793:64;6715:156;6692:179;6917:1;6913;6905:6;6901:14;6897:22;6891:4;6884:36;6319:611;;;6282:887;;5872:1303;;;5780:1395;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","foo()":"c2985578","implementation()":"5c60da1b","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"Logic2\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"foo"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"Logic2"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/out/Upgrade.sol/SimpleUpgrade.json b/out/Upgrade.sol/SimpleUpgrade.json index 617b3e32..9213369f 100644 --- a/out/Upgrade.sol/SimpleUpgrade.json +++ b/out/Upgrade.sol/SimpleUpgrade.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161065438038061065483398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6105088061014c5f395ff3fe608060405260043610610042575f3560e01c80630900f010146100cb5780635c60da1b146100f3578063f2c31bd91461011d578063f851a4401461014757610043565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008c92919061031c565b5f60405180830381855af49150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b005b3480156100d6575f5ffd5b506100f160048036038101906100ec9190610392565b610171565b005b3480156100fe575f5ffd5b5061010761020b565b60405161011491906103cc565b60405180910390f35b348015610128575f5ffd5b5061013161022f565b60405161013e9190610455565b60405180910390f35b348015610152575f5ffd5b5061015b6102bb565b60405161016891906103cc565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c9575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461023c906104a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610268906104a2565b80156102b35780601f1061028a576101008083540402835291602001916102b3565b820191905f5260205f20905b81548152906001019060200180831161029657829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f61030383856102e0565b93506103108385846102ea565b82840190509392505050565b5f6103288284866102f8565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036182610338565b9050919050565b61037181610357565b811461037b575f5ffd5b50565b5f8135905061038c81610368565b92915050565b5f602082840312156103a7576103a6610334565b5b5f6103b48482850161037e565b91505092915050565b6103c681610357565b82525050565b5f6020820190506103df5f8301846103bd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610427826103e5565b61043181856103ef565b93506104418185602086016103ff565b61044a8161040d565b840191505092915050565b5f6020820190508181035f83015261046d818461041d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104b957607f821691505b6020821081036104cc576104cb610475565b5b5091905056fea2646970667358221220e8e6502f47f2ece7f371611fb3b232df8a0ca7c6f2682ed4d6fbcff0deef6c7e64736f6c63430008220033","sourceMap":"240:778:106:-:0;;;506:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;560:10;552:5;;:18;;;;;;;;;;;;;;;;;;597:15;580:14;;:32;;;;;;;;;;;;;;;;;;506:113;240:778;;88:117:145;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;240:778:106:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610042575f3560e01c80630900f010146100cb5780635c60da1b146100f3578063f2c31bd91461011d578063f851a4401461014757610043565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008c92919061031c565b5f60405180830381855af49150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b005b3480156100d6575f5ffd5b506100f160048036038101906100ec9190610392565b610171565b005b3480156100fe575f5ffd5b5061010761020b565b60405161011491906103cc565b60405180910390f35b348015610128575f5ffd5b5061013161022f565b60405161013e9190610455565b60405180910390f35b348015610152575f5ffd5b5061015b6102bb565b60405161016891906103cc565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c9575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461023c906104a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610268906104a2565b80156102b35780601f1061028a576101008083540402835291602001916102b3565b820191905f5260205f20905b81548152906001019060200180831161029657829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f61030383856102e0565b93506103108385846102ea565b82840190509392505050565b5f6103288284866102f8565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036182610338565b9050919050565b61037181610357565b811461037b575f5ffd5b50565b5f8135905061038c81610368565b92915050565b5f602082840312156103a7576103a6610334565b5b5f6103b48482850161037e565b91505092915050565b6103c681610357565b82525050565b5f6020820190506103df5f8301846103bd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610427826103e5565b61043181856103ef565b93506104418185602086016103ff565b61044a8161040d565b840191505092915050565b5f6020820190508181035f83015261046d818461041d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104b957607f821691505b6020821081036104cc576104cb610475565b5b5091905056fea2646970667358221220e8e6502f47f2ece7f371611fb3b232df8a0ca7c6f2682ed4d6fbcff0deef6c7e64736f6c63430008220033","sourceMap":"240:778:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;719:12;733:17;754:14;;;;;;;;;;;:27;;782:8;;754:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;874:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;269:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;367:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;326:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:142;959:5;;;;;;;;;;;945:19;;:10;:19;;;937:28;;;;;;992:17;975:14;;:34;;;;;;;;;;;;;;;;;;874:142;:::o;269:29::-;;;;;;;;;;;;;:::o;367:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;326:20::-;;;;;;;;;;;;;:::o;7:147:145:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;1047:117::-;1156:1;1153;1146:12;1293:126;1330:7;1370:42;1363:5;1359:54;1348:65;;1293:126;;;:::o;1425:96::-;1462:7;1491:24;1509:5;1491:24;:::i;:::-;1480:35;;1425:96;;;:::o;1527:122::-;1600:24;1618:5;1600:24;:::i;:::-;1593:5;1590:35;1580:63;;1639:1;1636;1629:12;1580:63;1527:122;:::o;1655:139::-;1701:5;1739:6;1726:20;1717:29;;1755:33;1782:5;1755:33;:::i;:::-;1655:139;;;;:::o;1800:329::-;1859:6;1908:2;1896:9;1887:7;1883:23;1879:32;1876:119;;;1914:79;;:::i;:::-;1876:119;2034:1;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2005:117;1800:329;;;;:::o;2135:118::-;2222:24;2240:5;2222:24;:::i;:::-;2217:3;2210:37;2135:118;;:::o;2259:222::-;2352:4;2390:2;2379:9;2375:18;2367:26;;2403:71;2471:1;2460:9;2456:17;2447:6;2403:71;:::i;:::-;2259:222;;;;:::o;2487:99::-;2539:6;2573:5;2567:12;2557:22;;2487:99;;;:::o;2592:169::-;2676:11;2710:6;2705:3;2698:19;2750:4;2745:3;2741:14;2726:29;;2592:169;;;;:::o;2767:139::-;2856:6;2851:3;2846;2840:23;2897:1;2888:6;2883:3;2879:16;2872:27;2767:139;;;:::o;2912:102::-;2953:6;3004:2;3000:7;2995:2;2988:5;2984:14;2980:28;2970:38;;2912:102;;;:::o;3020:377::-;3108:3;3136:39;3169:5;3136:39;:::i;:::-;3191:71;3255:6;3250:3;3191:71;:::i;:::-;3184:78;;3271:65;3329:6;3324:3;3317:4;3310:5;3306:16;3271:65;:::i;:::-;3361:29;3383:6;3361:29;:::i;:::-;3356:3;3352:39;3345:46;;3112:285;3020:377;;;;:::o;3403:313::-;3516:4;3554:2;3543:9;3539:18;3531:26;;3603:9;3597:4;3593:20;3589:1;3578:9;3574:17;3567:47;3631:78;3704:4;3695:6;3631:78;:::i;:::-;3623:86;;3403:313;;;;:::o;3722:180::-;3770:77;3767:1;3760:88;3867:4;3864:1;3857:15;3891:4;3888:1;3881:15;3908:320;3952:6;3989:1;3983:4;3979:12;3969:22;;4036:1;4030:4;4026:12;4057:18;4047:81;;4113:4;4105:6;4101:17;4091:27;;4047:81;4175:2;4167:6;4164:14;4144:18;4141:38;4138:84;;4194:18;;:::i;:::-;4138:84;3959:269;3908:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"SimpleUpgrade\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"SimpleUpgrade"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":106} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_implementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"words","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b5060405161065438038061065483398181016040528101906100319190610114565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061013f565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100e3826100ba565b9050919050565b6100f3816100d9565b81146100fd575f5ffd5b50565b5f8151905061010e816100ea565b92915050565b5f60208284031215610129576101286100b6565b5b5f61013684828501610100565b91505092915050565b6105088061014c5f395ff3fe608060405260043610610042575f3560e01c80630900f010146100cb5780635c60da1b146100f3578063f2c31bd91461011d578063f851a4401461014757610043565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008c92919061031c565b5f60405180830381855af49150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b005b3480156100d6575f5ffd5b506100f160048036038101906100ec9190610392565b610171565b005b3480156100fe575f5ffd5b5061010761020b565b60405161011491906103cc565b60405180910390f35b348015610128575f5ffd5b5061013161022f565b60405161013e9190610455565b60405180910390f35b348015610152575f5ffd5b5061015b6102bb565b60405161016891906103cc565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c9575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461023c906104a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610268906104a2565b80156102b35780601f1061028a576101008083540402835291602001916102b3565b820191905f5260205f20905b81548152906001019060200180831161029657829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f61030383856102e0565b93506103108385846102ea565b82840190509392505050565b5f6103288284866102f8565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036182610338565b9050919050565b61037181610357565b811461037b575f5ffd5b50565b5f8135905061038c81610368565b92915050565b5f602082840312156103a7576103a6610334565b5b5f6103b48482850161037e565b91505092915050565b6103c681610357565b82525050565b5f6020820190506103df5f8301846103bd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610427826103e5565b61043181856103ef565b93506104418185602086016103ff565b61044a8161040d565b840191505092915050565b5f6020820190508181035f83015261046d818461041d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104b957607f821691505b6020821081036104cc576104cb610475565b5b5091905056fea2646970667358221220e8e6502f47f2ece7f371611fb3b232df8a0ca7c6f2682ed4d6fbcff0deef6c7e64736f6c63430008220033","sourceMap":"240:778:100:-:0;;;506:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;560:10;552:5;;:18;;;;;;;;;;;;;;;;;;597:15;580:14;;:32;;;;;;;;;;;;;;;;;;506:113;240:778;;88:117:139;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;240:778:100:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610042575f3560e01c80630900f010146100cb5780635c60da1b146100f3578063f2c31bd91461011d578063f851a4401461014757610043565b5b5f5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f3660405161008c92919061031c565b5f60405180830381855af49150503d805f81146100c4576040519150601f19603f3d011682016040523d82523d5f602084013e6100c9565b606091505b005b3480156100d6575f5ffd5b506100f160048036038101906100ec9190610392565b610171565b005b3480156100fe575f5ffd5b5061010761020b565b60405161011491906103cc565b60405180910390f35b348015610128575f5ffd5b5061013161022f565b60405161013e9190610455565b60405180910390f35b348015610152575f5ffd5b5061015b6102bb565b60405161016891906103cc565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101c9575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461023c906104a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610268906104a2565b80156102b35780601f1061028a576101008083540402835291602001916102b3565b820191905f5260205f20905b81548152906001019060200180831161029657829003601f168201915b505050505081565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81905092915050565b828183375f83830152505050565b5f61030383856102e0565b93506103108385846102ea565b82840190509392505050565b5f6103288284866102f8565b91508190509392505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61036182610338565b9050919050565b61037181610357565b811461037b575f5ffd5b50565b5f8135905061038c81610368565b92915050565b5f602082840312156103a7576103a6610334565b5b5f6103b48482850161037e565b91505092915050565b6103c681610357565b82525050565b5f6020820190506103df5f8301846103bd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610427826103e5565b61043181856103ef565b93506104418185602086016103ff565b61044a8161040d565b840191505092915050565b5f6020820190508181035f83015261046d818461041d565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104b957607f821691505b6020821081036104cc576104cb610475565b5b5091905056fea2646970667358221220e8e6502f47f2ece7f371611fb3b232df8a0ca7c6f2682ed4d6fbcff0deef6c7e64736f6c63430008220033","sourceMap":"240:778:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;719:12;733:17;754:14;;;;;;;;;;;:27;;782:8;;754:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;874:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;269:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;367:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;326:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:142;959:5;;;;;;;;;;;945:19;;:10;:19;;;937:28;;;;;;992:17;975:14;;:34;;;;;;;;;;;;;;;;;;874:142;:::o;269:29::-;;;;;;;;;;;;;:::o;367:19::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;326:20::-;;;;;;;;;;;;;:::o;7:147:139:-;108:11;145:3;130:18;;7:147;;;;:::o;160:148::-;258:6;253:3;248;235:30;299:1;290:6;285:3;281:16;274:27;160:148;;;:::o;336:327::-;450:3;471:88;552:6;547:3;471:88;:::i;:::-;464:95;;569:56;618:6;613:3;606:5;569:56;:::i;:::-;650:6;645:3;641:16;634:23;;336:327;;;;;:::o;669:291::-;809:3;831:103;930:3;921:6;913;831:103;:::i;:::-;824:110;;951:3;944:10;;669:291;;;;;:::o;1047:117::-;1156:1;1153;1146:12;1293:126;1330:7;1370:42;1363:5;1359:54;1348:65;;1293:126;;;:::o;1425:96::-;1462:7;1491:24;1509:5;1491:24;:::i;:::-;1480:35;;1425:96;;;:::o;1527:122::-;1600:24;1618:5;1600:24;:::i;:::-;1593:5;1590:35;1580:63;;1639:1;1636;1629:12;1580:63;1527:122;:::o;1655:139::-;1701:5;1739:6;1726:20;1717:29;;1755:33;1782:5;1755:33;:::i;:::-;1655:139;;;;:::o;1800:329::-;1859:6;1908:2;1896:9;1887:7;1883:23;1879:32;1876:119;;;1914:79;;:::i;:::-;1876:119;2034:1;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2005:117;1800:329;;;;:::o;2135:118::-;2222:24;2240:5;2222:24;:::i;:::-;2217:3;2210:37;2135:118;;:::o;2259:222::-;2352:4;2390:2;2379:9;2375:18;2367:26;;2403:71;2471:1;2460:9;2456:17;2447:6;2403:71;:::i;:::-;2259:222;;;;:::o;2487:99::-;2539:6;2573:5;2567:12;2557:22;;2487:99;;;:::o;2592:169::-;2676:11;2710:6;2705:3;2698:19;2750:4;2745:3;2741:14;2726:29;;2592:169;;;;:::o;2767:139::-;2856:6;2851:3;2846;2840:23;2897:1;2888:6;2883:3;2879:16;2872:27;2767:139;;;:::o;2912:102::-;2953:6;3004:2;3000:7;2995:2;2988:5;2984:14;2980:28;2970:38;;2912:102;;;:::o;3020:377::-;3108:3;3136:39;3169:5;3136:39;:::i;:::-;3191:71;3255:6;3250:3;3191:71;:::i;:::-;3184:78;;3271:65;3329:6;3324:3;3317:4;3310:5;3306:16;3271:65;:::i;:::-;3361:29;3383:6;3361:29;:::i;:::-;3356:3;3352:39;3345:46;;3112:285;3020:377;;;;:::o;3403:313::-;3516:4;3554:2;3543:9;3539:18;3531:26;;3603:9;3597:4;3593:20;3589:1;3578:9;3574:17;3567:47;3631:78;3704:4;3695:6;3631:78;:::i;:::-;3623:86;;3403:313;;;;:::o;3722:180::-;3770:77;3767:1;3760:88;3867:4;3864:1;3857:15;3891:4;3888:1;3881:15;3908:320;3952:6;3989:1;3983:4;3979:12;3969:22;;4036:1;4030:4;4026:12;4057:18;4047:81;;4113:4;4105:6;4101:17;4091:27;;4047:81;4175:2;4167:6;4164:14;4144:18;4141:38;4138:84;;4194:18;;:::i;:::-;4138:84;3959:269;3908:320;;;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","upgrade(address)":"0900f010","words()":"f2c31bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"words\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/47_Upgrade/Upgrade.sol\":\"SimpleUpgrade\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/47_Upgrade/Upgrade.sol\":{\"keccak256\":\"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661\",\"dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[],"stateMutability":"view","type":"function","name":"words","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/47_Upgrade/Upgrade.sol":"SimpleUpgrade"},"evmVersion":"prague","libraries":{}},"sources":{"src/47_Upgrade/Upgrade.sol":{"keccak256":"0xb0fb462671f46207e2c2f79c60eec801b18a4ce134967766d877302886df8be4","urls":["bzz-raw://29f6c26a7e04ca07674b7e711571bd67ab438d16e0a9cf1a6d1c9b4abe220661","dweb:/ipfs/QmaCkYQj9oZYZmr1RnSqks68Q6ekcWkH4qTLXQupxgwDsy"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file diff --git a/out/ValueTypes.sol/ValueTypes.json b/out/ValueTypes.sol/ValueTypes.json index 6bc329d0..6060684e 100644 --- a/out/ValueTypes.sol/ValueTypes.json +++ b/out/ValueTypes.sol/ValueTypes.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"_address","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_address1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"_bool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool1","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool3","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool4","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool5","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_byte","inputs":[],"outputs":[{"name":"","type":"bytes1","internalType":"bytes1"}],"stateMutability":"view"},{"type":"function","name":"_byte32","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"_int","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"_number","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number1","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number2","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number3","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_numberbool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_uint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"enumToUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260015f5f6101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16155f60016101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16801561006957505f60019054906101000a900460ff165b5f60026101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16806100a557505f60019054906101000a900460ff165b5f60036101000a81548160ff0219169083151502179055505f60019054906101000a900460ff1615155f5f9054906101000a900460ff161515145f60046101000a81548160ff0219169083151502179055505f60019054906101000a900460ff1615155f5f9054906101000a900460ff16151514155f60056101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600155600160025563013489aa60035560016003546101729190610358565b600455600460055560016006556006546005541160075f6101000a81548160ff021916908315150217905550737a58c0be72be218b41c608b7fe7c5bb630736c71600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316009557f4d696e69536f6c69646974790000000000000000000000000000000000000000600a55600a545f602081106102ca576102c961038b565b5b1a60f81b600b5f6101000a81548160ff021916908360f81c02179055505f600b60016101000a81548160ff0219169083600281111561030c5761030b6103b8565b5b021790555034801561031c575f5ffd5b506103e5565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61036282610322565b915061036d83610322565b92508282019050808211156103855761038461032b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61069c806103f25f395ff3fe608060405234801561000f575f5ffd5b506004361061011f575f3560e01c8063924b3d21116100ab578063aeb6f2921161006f578063aeb6f292146102c7578063af45869e146102e5578063b69ef8a814610303578063e37c6c8214610321578063f9bd55cc1461033f5761011f565b8063924b3d21146102315780639e6ba9c21461024f578063a2e7fe8a1461026d578063aa9949261461028b578063ac729403146102a95761011f565b80632543135b116100f25780632543135b1461019b5780632b36a762146101b95780633f346102146101d75780636b1d2c4e146101f55780636e8d0c9e146102135761011f565b8063010199581461012357806318bad2171461014157806319bff7df1461015f5780631db19d8c1461017d575b5f5ffd5b61012b61035d565b60405161013891906104a7565b60405180910390f35b610149610385565b60405161015691906104ff565b60405180910390f35b6101676103ab565b60405161017491906104a7565b60405180910390f35b6101856103b1565b6040516101929190610532565b60405180910390f35b6101a36103c3565b6040516101b091906104a7565b60405180910390f35b6101c16103c9565b6040516101ce9190610532565b60405180910390f35b6101df6103db565b6040516101ec9190610563565b60405180910390f35b6101fd6103e1565b60405161020a91906104a7565b60405180910390f35b61021b6103e7565b60405161022891906104a7565b60405180910390f35b6102396103ed565b6040516102469190610532565b60405180910390f35b6102576103ff565b6040516102649190610532565b60405180910390f35b610275610410565b6040516102829190610532565b60405180910390f35b610293610422565b6040516102a09190610532565b60405180910390f35b6102b1610434565b6040516102be919061059c565b60405180910390f35b6102cf610459565b6040516102dc91906105ef565b60405180910390f35b6102ed61046b565b6040516102fa9190610620565b60405180910390f35b61030b610471565b60405161031891906104a7565b60405180910390f35b610329610477565b6040516103369190610532565b60405180910390f35b610347610489565b60405161035491906104a7565b60405180910390f35b5f600b60019054906101000a900460ff1660028111156103805761037f610639565b5b905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b5f60059054906101000a900460ff1681565b60025481565b5f60049054906101000a900460ff1681565b600a5481565b60055481565b60045481565b5f60019054906101000a900460ff1681565b5f5f9054906101000a900460ff1681565b5f60029054906101000a900460ff1681565b5f60039054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460f81b81565b60015481565b60095481565b60075f9054906101000a900460ff1681565b60035481565b5f819050919050565b6104a18161048f565b82525050565b5f6020820190506104ba5f830184610498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104e9826104c0565b9050919050565b6104f9816104df565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f8115159050919050565b61052c81610518565b82525050565b5f6020820190506105455f830184610523565b92915050565b5f819050919050565b61055d8161054b565b82525050565b5f6020820190506105765f830184610554565b92915050565b5f610586826104c0565b9050919050565b6105968161057c565b82525050565b5f6020820190506105af5f83018461058d565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6105e9816105b5565b82525050565b5f6020820190506106025f8301846105e0565b92915050565b5f819050919050565b61061a81610608565b82525050565b5f6020820190506106335f830184610611565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212207702055ce109a7434e3c9043fbedc92d842cd1e66d0f9bab4d16ff36e5f8b20e64736f6c63430008220033","sourceMap":"57:1508:45:-:0;;;119:4;99:24;;;;;;;;;;;;;;;;;;;;171:5;;;;;;;;;;;170:6;149:27;;;;;;;;;;;;;;;;;;;;212:5;;;;;;;;;;;:15;;;;;221:6;;;;;;;;;;;212:15;191:36;;;;;;;;;;;;;;;;;;;;260:5;;;;;;;;;;;:15;;;;269:6;;;;;;;;;;;260:15;239:36;;;;;;;;;;;;;;;;;;;;317:6;;;;;;;;;;;308:15;;:5;;;;;;;;;;;:15;;;287:36;;;;;;;;;;;;;;;;;;;;368:6;;;;;;;;;;;359:15;;:5;;;;;;;;;;;:15;;;;338:36;;;;;;;;;;;;;;;;;;;;426:2;408:20;;454:1;434:21;;486:8;461:33;;556:1;546:7;;:11;;;;:::i;:::-;520:37;;606:4;580:30;;652:5;626:31;;713:8;;702;;:19;676:45;;;;;;;;;;;;;;;;;;;;782:42;756:68;;;;;;;;;;;;;;;;;;;;873:8;;;;;;;;;;;830:52;;;;;;;;;;;;;;;;;;;;988:9;;;;;;;;;;;:17;;;963:42;;1078:39;;;1224:7;;1232:1;1224:10;;;;;;;:::i;:::-;;;;;1202:32;;;;;;;;;;;;;;;;;;;;1418:13;1399:32;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;57:1508;;;;;;;;;;;;7:77:145;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:180::-;521:77;518:1;511:88;618:4;615:1;608:15;642:4;639:1;632:15;659:180;707:77;704:1;697:88;804:4;801:1;794:15;828:4;825:1;818:15;57:1508:45;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061011f575f3560e01c8063924b3d21116100ab578063aeb6f2921161006f578063aeb6f292146102c7578063af45869e146102e5578063b69ef8a814610303578063e37c6c8214610321578063f9bd55cc1461033f5761011f565b8063924b3d21146102315780639e6ba9c21461024f578063a2e7fe8a1461026d578063aa9949261461028b578063ac729403146102a95761011f565b80632543135b116100f25780632543135b1461019b5780632b36a762146101b95780633f346102146101d75780636b1d2c4e146101f55780636e8d0c9e146102135761011f565b8063010199581461012357806318bad2171461014157806319bff7df1461015f5780631db19d8c1461017d575b5f5ffd5b61012b61035d565b60405161013891906104a7565b60405180910390f35b610149610385565b60405161015691906104ff565b60405180910390f35b6101676103ab565b60405161017491906104a7565b60405180910390f35b6101856103b1565b6040516101929190610532565b60405180910390f35b6101a36103c3565b6040516101b091906104a7565b60405180910390f35b6101c16103c9565b6040516101ce9190610532565b60405180910390f35b6101df6103db565b6040516101ec9190610563565b60405180910390f35b6101fd6103e1565b60405161020a91906104a7565b60405180910390f35b61021b6103e7565b60405161022891906104a7565b60405180910390f35b6102396103ed565b6040516102469190610532565b60405180910390f35b6102576103ff565b6040516102649190610532565b60405180910390f35b610275610410565b6040516102829190610532565b60405180910390f35b610293610422565b6040516102a09190610532565b60405180910390f35b6102b1610434565b6040516102be919061059c565b60405180910390f35b6102cf610459565b6040516102dc91906105ef565b60405180910390f35b6102ed61046b565b6040516102fa9190610620565b60405180910390f35b61030b610471565b60405161031891906104a7565b60405180910390f35b610329610477565b6040516103369190610532565b60405180910390f35b610347610489565b60405161035491906104a7565b60405180910390f35b5f600b60019054906101000a900460ff1660028111156103805761037f610639565b5b905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b5f60059054906101000a900460ff1681565b60025481565b5f60049054906101000a900460ff1681565b600a5481565b60055481565b60045481565b5f60019054906101000a900460ff1681565b5f5f9054906101000a900460ff1681565b5f60029054906101000a900460ff1681565b5f60039054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460f81b81565b60015481565b60095481565b60075f9054906101000a900460ff1681565b60035481565b5f819050919050565b6104a18161048f565b82525050565b5f6020820190506104ba5f830184610498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104e9826104c0565b9050919050565b6104f9816104df565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f8115159050919050565b61052c81610518565b82525050565b5f6020820190506105455f830184610523565b92915050565b5f819050919050565b61055d8161054b565b82525050565b5f6020820190506105765f830184610554565b92915050565b5f610586826104c0565b9050919050565b6105968161057c565b82525050565b5f6020820190506105af5f83018461058d565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6105e9816105b5565b82525050565b5f6020820190506106025f8301846105e0565b92915050565b5f819050919050565b61061a81610608565b82525050565b5f6020820190506106335f830184610611565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212207702055ce109a7434e3c9043fbedc92d842cd1e66d0f9bab4d16ff36e5f8b20e64736f6c63430008220033","sourceMap":"57:1508:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;756:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;626:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;434:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;287:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;520:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;149:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;99:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;191:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;239;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;830:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1202:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;408:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;963:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;461:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1478:85;1522:4;1549:6;;;;;;;;;;;1544:12;;;;;;;;:::i;:::-;;1537:19;;1478:85;:::o;756:68::-;;;;;;;;;;;;;:::o;626:31::-;;;;:::o;338:36::-;;;;;;;;;;;;;:::o;434:21::-;;;;:::o;287:36::-;;;;;;;;;;;;;:::o;1078:39::-;;;;:::o;580:30::-;;;;:::o;520:37::-;;;;:::o;149:27::-;;;;;;;;;;;;;:::o;99:24::-;;;;;;;;;;;;;:::o;191:36::-;;;;;;;;;;;;;:::o;239:::-;;;;;;;;;;;;;:::o;830:52::-;;;;;;;;;;;;;:::o;1202:32::-;;;;;;;;;;;;;:::o;408:20::-;;;;:::o;963:42::-;;;;:::o;676:45::-;;;;;;;;;;;;;:::o;461:33::-;;;;:::o;7:77:145:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:90::-;1062:7;1105:5;1098:13;1091:21;1080:32;;1028:90;;;:::o;1124:109::-;1205:21;1220:5;1205:21;:::i;:::-;1200:3;1193:34;1124:109;;:::o;1239:210::-;1326:4;1364:2;1353:9;1349:18;1341:26;;1377:65;1439:1;1428:9;1424:17;1415:6;1377:65;:::i;:::-;1239:210;;;;:::o;1455:77::-;1492:7;1521:5;1510:16;;1455:77;;;:::o;1538:118::-;1625:24;1643:5;1625:24;:::i;:::-;1620:3;1613:37;1538:118;;:::o;1662:222::-;1755:4;1793:2;1782:9;1778:18;1770:26;;1806:71;1874:1;1863:9;1859:17;1850:6;1806:71;:::i;:::-;1662:222;;;;:::o;1890:104::-;1935:7;1964:24;1982:5;1964:24;:::i;:::-;1953:35;;1890:104;;;:::o;2000:142::-;2103:32;2129:5;2103:32;:::i;:::-;2098:3;2091:45;2000:142;;:::o;2148:254::-;2257:4;2295:2;2284:9;2280:18;2272:26;;2308:87;2392:1;2381:9;2377:17;2368:6;2308:87;:::i;:::-;2148:254;;;;:::o;2408:149::-;2444:7;2484:66;2477:5;2473:78;2462:89;;2408:149;;;:::o;2563:115::-;2648:23;2665:5;2648:23;:::i;:::-;2643:3;2636:36;2563:115;;:::o;2684:218::-;2775:4;2813:2;2802:9;2798:18;2790:26;;2826:69;2892:1;2881:9;2877:17;2868:6;2826:69;:::i;:::-;2684:218;;;;:::o;2908:76::-;2944:7;2973:5;2962:16;;2908:76;;;:::o;2990:115::-;3075:23;3092:5;3075:23;:::i;:::-;3070:3;3063:36;2990:115;;:::o;3111:218::-;3202:4;3240:2;3229:9;3225:18;3217:26;;3253:69;3319:1;3308:9;3304:17;3295:6;3253:69;:::i;:::-;3111:218;;;;:::o;3335:180::-;3383:77;3380:1;3373:88;3480:4;3477:1;3470:15;3504:4;3501:1;3494:15","linkReferences":{}},"methodIdentifiers":{"_address()":"18bad217","_address1()":"ac729403","_bool()":"9e6ba9c2","_bool1()":"924b3d21","_bool2()":"a2e7fe8a","_bool3()":"aa994926","_bool4()":"2b36a762","_bool5()":"1db19d8c","_byte()":"aeb6f292","_byte32()":"3f346102","_int()":"af45869e","_number()":"f9bd55cc","_number1()":"6e8d0c9e","_number2()":"6b1d2c4e","_number3()":"19bff7df","_numberbool()":"e37c6c82","_uint()":"2543135b","balance()":"b69ef8a8","enumToUint()":"01019958"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_address1\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool1\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool3\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool4\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool5\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_byte\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_byte32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_int\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_numberbool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_uint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumToUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/02_ValueTypes/ValueTypes.sol\":\"ValueTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/02_ValueTypes/ValueTypes.sol\":{\"keccak256\":\"0x73c1d0f0ac4dcf5301a15ce89b55d8809965876d262df1f393cf2f0e4ce145da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c77dc34762af91b9516acc432fdd0fbc237ca718d4091dd39edc86e4292b5fd\",\"dweb:/ipfs/QmUWNiQSjfHtsgW8vcRsDyW4ATZsTfTi2W3nUC917b7pJM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_address1","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool1","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool2","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool3","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool4","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool5","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_byte","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_byte32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_int","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_numberbool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_uint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumToUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/02_ValueTypes/ValueTypes.sol":"ValueTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/02_ValueTypes/ValueTypes.sol":{"keccak256":"0x73c1d0f0ac4dcf5301a15ce89b55d8809965876d262df1f393cf2f0e4ce145da","urls":["bzz-raw://4c77dc34762af91b9516acc432fdd0fbc237ca718d4091dd39edc86e4292b5fd","dweb:/ipfs/QmUWNiQSjfHtsgW8vcRsDyW4ATZsTfTi2W3nUC917b7pJM"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file +{"abi":[{"type":"function","name":"_address","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_address1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"_bool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool1","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool3","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool4","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_bool5","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_byte","inputs":[],"outputs":[{"name":"","type":"bytes1","internalType":"bytes1"}],"stateMutability":"view"},{"type":"function","name":"_byte32","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"_int","inputs":[],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"_number","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number1","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number2","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_number3","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_numberbool","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_uint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"enumToUint","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260015f5f6101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16155f60016101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16801561006957505f60019054906101000a900460ff165b5f60026101000a81548160ff0219169083151502179055505f5f9054906101000a900460ff16806100a557505f60019054906101000a900460ff165b5f60036101000a81548160ff0219169083151502179055505f60019054906101000a900460ff1615155f5f9054906101000a900460ff161515145f60046101000a81548160ff0219169083151502179055505f60019054906101000a900460ff1615155f5f9054906101000a900460ff16151514155f60056101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600155600160025563013489aa60035560016003546101729190610358565b600455600460055560016006556006546005541160075f6101000a81548160ff021916908315150217905550737a58c0be72be218b41c608b7fe7c5bb630736c71600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16316009557f4d696e69536f6c69646974790000000000000000000000000000000000000000600a55600a545f602081106102ca576102c961038b565b5b1a60f81b600b5f6101000a81548160ff021916908360f81c02179055505f600b60016101000a81548160ff0219169083600281111561030c5761030b6103b8565b5b021790555034801561031c575f5ffd5b506103e5565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61036282610322565b915061036d83610322565b92508282019050808211156103855761038461032b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61069c806103f25f395ff3fe608060405234801561000f575f5ffd5b506004361061011f575f3560e01c8063924b3d21116100ab578063aeb6f2921161006f578063aeb6f292146102c7578063af45869e146102e5578063b69ef8a814610303578063e37c6c8214610321578063f9bd55cc1461033f5761011f565b8063924b3d21146102315780639e6ba9c21461024f578063a2e7fe8a1461026d578063aa9949261461028b578063ac729403146102a95761011f565b80632543135b116100f25780632543135b1461019b5780632b36a762146101b95780633f346102146101d75780636b1d2c4e146101f55780636e8d0c9e146102135761011f565b8063010199581461012357806318bad2171461014157806319bff7df1461015f5780631db19d8c1461017d575b5f5ffd5b61012b61035d565b60405161013891906104a7565b60405180910390f35b610149610385565b60405161015691906104ff565b60405180910390f35b6101676103ab565b60405161017491906104a7565b60405180910390f35b6101856103b1565b6040516101929190610532565b60405180910390f35b6101a36103c3565b6040516101b091906104a7565b60405180910390f35b6101c16103c9565b6040516101ce9190610532565b60405180910390f35b6101df6103db565b6040516101ec9190610563565b60405180910390f35b6101fd6103e1565b60405161020a91906104a7565b60405180910390f35b61021b6103e7565b60405161022891906104a7565b60405180910390f35b6102396103ed565b6040516102469190610532565b60405180910390f35b6102576103ff565b6040516102649190610532565b60405180910390f35b610275610410565b6040516102829190610532565b60405180910390f35b610293610422565b6040516102a09190610532565b60405180910390f35b6102b1610434565b6040516102be919061059c565b60405180910390f35b6102cf610459565b6040516102dc91906105ef565b60405180910390f35b6102ed61046b565b6040516102fa9190610620565b60405180910390f35b61030b610471565b60405161031891906104a7565b60405180910390f35b610329610477565b6040516103369190610532565b60405180910390f35b610347610489565b60405161035491906104a7565b60405180910390f35b5f600b60019054906101000a900460ff1660028111156103805761037f610639565b5b905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b5f60059054906101000a900460ff1681565b60025481565b5f60049054906101000a900460ff1681565b600a5481565b60055481565b60045481565b5f60019054906101000a900460ff1681565b5f5f9054906101000a900460ff1681565b5f60029054906101000a900460ff1681565b5f60039054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460f81b81565b60015481565b60095481565b60075f9054906101000a900460ff1681565b60035481565b5f819050919050565b6104a18161048f565b82525050565b5f6020820190506104ba5f830184610498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104e9826104c0565b9050919050565b6104f9816104df565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f8115159050919050565b61052c81610518565b82525050565b5f6020820190506105455f830184610523565b92915050565b5f819050919050565b61055d8161054b565b82525050565b5f6020820190506105765f830184610554565b92915050565b5f610586826104c0565b9050919050565b6105968161057c565b82525050565b5f6020820190506105af5f83018461058d565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6105e9816105b5565b82525050565b5f6020820190506106025f8301846105e0565b92915050565b5f819050919050565b61061a81610608565b82525050565b5f6020820190506106335f830184610611565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212207702055ce109a7434e3c9043fbedc92d842cd1e66d0f9bab4d16ff36e5f8b20e64736f6c63430008220033","sourceMap":"57:1508:45:-:0;;;119:4;99:24;;;;;;;;;;;;;;;;;;;;171:5;;;;;;;;;;;170:6;149:27;;;;;;;;;;;;;;;;;;;;212:5;;;;;;;;;;;:15;;;;;221:6;;;;;;;;;;;212:15;191:36;;;;;;;;;;;;;;;;;;;;260:5;;;;;;;;;;;:15;;;;269:6;;;;;;;;;;;260:15;239:36;;;;;;;;;;;;;;;;;;;;317:6;;;;;;;;;;;308:15;;:5;;;;;;;;;;;:15;;;287:36;;;;;;;;;;;;;;;;;;;;368:6;;;;;;;;;;;359:15;;:5;;;;;;;;;;;:15;;;;338:36;;;;;;;;;;;;;;;;;;;;426:2;408:20;;454:1;434:21;;486:8;461:33;;556:1;546:7;;:11;;;;:::i;:::-;520:37;;606:4;580:30;;652:5;626:31;;713:8;;702;;:19;676:45;;;;;;;;;;;;;;;;;;;;782:42;756:68;;;;;;;;;;;;;;;;;;;;873:8;;;;;;;;;;;830:52;;;;;;;;;;;;;;;;;;;;988:9;;;;;;;;;;;:17;;;963:42;;1078:39;;;1224:7;;1232:1;1224:10;;;;;;;:::i;:::-;;;;;1202:32;;;;;;;;;;;;;;;;;;;;1418:13;1399:32;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;57:1508;;;;;;;;;;;;7:77:139;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:180::-;521:77;518:1;511:88;618:4;615:1;608:15;642:4;639:1;632:15;659:180;707:77;704:1;697:88;804:4;801:1;794:15;828:4;825:1;818:15;57:1508:45;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b506004361061011f575f3560e01c8063924b3d21116100ab578063aeb6f2921161006f578063aeb6f292146102c7578063af45869e146102e5578063b69ef8a814610303578063e37c6c8214610321578063f9bd55cc1461033f5761011f565b8063924b3d21146102315780639e6ba9c21461024f578063a2e7fe8a1461026d578063aa9949261461028b578063ac729403146102a95761011f565b80632543135b116100f25780632543135b1461019b5780632b36a762146101b95780633f346102146101d75780636b1d2c4e146101f55780636e8d0c9e146102135761011f565b8063010199581461012357806318bad2171461014157806319bff7df1461015f5780631db19d8c1461017d575b5f5ffd5b61012b61035d565b60405161013891906104a7565b60405180910390f35b610149610385565b60405161015691906104ff565b60405180910390f35b6101676103ab565b60405161017491906104a7565b60405180910390f35b6101856103b1565b6040516101929190610532565b60405180910390f35b6101a36103c3565b6040516101b091906104a7565b60405180910390f35b6101c16103c9565b6040516101ce9190610532565b60405180910390f35b6101df6103db565b6040516101ec9190610563565b60405180910390f35b6101fd6103e1565b60405161020a91906104a7565b60405180910390f35b61021b6103e7565b60405161022891906104a7565b60405180910390f35b6102396103ed565b6040516102469190610532565b60405180910390f35b6102576103ff565b6040516102649190610532565b60405180910390f35b610275610410565b6040516102829190610532565b60405180910390f35b610293610422565b6040516102a09190610532565b60405180910390f35b6102b1610434565b6040516102be919061059c565b60405180910390f35b6102cf610459565b6040516102dc91906105ef565b60405180910390f35b6102ed61046b565b6040516102fa9190610620565b60405180910390f35b61030b610471565b60405161031891906104a7565b60405180910390f35b610329610477565b6040516103369190610532565b60405180910390f35b610347610489565b60405161035491906104a7565b60405180910390f35b5f600b60019054906101000a900460ff1660028111156103805761037f610639565b5b905090565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b5f60059054906101000a900460ff1681565b60025481565b5f60049054906101000a900460ff1681565b600a5481565b60055481565b60045481565b5f60019054906101000a900460ff1681565b5f5f9054906101000a900460ff1681565b5f60029054906101000a900460ff1681565b5f60039054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900460f81b81565b60015481565b60095481565b60075f9054906101000a900460ff1681565b60035481565b5f819050919050565b6104a18161048f565b82525050565b5f6020820190506104ba5f830184610498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104e9826104c0565b9050919050565b6104f9816104df565b82525050565b5f6020820190506105125f8301846104f0565b92915050565b5f8115159050919050565b61052c81610518565b82525050565b5f6020820190506105455f830184610523565b92915050565b5f819050919050565b61055d8161054b565b82525050565b5f6020820190506105765f830184610554565b92915050565b5f610586826104c0565b9050919050565b6105968161057c565b82525050565b5f6020820190506105af5f83018461058d565b92915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6105e9816105b5565b82525050565b5f6020820190506106025f8301846105e0565b92915050565b5f819050919050565b61061a81610608565b82525050565b5f6020820190506106335f830184610611565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffdfea26469706673582212207702055ce109a7434e3c9043fbedc92d842cd1e66d0f9bab4d16ff36e5f8b20e64736f6c63430008220033","sourceMap":"57:1508:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;756:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;626:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;338:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;434:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;287:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1078:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;520:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;149:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;99:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;191:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;239;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;830:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1202:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;408:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;963:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;676:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;461:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1478:85;1522:4;1549:6;;;;;;;;;;;1544:12;;;;;;;;:::i;:::-;;1537:19;;1478:85;:::o;756:68::-;;;;;;;;;;;;;:::o;626:31::-;;;;:::o;338:36::-;;;;;;;;;;;;;:::o;434:21::-;;;;:::o;287:36::-;;;;;;;;;;;;;:::o;1078:39::-;;;;:::o;580:30::-;;;;:::o;520:37::-;;;;:::o;149:27::-;;;;;;;;;;;;;:::o;99:24::-;;;;;;;;;;;;;:::o;191:36::-;;;;;;;;;;;;;:::o;239:::-;;;;;;;;;;;;;:::o;830:52::-;;;;;;;;;;;;;:::o;1202:32::-;;;;;;;;;;;;;:::o;408:20::-;;;;:::o;963:42::-;;;;:::o;676:45::-;;;;;;;;;;;;;:::o;461:33::-;;;;:::o;7:77:139:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:96::-;611:7;640:24;658:5;640:24;:::i;:::-;629:35;;574:96;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:90::-;1062:7;1105:5;1098:13;1091:21;1080:32;;1028:90;;;:::o;1124:109::-;1205:21;1220:5;1205:21;:::i;:::-;1200:3;1193:34;1124:109;;:::o;1239:210::-;1326:4;1364:2;1353:9;1349:18;1341:26;;1377:65;1439:1;1428:9;1424:17;1415:6;1377:65;:::i;:::-;1239:210;;;;:::o;1455:77::-;1492:7;1521:5;1510:16;;1455:77;;;:::o;1538:118::-;1625:24;1643:5;1625:24;:::i;:::-;1620:3;1613:37;1538:118;;:::o;1662:222::-;1755:4;1793:2;1782:9;1778:18;1770:26;;1806:71;1874:1;1863:9;1859:17;1850:6;1806:71;:::i;:::-;1662:222;;;;:::o;1890:104::-;1935:7;1964:24;1982:5;1964:24;:::i;:::-;1953:35;;1890:104;;;:::o;2000:142::-;2103:32;2129:5;2103:32;:::i;:::-;2098:3;2091:45;2000:142;;:::o;2148:254::-;2257:4;2295:2;2284:9;2280:18;2272:26;;2308:87;2392:1;2381:9;2377:17;2368:6;2308:87;:::i;:::-;2148:254;;;;:::o;2408:149::-;2444:7;2484:66;2477:5;2473:78;2462:89;;2408:149;;;:::o;2563:115::-;2648:23;2665:5;2648:23;:::i;:::-;2643:3;2636:36;2563:115;;:::o;2684:218::-;2775:4;2813:2;2802:9;2798:18;2790:26;;2826:69;2892:1;2881:9;2877:17;2868:6;2826:69;:::i;:::-;2684:218;;;;:::o;2908:76::-;2944:7;2973:5;2962:16;;2908:76;;;:::o;2990:115::-;3075:23;3092:5;3075:23;:::i;:::-;3070:3;3063:36;2990:115;;:::o;3111:218::-;3202:4;3240:2;3229:9;3225:18;3217:26;;3253:69;3319:1;3308:9;3304:17;3295:6;3253:69;:::i;:::-;3111:218;;;;:::o;3335:180::-;3383:77;3380:1;3373:88;3480:4;3477:1;3470:15;3504:4;3501:1;3494:15","linkReferences":{}},"methodIdentifiers":{"_address()":"18bad217","_address1()":"ac729403","_bool()":"9e6ba9c2","_bool1()":"924b3d21","_bool2()":"a2e7fe8a","_bool3()":"aa994926","_bool4()":"2b36a762","_bool5()":"1db19d8c","_byte()":"aeb6f292","_byte32()":"3f346102","_int()":"af45869e","_number()":"f9bd55cc","_number1()":"6e8d0c9e","_number2()":"6b1d2c4e","_number3()":"19bff7df","_numberbool()":"e37c6c82","_uint()":"2543135b","balance()":"b69ef8a8","enumToUint()":"01019958"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_address1\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool1\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool3\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool4\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_bool5\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_byte\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_byte32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_int\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_number3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_numberbool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_uint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumToUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/02_ValueTypes/ValueTypes.sol\":\"ValueTypes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/02_ValueTypes/ValueTypes.sol\":{\"keccak256\":\"0x73c1d0f0ac4dcf5301a15ce89b55d8809965876d262df1f393cf2f0e4ce145da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c77dc34762af91b9516acc432fdd0fbc237ca718d4091dd39edc86e4292b5fd\",\"dweb:/ipfs/QmUWNiQSjfHtsgW8vcRsDyW4ATZsTfTi2W3nUC917b7pJM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_address1","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool1","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool2","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool3","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool4","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_bool5","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_byte","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_byte32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_int","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_number3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_numberbool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_uint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumToUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/02_ValueTypes/ValueTypes.sol":"ValueTypes"},"evmVersion":"prague","libraries":{}},"sources":{"src/02_ValueTypes/ValueTypes.sol":{"keccak256":"0x73c1d0f0ac4dcf5301a15ce89b55d8809965876d262df1f393cf2f0e4ce145da","urls":["bzz-raw://4c77dc34762af91b9516acc432fdd0fbc237ca718d4091dd39edc86e4292b5fd","dweb:/ipfs/QmUWNiQSjfHtsgW8vcRsDyW4ATZsTfTi2W3nUC917b7pJM"],"license":"MIT"}},"version":1},"id":45} \ No newline at end of file diff --git a/out/WETH.sol/WETH.json b/out/WETH.sol/WETH.json index b3078218..3628d781 100644 --- a/out/WETH.sol/WETH.json +++ b/out/WETH.sol/WETH.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","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":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600481526020017f57455448000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5745544800000000000000000000000000000000000000000000000000000000815250816003908161008b91906102f1565b50806004908161009b91906102f1565b5050506103c0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011e57607f821691505b602082108103610131576101306100da565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610158565b61019d8683610158565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e16101dc6101d7846101b5565b6101be565b6101b5565b9050919050565b5f819050919050565b6101fa836101c7565b61020e610206826101e8565b848454610164565b825550505050565b5f5f905090565b610225610216565b6102308184846101f1565b505050565b5f5b828110156102565761024b5f82840161021d565b600181019050610237565b505050565b601f8211156102a957828211156102a85761027581610137565b61027e83610149565b61028785610149565b6020861015610294575f90505b8083016102a382840382610235565b505050505b5b505050565b5f82821c905092915050565b5f6102c95f19846008026102ae565b1980831691505092915050565b5f6102e183836102ba565b9150826002028217905092915050565b6102fa826100a3565b67ffffffffffffffff811115610313576103126100ad565b5b61031d8254610107565b61032882828561025b565b5f60209050601f831160018114610359575f8415610347578287015190505b61035185826102d6565b8655506103b8565b601f19841661036786610137565b5f5b8281101561038e57848901518255600182019150602085019450602081019050610369565b868310156103ab57848901516103a7601f8916826102ba565b8355505b6001600288020188555050505b505050505050565b6110d9806103cd5f395ff3fe60806040526004361061009f575f3560e01c8063313ce56711610063578063313ce567146101ac57806370a08231146101d657806395d89b4114610212578063a9059cbb1461023c578063d0e30db014610278578063dd62ed3e14610282576100ae565b806306fdde03146100b8578063095ea7b3146100e257806318160ddd1461011e57806323b872dd146101485780632e1a7d4d14610184576100ae565b366100ae576100ac6102be565b005b6100b66102be565b005b3480156100c3575f5ffd5b506100cc610318565b6040516100d99190610d27565b60405180910390f35b3480156100ed575f5ffd5b5061010860048036038101906101039190610dd8565b6103a8565b6040516101159190610e30565b60405180910390f35b348015610129575f5ffd5b506101326103ca565b60405161013f9190610e58565b60405180910390f35b348015610153575f5ffd5b5061016e60048036038101906101699190610e71565b6103d3565b60405161017b9190610e30565b60405180910390f35b34801561018f575f5ffd5b506101aa60048036038101906101a59190610ec1565b610401565b005b3480156101b7575f5ffd5b506101c06104b4565b6040516101cd9190610f07565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f79190610f20565b6104bc565b6040516102099190610e58565b60405180910390f35b34801561021d575f5ffd5b50610226610501565b6040516102339190610d27565b60405180910390f35b348015610247575f5ffd5b50610262600480360381019061025d9190610dd8565b610591565b60405161026f9190610e30565b60405180910390f35b6102806102be565b005b34801561028d575f5ffd5b506102a860048036038101906102a39190610f4b565b6105b3565b6040516102b59190610e58565b60405180910390f35b6102c83334610635565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405161030e9190610e58565b60405180910390a2565b60606003805461032790610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461035390610fb6565b801561039e5780601f106103755761010080835404028352916020019161039e565b820191905f5260205f20905b81548152906001019060200180831161038157829003601f168201915b5050505050905090565b5f5f6103b26106b4565b90506103bf8185856106bb565b600191505092915050565b5f600254905090565b5f5f6103dd6106b4565b90506103ea8582856106cd565b6103f5858585610760565b60019150509392505050565b8061040b336104bc565b1015610415575f5ffd5b61041f3382610850565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610462573d5f5f3e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516104a99190610e58565b60405180910390a250565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461051090610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461053c90610fb6565b80156105875780601f1061055e57610100808354040283529160200191610587565b820191905f5260205f20905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b5f5f61059b6106b4565b90506105a8818585610760565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a5575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069c9190610ff5565b60405180910390fd5b6106b05f83836108cf565b5050565b5f33905090565b6106c88383836001610ae8565b505050565b5f6106d884846105b3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075a578181101561074b578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107429392919061100e565b60405180910390fd5b61075984848484035f610ae8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107c79190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610840575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108379190610ff5565b60405180910390fd5b61084b8383836108cf565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108b79190610ff5565b60405180910390fd5b6108cb825f836108cf565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091f578060025f8282546109139190611070565b925050819055506109ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109a8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161099f9392919061100e565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a34578060025f8282540392505081905550610a7e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610adb9190610e58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b58575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b4f9190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bbf9190610ff5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610cb1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ca89190610e58565b60405180910390a35b50505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610cf982610cb7565b610d038185610cc1565b9350610d13818560208601610cd1565b610d1c81610cdf565b840191505092915050565b5f6020820190508181035f830152610d3f8184610cef565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d7482610d4b565b9050919050565b610d8481610d6a565b8114610d8e575f5ffd5b50565b5f81359050610d9f81610d7b565b92915050565b5f819050919050565b610db781610da5565b8114610dc1575f5ffd5b50565b5f81359050610dd281610dae565b92915050565b5f5f60408385031215610dee57610ded610d47565b5b5f610dfb85828601610d91565b9250506020610e0c85828601610dc4565b9150509250929050565b5f8115159050919050565b610e2a81610e16565b82525050565b5f602082019050610e435f830184610e21565b92915050565b610e5281610da5565b82525050565b5f602082019050610e6b5f830184610e49565b92915050565b5f5f5f60608486031215610e8857610e87610d47565b5b5f610e9586828701610d91565b9350506020610ea686828701610d91565b9250506040610eb786828701610dc4565b9150509250925092565b5f60208284031215610ed657610ed5610d47565b5b5f610ee384828501610dc4565b91505092915050565b5f60ff82169050919050565b610f0181610eec565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f60208284031215610f3557610f34610d47565b5b5f610f4284828501610d91565b91505092915050565b5f5f60408385031215610f6157610f60610d47565b5b5f610f6e85828601610d91565b9250506020610f7f85828601610d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fcd57607f821691505b602082108103610fe057610fdf610f89565b5b50919050565b610fef81610d6a565b82525050565b5f6020820190506110085f830184610fe6565b92915050565b5f6060820190506110215f830186610fe6565b61102e6020830185610e49565b61103b6040830184610e49565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61107a82610da5565b915061108583610da5565b925082820190508082111561109d5761109c611043565b5b9291505056fea26469706673582212200e6e87feaa50789572b72b16c360aa9f327ce0585eec9beb8131155883d73c5564736f6c63430008220033","sourceMap":"287:1025:100:-:0;;;499:42;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;287:1025:100;;7:99:145;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;287:1025:100:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061009f575f3560e01c8063313ce56711610063578063313ce567146101ac57806370a08231146101d657806395d89b4114610212578063a9059cbb1461023c578063d0e30db014610278578063dd62ed3e14610282576100ae565b806306fdde03146100b8578063095ea7b3146100e257806318160ddd1461011e57806323b872dd146101485780632e1a7d4d14610184576100ae565b366100ae576100ac6102be565b005b6100b66102be565b005b3480156100c3575f5ffd5b506100cc610318565b6040516100d99190610d27565b60405180910390f35b3480156100ed575f5ffd5b5061010860048036038101906101039190610dd8565b6103a8565b6040516101159190610e30565b60405180910390f35b348015610129575f5ffd5b506101326103ca565b60405161013f9190610e58565b60405180910390f35b348015610153575f5ffd5b5061016e60048036038101906101699190610e71565b6103d3565b60405161017b9190610e30565b60405180910390f35b34801561018f575f5ffd5b506101aa60048036038101906101a59190610ec1565b610401565b005b3480156101b7575f5ffd5b506101c06104b4565b6040516101cd9190610f07565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f79190610f20565b6104bc565b6040516102099190610e58565b60405180910390f35b34801561021d575f5ffd5b50610226610501565b6040516102339190610d27565b60405180910390f35b348015610247575f5ffd5b50610262600480360381019061025d9190610dd8565b610591565b60405161026f9190610e30565b60405180910390f35b6102806102be565b005b34801561028d575f5ffd5b506102a860048036038101906102a39190610f4b565b6105b3565b6040516102b59190610e58565b60405180910390f35b6102c83334610635565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405161030e9190610e58565b60405180910390a2565b60606003805461032790610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461035390610fb6565b801561039e5780601f106103755761010080835404028352916020019161039e565b820191905f5260205f20905b81548152906001019060200180831161038157829003601f168201915b5050505050905090565b5f5f6103b26106b4565b90506103bf8185856106bb565b600191505092915050565b5f600254905090565b5f5f6103dd6106b4565b90506103ea8582856106cd565b6103f5858585610760565b60019150509392505050565b8061040b336104bc565b1015610415575f5ffd5b61041f3382610850565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610462573d5f5f3e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516104a99190610e58565b60405180910390a250565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461051090610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461053c90610fb6565b80156105875780601f1061055e57610100808354040283529160200191610587565b820191905f5260205f20905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b5f5f61059b6106b4565b90506105a8818585610760565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a5575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069c9190610ff5565b60405180910390fd5b6106b05f83836108cf565b5050565b5f33905090565b6106c88383836001610ae8565b505050565b5f6106d884846105b3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075a578181101561074b578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107429392919061100e565b60405180910390fd5b61075984848484035f610ae8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107c79190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610840575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108379190610ff5565b60405180910390fd5b61084b8383836108cf565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108b79190610ff5565b60405180910390fd5b6108cb825f836108cf565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091f578060025f8282546109139190611070565b925050819055506109ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109a8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161099f9392919061100e565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a34578060025f8282540392505081905550610a7e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610adb9190610e58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b58575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b4f9190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bbf9190610ff5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610cb1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ca89190610e58565b60405180910390a35b50505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610cf982610cb7565b610d038185610cc1565b9350610d13818560208601610cd1565b610d1c81610cdf565b840191505092915050565b5f6020820190508181035f830152610d3f8184610cef565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d7482610d4b565b9050919050565b610d8481610d6a565b8114610d8e575f5ffd5b50565b5f81359050610d9f81610d7b565b92915050565b5f819050919050565b610db781610da5565b8114610dc1575f5ffd5b50565b5f81359050610dd281610dae565b92915050565b5f5f60408385031215610dee57610ded610d47565b5b5f610dfb85828601610d91565b9250506020610e0c85828601610dc4565b9150509250929050565b5f8115159050919050565b610e2a81610e16565b82525050565b5f602082019050610e435f830184610e21565b92915050565b610e5281610da5565b82525050565b5f602082019050610e6b5f830184610e49565b92915050565b5f5f5f60608486031215610e8857610e87610d47565b5b5f610e9586828701610d91565b9350506020610ea686828701610d91565b9250506040610eb786828701610dc4565b9150509250925092565b5f60208284031215610ed657610ed5610d47565b5b5f610ee384828501610dc4565b91505092915050565b5f60ff82169050919050565b610f0181610eec565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f60208284031215610f3557610f34610d47565b5b5f610f4284828501610d91565b91505092915050565b5f5f60408385031215610f6157610f60610d47565b5b5f610f6e85828601610d91565b9250506020610f7f85828601610d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fcd57607f821691505b602082108103610fe057610fdf610f89565b5b50919050565b610fef81610d6a565b82525050565b5f6020820190506110085f830184610fe6565b92915050565b5f6060820190506110215f830186610fe6565b61102e6020830185610e49565b61103b6040830184610e49565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61107a82610da5565b915061108583610da5565b925082820190508082111561109d5761109c611043565b5b9291505056fea26469706673582212200e6e87feaa50789572b72b16c360aa9f327ce0585eec9beb8131155883d73c5564736f6c63430008220033","sourceMap":"287:1025:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:9;:7;:9::i;:::-;287:1025;;666:9;:7;:9::i;:::-;287:1025;1760:89:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1089:221:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2688:82:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;899:124:100;;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;899:124:100;943:28;949:10;961:9;943:5;:28::i;:::-;994:10;986:30;;;1006:9;986:30;;;;;;:::i;:::-;;;;;;;;899:124::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;1089:221:100:-;1170:6;1145:21;1155:10;1145:9;:21::i;:::-;:31;;1137:40;;;;;;1187:25;1193:10;1205:6;1187:5;:25::i;:::-;1230:10;1222:28;;:36;1251:6;1222:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1284:10;1273:30;;;1296:6;1273:30;;;;;;:::i;:::-;;;;;;;;1089:221;:::o;2688:82:22:-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;7:99:145:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:118::-;6495:24;6513:5;6495:24;:::i;:::-;6490:3;6483:37;6408:118;;:::o;6532:222::-;6625:4;6663:2;6652:9;6648:18;6640:26;;6676:71;6744:1;6733:9;6729:17;6720:6;6676:71;:::i;:::-;6532:222;;;;:::o;6760:442::-;6909:4;6947:2;6936:9;6932:18;6924:26;;6960:71;7028:1;7017:9;7013:17;7004:6;6960:71;:::i;:::-;7041:72;7109:2;7098:9;7094:18;7085:6;7041:72;:::i;:::-;7123;7191:2;7180:9;7176:18;7167:6;7123:72;:::i;:::-;6760:442;;;;;;:::o;7208:180::-;7256:77;7253:1;7246:88;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7394:191;7434:3;7453:20;7471:1;7453:20;:::i;:::-;7448:25;;7487:20;7505:1;7487:20;:::i;:::-;7482:25;;7530:1;7527;7523:9;7516:16;;7551:3;7548:1;7545:10;7542:36;;;7558:18;;:::i;:::-;7542:36;7394:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/41_WETH/WETH.sol\":\"WETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/41_WETH/WETH.sol\":{\"keccak256\":\"0x926d78d23647c4228574e048e8a2864d51fc0af4a4a66ae3104690582a79f3ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0332fd4eb2b56b4eb37302046a99c8a8a5ba0de0e61a164b9303699e425f062\",\"dweb:/ipfs/QmeziPEPrLrocEnuBGpuZmuQJodCWicJKKsf1kSeM8K24i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/41_WETH/WETH.sol":"WETH"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/41_WETH/WETH.sol":{"keccak256":"0x926d78d23647c4228574e048e8a2864d51fc0af4a4a66ae3104690582a79f3ef","urls":["bzz-raw://f0332fd4eb2b56b4eb37302046a99c8a8a5ba0de0e61a164b9303699e425f062","dweb:/ipfs/QmeziPEPrLrocEnuBGpuZmuQJodCWicJKKsf1kSeM8K24i"],"license":"MIT"}},"version":1},"id":100} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"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":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"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":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"Deposit","inputs":[{"name":"dst","type":"address","indexed":true,"internalType":"address"},{"name":"wad","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":"event","name":"Withdrawal","inputs":[{"name":"src","type":"address","indexed":true,"internalType":"address"},{"name":"wad","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"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"}]}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040518060400160405280600481526020017f57455448000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5745544800000000000000000000000000000000000000000000000000000000815250816003908161008b91906102f1565b50806004908161009b91906102f1565b5050506103c0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011e57607f821691505b602082108103610131576101306100da565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610158565b61019d8683610158565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e16101dc6101d7846101b5565b6101be565b6101b5565b9050919050565b5f819050919050565b6101fa836101c7565b61020e610206826101e8565b848454610164565b825550505050565b5f5f905090565b610225610216565b6102308184846101f1565b505050565b5f5b828110156102565761024b5f82840161021d565b600181019050610237565b505050565b601f8211156102a957828211156102a85761027581610137565b61027e83610149565b61028785610149565b6020861015610294575f90505b8083016102a382840382610235565b505050505b5b505050565b5f82821c905092915050565b5f6102c95f19846008026102ae565b1980831691505092915050565b5f6102e183836102ba565b9150826002028217905092915050565b6102fa826100a3565b67ffffffffffffffff811115610313576103126100ad565b5b61031d8254610107565b61032882828561025b565b5f60209050601f831160018114610359575f8415610347578287015190505b61035185826102d6565b8655506103b8565b601f19841661036786610137565b5f5b8281101561038e57848901518255600182019150602085019450602081019050610369565b868310156103ab57848901516103a7601f8916826102ba565b8355505b6001600288020188555050505b505050505050565b6110d9806103cd5f395ff3fe60806040526004361061009f575f3560e01c8063313ce56711610063578063313ce567146101ac57806370a08231146101d657806395d89b4114610212578063a9059cbb1461023c578063d0e30db014610278578063dd62ed3e14610282576100ae565b806306fdde03146100b8578063095ea7b3146100e257806318160ddd1461011e57806323b872dd146101485780632e1a7d4d14610184576100ae565b366100ae576100ac6102be565b005b6100b66102be565b005b3480156100c3575f5ffd5b506100cc610318565b6040516100d99190610d27565b60405180910390f35b3480156100ed575f5ffd5b5061010860048036038101906101039190610dd8565b6103a8565b6040516101159190610e30565b60405180910390f35b348015610129575f5ffd5b506101326103ca565b60405161013f9190610e58565b60405180910390f35b348015610153575f5ffd5b5061016e60048036038101906101699190610e71565b6103d3565b60405161017b9190610e30565b60405180910390f35b34801561018f575f5ffd5b506101aa60048036038101906101a59190610ec1565b610401565b005b3480156101b7575f5ffd5b506101c06104b4565b6040516101cd9190610f07565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f79190610f20565b6104bc565b6040516102099190610e58565b60405180910390f35b34801561021d575f5ffd5b50610226610501565b6040516102339190610d27565b60405180910390f35b348015610247575f5ffd5b50610262600480360381019061025d9190610dd8565b610591565b60405161026f9190610e30565b60405180910390f35b6102806102be565b005b34801561028d575f5ffd5b506102a860048036038101906102a39190610f4b565b6105b3565b6040516102b59190610e58565b60405180910390f35b6102c83334610635565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405161030e9190610e58565b60405180910390a2565b60606003805461032790610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461035390610fb6565b801561039e5780601f106103755761010080835404028352916020019161039e565b820191905f5260205f20905b81548152906001019060200180831161038157829003601f168201915b5050505050905090565b5f5f6103b26106b4565b90506103bf8185856106bb565b600191505092915050565b5f600254905090565b5f5f6103dd6106b4565b90506103ea8582856106cd565b6103f5858585610760565b60019150509392505050565b8061040b336104bc565b1015610415575f5ffd5b61041f3382610850565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610462573d5f5f3e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516104a99190610e58565b60405180910390a250565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461051090610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461053c90610fb6565b80156105875780601f1061055e57610100808354040283529160200191610587565b820191905f5260205f20905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b5f5f61059b6106b4565b90506105a8818585610760565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a5575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069c9190610ff5565b60405180910390fd5b6106b05f83836108cf565b5050565b5f33905090565b6106c88383836001610ae8565b505050565b5f6106d884846105b3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075a578181101561074b578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107429392919061100e565b60405180910390fd5b61075984848484035f610ae8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107c79190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610840575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108379190610ff5565b60405180910390fd5b61084b8383836108cf565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108b79190610ff5565b60405180910390fd5b6108cb825f836108cf565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091f578060025f8282546109139190611070565b925050819055506109ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109a8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161099f9392919061100e565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a34578060025f8282540392505081905550610a7e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610adb9190610e58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b58575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b4f9190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bbf9190610ff5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610cb1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ca89190610e58565b60405180910390a35b50505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610cf982610cb7565b610d038185610cc1565b9350610d13818560208601610cd1565b610d1c81610cdf565b840191505092915050565b5f6020820190508181035f830152610d3f8184610cef565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d7482610d4b565b9050919050565b610d8481610d6a565b8114610d8e575f5ffd5b50565b5f81359050610d9f81610d7b565b92915050565b5f819050919050565b610db781610da5565b8114610dc1575f5ffd5b50565b5f81359050610dd281610dae565b92915050565b5f5f60408385031215610dee57610ded610d47565b5b5f610dfb85828601610d91565b9250506020610e0c85828601610dc4565b9150509250929050565b5f8115159050919050565b610e2a81610e16565b82525050565b5f602082019050610e435f830184610e21565b92915050565b610e5281610da5565b82525050565b5f602082019050610e6b5f830184610e49565b92915050565b5f5f5f60608486031215610e8857610e87610d47565b5b5f610e9586828701610d91565b9350506020610ea686828701610d91565b9250506040610eb786828701610dc4565b9150509250925092565b5f60208284031215610ed657610ed5610d47565b5b5f610ee384828501610dc4565b91505092915050565b5f60ff82169050919050565b610f0181610eec565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f60208284031215610f3557610f34610d47565b5b5f610f4284828501610d91565b91505092915050565b5f5f60408385031215610f6157610f60610d47565b5b5f610f6e85828601610d91565b9250506020610f7f85828601610d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fcd57607f821691505b602082108103610fe057610fdf610f89565b5b50919050565b610fef81610d6a565b82525050565b5f6020820190506110085f830184610fe6565b92915050565b5f6060820190506110215f830186610fe6565b61102e6020830185610e49565b61103b6040830184610e49565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61107a82610da5565b915061108583610da5565b925082820190508082111561109d5761109c611043565b5b9291505056fea26469706673582212200e6e87feaa50789572b72b16c360aa9f327ce0585eec9beb8131155883d73c5564736f6c63430008220033","sourceMap":"287:1025:94:-:0;;;499:42;;;;;;;;;;1582:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:5;1648;:13;;;;;;:::i;:::-;;1681:7;1671;:17;;;;;;:::i;:::-;;1582:113;;287:1025:94;;7:99:139;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2287:1;2280:8;;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:214::-;2580:1;2565:138;2590:9;2587:1;2584:16;2565:138;;;2642:51;2691:1;2687;2676:9;2672:17;2642:51;:::i;:::-;2615:1;2612;2608:9;2603:14;;2565:138;;;2569:14;2495:214;;:::o;2715:746::-;2816:2;2811:3;2808:11;2805:649;;;2845:10;2840:3;2837:19;2834:610;;;2891:38;2923:5;2891:38;:::i;:::-;2966:22;2984:3;2966:22;:::i;:::-;3025:29;3043:10;3025:29;:::i;:::-;3215:2;3203:10;3200:18;3197:79;;;3257:1;3241:17;;3197:79;3326:12;3316:8;3312:27;3356:74;3416:12;3402;3398:31;3385:11;3356:74;:::i;:::-;2857:587;;;;2834:610;2805:649;2715:746;;;:::o;3467:117::-;3521:8;3571:5;3565:4;3561:16;3540:37;;3467:117;;;;:::o;3590:169::-;3634:6;3667:51;3715:1;3711:6;3703:5;3700:1;3696:13;3667:51;:::i;:::-;3663:56;3748:4;3742;3738:15;3728:25;;3641:118;3590:169;;;;:::o;3764:295::-;3840:4;3986:29;4011:3;4005:4;3986:29;:::i;:::-;3978:37;;4048:3;4045:1;4041:11;4035:4;4032:21;4024:29;;3764:295;;;;:::o;4064:1395::-;4181:37;4214:3;4181:37;:::i;:::-;4283:18;4275:6;4272:30;4269:56;;;4305:18;;:::i;:::-;4269:56;4349:38;4381:4;4375:11;4349:38;:::i;:::-;4434:67;4494:6;4486;4480:4;4434:67;:::i;:::-;4528:1;4552:4;4539:17;;4584:2;4576:6;4573:14;4601:1;4596:618;;;;5258:1;5275:6;5272:77;;;5324:9;5319:3;5315:19;5309:26;5300:35;;5272:77;5375:67;5435:6;5428:5;5375:67;:::i;:::-;5369:4;5362:81;5231:222;4566:887;;4596:618;4648:4;4644:9;4636:6;4632:22;4682:37;4714:4;4682:37;:::i;:::-;4741:1;4755:208;4769:7;4766:1;4763:14;4755:208;;;4848:9;4843:3;4839:19;4833:26;4825:6;4818:42;4899:1;4891:6;4887:14;4877:24;;4946:2;4935:9;4931:18;4918:31;;4792:4;4789:1;4785:12;4780:17;;4755:208;;;4991:6;4982:7;4979:19;4976:179;;;5049:9;5044:3;5040:19;5034:26;5092:48;5134:4;5126:6;5122:17;5111:9;5092:48;:::i;:::-;5084:6;5077:64;4999:156;4976:179;5201:1;5197;5189:6;5185:14;5181:22;5175:4;5168:36;4603:611;;;4566:887;;4156:1303;;;4064:1395;;:::o;287:1025:94:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061009f575f3560e01c8063313ce56711610063578063313ce567146101ac57806370a08231146101d657806395d89b4114610212578063a9059cbb1461023c578063d0e30db014610278578063dd62ed3e14610282576100ae565b806306fdde03146100b8578063095ea7b3146100e257806318160ddd1461011e57806323b872dd146101485780632e1a7d4d14610184576100ae565b366100ae576100ac6102be565b005b6100b66102be565b005b3480156100c3575f5ffd5b506100cc610318565b6040516100d99190610d27565b60405180910390f35b3480156100ed575f5ffd5b5061010860048036038101906101039190610dd8565b6103a8565b6040516101159190610e30565b60405180910390f35b348015610129575f5ffd5b506101326103ca565b60405161013f9190610e58565b60405180910390f35b348015610153575f5ffd5b5061016e60048036038101906101699190610e71565b6103d3565b60405161017b9190610e30565b60405180910390f35b34801561018f575f5ffd5b506101aa60048036038101906101a59190610ec1565b610401565b005b3480156101b7575f5ffd5b506101c06104b4565b6040516101cd9190610f07565b60405180910390f35b3480156101e1575f5ffd5b506101fc60048036038101906101f79190610f20565b6104bc565b6040516102099190610e58565b60405180910390f35b34801561021d575f5ffd5b50610226610501565b6040516102339190610d27565b60405180910390f35b348015610247575f5ffd5b50610262600480360381019061025d9190610dd8565b610591565b60405161026f9190610e30565b60405180910390f35b6102806102be565b005b34801561028d575f5ffd5b506102a860048036038101906102a39190610f4b565b6105b3565b6040516102b59190610e58565b60405180910390f35b6102c83334610635565b3373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c3460405161030e9190610e58565b60405180910390a2565b60606003805461032790610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461035390610fb6565b801561039e5780601f106103755761010080835404028352916020019161039e565b820191905f5260205f20905b81548152906001019060200180831161038157829003601f168201915b5050505050905090565b5f5f6103b26106b4565b90506103bf8185856106bb565b600191505092915050565b5f600254905090565b5f5f6103dd6106b4565b90506103ea8582856106cd565b6103f5858585610760565b60019150509392505050565b8061040b336104bc565b1015610415575f5ffd5b61041f3382610850565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610462573d5f5f3e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516104a99190610e58565b60405180910390a250565b5f6012905090565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461051090610fb6565b80601f016020809104026020016040519081016040528092919081815260200182805461053c90610fb6565b80156105875780601f1061055e57610100808354040283529160200191610587565b820191905f5260205f20905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b5f5f61059b6106b4565b90506105a8818585610760565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a5575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161069c9190610ff5565b60405180910390fd5b6106b05f83836108cf565b5050565b5f33905090565b6106c88383836001610ae8565b505050565b5f6106d884846105b3565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561075a578181101561074b578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107429392919061100e565b60405180910390fd5b61075984848484035f610ae8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107d0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107c79190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610840575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108379190610ff5565b60405180910390fd5b61084b8383836108cf565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c0575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016108b79190610ff5565b60405180910390fd5b6108cb825f836108cf565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361091f578060025f8282546109139190611070565b925050819055506109ed565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156109a8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161099f9392919061100e565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a34578060025f8282540392505081905550610a7e565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610adb9190610e58565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b58575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b4f9190610ff5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc8575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bbf9190610ff5565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610cb1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ca89190610e58565b60405180910390a35b50505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610cf982610cb7565b610d038185610cc1565b9350610d13818560208601610cd1565b610d1c81610cdf565b840191505092915050565b5f6020820190508181035f830152610d3f8184610cef565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d7482610d4b565b9050919050565b610d8481610d6a565b8114610d8e575f5ffd5b50565b5f81359050610d9f81610d7b565b92915050565b5f819050919050565b610db781610da5565b8114610dc1575f5ffd5b50565b5f81359050610dd281610dae565b92915050565b5f5f60408385031215610dee57610ded610d47565b5b5f610dfb85828601610d91565b9250506020610e0c85828601610dc4565b9150509250929050565b5f8115159050919050565b610e2a81610e16565b82525050565b5f602082019050610e435f830184610e21565b92915050565b610e5281610da5565b82525050565b5f602082019050610e6b5f830184610e49565b92915050565b5f5f5f60608486031215610e8857610e87610d47565b5b5f610e9586828701610d91565b9350506020610ea686828701610d91565b9250506040610eb786828701610dc4565b9150509250925092565b5f60208284031215610ed657610ed5610d47565b5b5f610ee384828501610dc4565b91505092915050565b5f60ff82169050919050565b610f0181610eec565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f60208284031215610f3557610f34610d47565b5b5f610f4284828501610d91565b91505092915050565b5f5f60408385031215610f6157610f60610d47565b5b5f610f6e85828601610d91565b9250506020610f7f85828601610d91565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fcd57607f821691505b602082108103610fe057610fdf610f89565b5b50919050565b610fef81610d6a565b82525050565b5f6020820190506110085f830184610fe6565b92915050565b5f6060820190506110215f830186610fe6565b61102e6020830185610e49565b61103b6040830184610e49565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61107a82610da5565b915061108583610da5565b925082820190508082111561109d5761109c611043565b5b9291505056fea26469706673582212200e6e87feaa50789572b72b16c360aa9f327ce0585eec9beb8131155883d73c5564736f6c63430008220033","sourceMap":"287:1025:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:9;:7;:9::i;:::-;287:1025;;666:9;:7;:9::i;:::-;287:1025;1760:89:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1089:221:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2688:82:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3244:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;899:124:94;;;:::i;:::-;;3455:140:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;899:124:94;943:28;949:10;961:9;943:5;:28::i;:::-;994:10;986:30;;;1006:9;986:30;;;;;;:::i;:::-;;;;;;;;899:124::o;1760:89:22:-;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;3991:13;4007:12;:10;:12::i;:::-;3991:28;;4029:31;4038:5;4045:7;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;:::o;2803:97::-;2855:7;2881:12;;2874:19;;2803:97;:::o;4680:244::-;4767:4;4783:15;4801:12;:10;:12::i;:::-;4783:30;;4823:37;4839:4;4845:7;4854:5;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;4913:4;4906:11;;;4680:244;;;;;:::o;1089:221:94:-;1170:6;1145:21;1155:10;1145:9;:21::i;:::-;:31;;1137:40;;;;;;1187:25;1193:10;1205:6;1187:5;:25::i;:::-;1230:10;1222:28;;:36;1251:6;1222:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1284:10;1273:30;;;1296:6;1273:30;;;;;;:::i;:::-;;;;;;;;1089:221;:::o;2688:82:22:-;2737:5;2761:2;2754:9;;2688:82;:::o;2933:116::-;2998:7;3024:9;:18;3034:7;3024:18;;;;;;;;;;;;;;;;3017:25;;2933:116;;;:::o;1962:93::-;2009:13;2041:7;2034:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:93;:::o;3244:178::-;3313:4;3329:13;3345:12;:10;:12::i;:::-;3329:28;;3367:27;3377:5;3384:2;3388:5;3367:9;:27::i;:::-;3411:4;3404:11;;;3244:178;;;;:::o;3455:140::-;3535:7;3561:11;:18;3573:5;3561:18;;;;;;;;;;;;;;;:27;3580:7;3561:27;;;;;;;;;;;;;;;;3554:34;;3455:140;;;;:::o;7362:208::-;7451:1;7432:21;;:7;:21;;;7428:91;;7505:1;7476:32;;;;;;;;;;;:::i;:::-;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;656:96:31:-;709:7;735:10;728:17;;656:96;:::o;8630:128:22:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;10420:24;10447:25;10457:5;10464:7;10447:9;:25::i;:::-;10420:52;;10505:17;10486:16;:36;10482:309;;;10561:5;10542:16;:24;10538:130;;;10620:7;10629:16;10647:5;10593:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10538:130;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10482:309;10410:387;10321:476;;;:::o;5297:300::-;5396:1;5380:18;;:4;:18;;;5376:86;;5448:1;5421:30;;;;;;;;;;;:::i;:::-;;;;;;;;5376:86;5489:1;5475:16;;:2;:16;;;5471:86;;5543:1;5514:32;;;;;;;;;;;:::i;:::-;;;;;;;;5471:86;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;:::-;5297:300;;;:::o;7888:206::-;7977:1;7958:21;;:7;:21;;;7954:89;;8029:1;8002:30;;;;;;;;;;;:::i;:::-;;;;;;;;7954:89;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;:::-;7888:206;;:::o;5912:1107::-;6017:1;6001:18;;:4;:18;;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;;;;;5997:540;;;6189:19;6211:9;:15;6221:4;6211:15;;;;;;;;;;;;;;;;6189:37;;6258:5;6244:11;:19;6240:115;;;6315:4;6321:11;6334:5;6290:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6240:115;6507:5;6493:11;:19;6475:9;:15;6485:4;6475:15;;;;;;;;;;;;;;;:37;;;;6175:362;5997:540;6565:1;6551:16;;:2;:16;;;6547:425;;6730:5;6714:12;;:21;;;;;;;;;;;6547:425;;;6942:5;6925:9;:13;6935:2;6925:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6547:425;7002:2;6987:25;;6996:4;6987:25;;;7006:5;6987:25;;;;;;:::i;:::-;;;;;;;;5912:1107;;;:::o;9607:432::-;9736:1;9719:19;;:5;:19;;;9715:89;;9790:1;9761:32;;;;;;;;;;;:::i;:::-;;;;;;;;9715:89;9836:1;9817:21;;:7;:21;;;9813:90;;9889:1;9861:31;;;;;;;;;;;:::i;:::-;;;;;;;;9813:90;9942:5;9912:11;:18;9924:5;9912:18;;;;;;;;;;;;;;;:27;9931:7;9912:27;;;;;;;;;;;;;;;:35;;;;9961:9;9957:76;;;10007:7;9991:31;;10000:5;9991:31;;;10016:5;9991:31;;;;;;:::i;:::-;;;;;;;;9957:76;9607:432;;;;:::o;7:99:139:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::o;5896:180::-;5944:77;5941:1;5934:88;6041:4;6038:1;6031:15;6065:4;6062:1;6055:15;6082:320;6126:6;6163:1;6157:4;6153:12;6143:22;;6210:1;6204:4;6200:12;6231:18;6221:81;;6287:4;6279:6;6275:17;6265:27;;6221:81;6349:2;6341:6;6338:14;6318:18;6315:38;6312:84;;6368:18;;:::i;:::-;6312:84;6133:269;6082:320;;;:::o;6408:118::-;6495:24;6513:5;6495:24;:::i;:::-;6490:3;6483:37;6408:118;;:::o;6532:222::-;6625:4;6663:2;6652:9;6648:18;6640:26;;6676:71;6744:1;6733:9;6729:17;6720:6;6676:71;:::i;:::-;6532:222;;;;:::o;6760:442::-;6909:4;6947:2;6936:9;6932:18;6924:26;;6960:71;7028:1;7017:9;7013:17;7004:6;6960:71;:::i;:::-;7041:72;7109:2;7098:9;7094:18;7085:6;7041:72;:::i;:::-;7123;7191:2;7180:9;7176:18;7167:6;7123:72;:::i;:::-;6760:442;;;;;;:::o;7208:180::-;7256:77;7253:1;7246:88;7353:4;7350:1;7343:15;7377:4;7374:1;7367:15;7394:191;7434:3;7453:20;7471:1;7453:20;:::i;:::-;7448:25;;7487:20;7505:1;7487:20;:::i;:::-;7482:25;;7530:1;7527;7523:9;7516:16;;7551:3;7548:1;7545:10;7542:36;;;7558:18;;:::i;:::-;7542:36;7394:191;;;;:::o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"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.\"}}]},\"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`.\"},\"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}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/41_WETH/WETH.sol\":\"WETH\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"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/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/41_WETH/WETH.sol\":{\"keccak256\":\"0x926d78d23647c4228574e048e8a2864d51fc0af4a4a66ae3104690582a79f3ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0332fd4eb2b56b4eb37302046a99c8a8a5ba0de0e61a164b9303699e425f062\",\"dweb:/ipfs/QmeziPEPrLrocEnuBGpuZmuQJodCWicJKKsf1kSeM8K24i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":"dst","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Deposit","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":[{"internalType":"address","name":"src","type":"address","indexed":true},{"internalType":"uint256","name":"wad","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"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":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"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`."},"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}."},"name()":{"details":"Returns the name of the token."},"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`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/41_WETH/WETH.sol":"WETH"},"evmVersion":"prague","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"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/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/41_WETH/WETH.sol":{"keccak256":"0x926d78d23647c4228574e048e8a2864d51fc0af4a4a66ae3104690582a79f3ef","urls":["bzz-raw://f0332fd4eb2b56b4eb37302046a99c8a8a5ba0de0e61a164b9303699e425f062","dweb:/ipfs/QmeziPEPrLrocEnuBGpuZmuQJodCWicJKKsf1kSeM8K24i"],"license":"MIT"}},"version":1},"id":94} \ No newline at end of file diff --git a/out/WTFApe.sol/WTFApe.json b/out/WTFApe.sol/WTFApe.json index 22300349..8cdc69ea 100644 --- a/out/WTFApe.sol/WTFApe.json +++ b/out/WTFApe.sol/WTFApe.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_APES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052612710600655348015610015575f5ffd5b50604051612845380380612845833981810160405281019061003791906101ae565b8181815f90816100479190610445565b5080600190816100579190610445565b5050505050610514565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100c08261007a565b810181811067ffffffffffffffff821117156100df576100de61008a565b5b80604052505050565b5f6100f1610061565b90506100fd82826100b7565b919050565b5f67ffffffffffffffff82111561011c5761011b61008a565b5b6101258261007a565b9050602081019050919050565b8281835e5f83830152505050565b5f61015261014d84610102565b6100e8565b90508281526020810184848401111561016e5761016d610076565b5b610179848285610132565b509392505050565b5f82601f83011261019557610194610072565b5b81516101a5848260208601610140565b91505092915050565b5f5f604083850312156101c4576101c361006a565b5b5f83015167ffffffffffffffff8111156101e1576101e061006e565b5b6101ed85828601610181565b925050602083015167ffffffffffffffff81111561020e5761020d61006e565b5b61021a85828601610181565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027257607f821691505b6020821081036102855761028461022e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ac565b6102f186836102ac565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033561033061032b84610309565b610312565b610309565b9050919050565b5f819050919050565b61034e8361031b565b61036261035a8261033c565b8484546102b8565b825550505050565b5f5f905090565b61037961036a565b610384818484610345565b505050565b5f5b828110156103aa5761039f5f828401610371565b60018101905061038b565b505050565b601f8211156103fd57828211156103fc576103c98161028b565b6103d28361029d565b6103db8561029d565b60208610156103e8575f90505b8083016103f782840382610389565b505050505b5b505050565b5f82821c905092915050565b5f61041d5f1984600802610402565b1980831691505092915050565b5f610435838361040e565b9150826002028217905092915050565b61044e82610224565b67ffffffffffffffff8111156104675761046661008a565b5b610471825461025b565b61047c8282856103af565b5f60209050601f8311600181146104ad575f841561049b578287015190505b6104a5858261042a565b86555061050c565b601f1984166104bb8661028b565b5f5b828110156104e2578489015182556001820191506020850194506020810190506104bd565b868310156104ff57848901516104fb601f89168261040e565b8355505b6001600288020188555050505b505050505050565b612324806105215f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c80636352211e11610095578063b88d4fde11610064578063b88d4fde1461027f578063bb8a16bd1461029b578063c87b56dd146102b9578063e985e9c5146102e9576100f3565b80636352211e146101e557806370a082311461021557806395d89b4114610245578063a22cb46514610263576100f3565b8063095ea7b3116100d1578063095ea7b31461017557806323b872dd1461019157806340c10f19146101ad57806342842e0e146101c9576100f3565b806301ffc9a7146100f757806306fdde0314610127578063081812fc14610145575b5f5ffd5b610111600480360381019061010c919061167e565b610319565b60405161011e91906116c3565b60405180910390f35b61012f610452565b60405161013c919061174c565b60405180910390f35b61015f600480360381019061015a919061179f565b6104dd565b60405161016c9190611809565b60405180910390f35b61018f600480360381019061018a919061184c565b6105b4565b005b6101ab60048036038101906101a6919061188a565b6106f2565b005b6101c760048036038101906101c2919061184c565b61075a565b005b6101e360048036038101906101de919061188a565b6107b8565b005b6101ff60048036038101906101fa919061179f565b6107d7565b60405161020c9190611809565b60405180910390f35b61022f600480360381019061022a91906118da565b61087e565b60405161023c9190611914565b60405180910390f35b61024d610932565b60405161025a919061174c565b60405180910390f35b61027d60048036038101906102789190611957565b6109be565b005b61029960048036038101906102949190611ac1565b610ab6565b005b6102a3610b20565b6040516102b09190611914565b60405180910390f35b6102d360048036038101906102ce919061179f565b610b26565b6040516102e0919061174c565b60405180910390f35b61030360048036038101906102fe9190611b41565b610c20565b60405161031091906116c3565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461045e90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611bac565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390611c26565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106a3575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990611c8e565b60405180910390fd5b6106ed818484610cae565b505050565b5f6106fc826107d7565b9050610709813384610d5d565b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90611cf6565b60405180910390fd5b61075481858585610e88565b50505050565b5f811015801561076b575060065481105b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190611d5e565b60405180910390fd5b6107b482826110c7565b5050565b6107d283838360405180602001604052805f815250610ab6565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087090611c26565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611dc6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6001805461093f90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461096b90611bac565b80156109b65780601f1061098d576101008083540402835291602001916109b6565b820191905f5260205f20905b81548152906001019060200180831161099957829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610aaa91906116c3565b60405180910390a35050565b5f610ac0836107d7565b9050610acd813385610d5d565b610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390611cf6565b60405180910390fd5b610b1981868686866112d5565b5050505050565b60065481565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611e2e565b60405180910390fd5b5f610bcf6112f4565b90505f815111610bed5760405180602001604052805f815250610c18565b80610bf784611314565b604051602001610c08929190611e86565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610df357508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e7f575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90611ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90611f5b565b60405180910390fd5b610f6f845f83610cae565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fbc9190611fa6565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110109190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612056565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906120be565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112209190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6112e185858585610e88565b6112ed8484848461146d565b5050505050565b60606040518060600160405280603681526020016122b960369139905090565b60605f820361135a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611468565b5f8290505f5b5f8214611389578080611372906120dc565b915050600a826113829190612150565b9150611360565b5f8167ffffffffffffffff8111156113a4576113a361199d565b5b6040519080825280601f01601f1916602001820160405280156113d65781602001600182028036833780820191505090505b5090505b5f8514611461576001826113ee9190611fa6565b9150600a856113fd9190612180565b60306114099190611fd9565b60f81b81838151811061141f5761141e6121b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561145a9190612150565b94506113da565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611612578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114cb949392919061222f565b6020604051808303815f875af192505050801561150657506040513d601f19601f82011682018060405250810190611503919061228d565b60015b611587573d805f8114611534576040519150601f19603f3d011682016040523d82523d5f602084013e611539565b606091505b505f81510361157f57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115769190611809565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461161057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116079190611809565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61165d81611629565b8114611667575f5ffd5b50565b5f8135905061167881611654565b92915050565b5f6020828403121561169357611692611621565b5b5f6116a08482850161166a565b91505092915050565b5f8115159050919050565b6116bd816116a9565b82525050565b5f6020820190506116d65f8301846116b4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61171e826116dc565b61172881856116e6565b93506117388185602086016116f6565b61174181611704565b840191505092915050565b5f6020820190508181035f8301526117648184611714565b905092915050565b5f819050919050565b61177e8161176c565b8114611788575f5ffd5b50565b5f8135905061179981611775565b92915050565b5f602082840312156117b4576117b3611621565b5b5f6117c18482850161178b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f3826117ca565b9050919050565b611803816117e9565b82525050565b5f60208201905061181c5f8301846117fa565b92915050565b61182b816117e9565b8114611835575f5ffd5b50565b5f8135905061184681611822565b92915050565b5f5f6040838503121561186257611861611621565b5b5f61186f85828601611838565b92505060206118808582860161178b565b9150509250929050565b5f5f5f606084860312156118a1576118a0611621565b5b5f6118ae86828701611838565b93505060206118bf86828701611838565b92505060406118d08682870161178b565b9150509250925092565b5f602082840312156118ef576118ee611621565b5b5f6118fc84828501611838565b91505092915050565b61190e8161176c565b82525050565b5f6020820190506119275f830184611905565b92915050565b611936816116a9565b8114611940575f5ffd5b50565b5f813590506119518161192d565b92915050565b5f5f6040838503121561196d5761196c611621565b5b5f61197a85828601611838565b925050602061198b85828601611943565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119d382611704565b810181811067ffffffffffffffff821117156119f2576119f161199d565b5b80604052505050565b5f611a04611618565b9050611a1082826119ca565b919050565b5f67ffffffffffffffff821115611a2f57611a2e61199d565b5b611a3882611704565b9050602081019050919050565b828183375f83830152505050565b5f611a65611a6084611a15565b6119fb565b905082815260208101848484011115611a8157611a80611999565b5b611a8c848285611a45565b509392505050565b5f82601f830112611aa857611aa7611995565b5b8135611ab8848260208601611a53565b91505092915050565b5f5f5f5f60808587031215611ad957611ad8611621565b5b5f611ae687828801611838565b9450506020611af787828801611838565b9350506040611b088782880161178b565b925050606085013567ffffffffffffffff811115611b2957611b28611625565b5b611b3587828801611a94565b91505092959194509250565b5f5f60408385031215611b5757611b56611621565b5b5f611b6485828601611838565b9250506020611b7585828601611838565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bc357607f821691505b602082108103611bd657611bd5611b7f565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c106013836116e6565b9150611c1b82611bdc565b602082019050919050565b5f6020820190508181035f830152611c3d81611c04565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c78601e836116e6565b9150611c8382611c44565b602082019050919050565b5f6020820190508181035f830152611ca581611c6c565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611ce06016836116e6565b9150611ceb82611cac565b602082019050919050565b5f6020820190508181035f830152611d0d81611cd4565b9050919050565b7f746f6b656e4964206f7574206f662072616e67650000000000000000000000005f82015250565b5f611d486014836116e6565b9150611d5382611d14565b602082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611db06014836116e6565b9150611dbb82611d7c565b602082019050919050565b5f6020820190508181035f830152611ddd81611da4565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611e18600f836116e6565b9150611e2382611de4565b602082019050919050565b5f6020820190508181035f830152611e4581611e0c565b9050919050565b5f81905092915050565b5f611e60826116dc565b611e6a8185611e4c565b9350611e7a8185602086016116f6565b80840191505092915050565b5f611e918285611e56565b9150611e9d8284611e56565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611edd6009836116e6565b9150611ee882611ea9565b602082019050919050565b5f6020820190508181035f830152611f0a81611ed1565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611f45601c836116e6565b9150611f5082611f11565b602082019050919050565b5f6020820190508181035f830152611f7281611f39565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fb08261176c565b9150611fbb8361176c565b9250828203905081811115611fd357611fd2611f79565b5b92915050565b5f611fe38261176c565b9150611fee8361176c565b925082820190508082111561200657612005611f79565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6120406014836116e6565b915061204b8261200c565b602082019050919050565b5f6020820190508181035f83015261206d81612034565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6120a86014836116e6565b91506120b382612074565b602082019050919050565b5f6020820190508181035f8301526120d58161209c565b9050919050565b5f6120e68261176c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361211857612117611f79565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61215a8261176c565b91506121658361176c565b92508261217557612174612123565b5b828204905092915050565b5f61218a8261176c565b91506121958361176c565b9250826121a5576121a4612123565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f612201826121dd565b61220b81856121e7565b935061221b8185602086016116f6565b61222481611704565b840191505092915050565b5f6080820190506122425f8301876117fa565b61224f60208301866117fa565b61225c6040830185611905565b818103606083015261226e81846121f7565b905095945050505050565b5f8151905061228781611654565b92915050565b5f602082840312156122a2576122a1611621565b5b5f6122af84828501612279565b9150509291505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa264697066735822122089fde2d4f293f8a5a4447ea368291af8f775dfdc596b30567e673f1a2995800a64736f6c63430008220033","sourceMap":"93:606:90:-:0;;;147:5;124:28;;189:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;252:5;259:7;1078:5:84;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;189:85:90;;93:606;;7:75:145;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;93:606:90:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c80636352211e11610095578063b88d4fde11610064578063b88d4fde1461027f578063bb8a16bd1461029b578063c87b56dd146102b9578063e985e9c5146102e9576100f3565b80636352211e146101e557806370a082311461021557806395d89b4114610245578063a22cb46514610263576100f3565b8063095ea7b3116100d1578063095ea7b31461017557806323b872dd1461019157806340c10f19146101ad57806342842e0e146101c9576100f3565b806301ffc9a7146100f757806306fdde0314610127578063081812fc14610145575b5f5ffd5b610111600480360381019061010c919061167e565b610319565b60405161011e91906116c3565b60405180910390f35b61012f610452565b60405161013c919061174c565b60405180910390f35b61015f600480360381019061015a919061179f565b6104dd565b60405161016c9190611809565b60405180910390f35b61018f600480360381019061018a919061184c565b6105b4565b005b6101ab60048036038101906101a6919061188a565b6106f2565b005b6101c760048036038101906101c2919061184c565b61075a565b005b6101e360048036038101906101de919061188a565b6107b8565b005b6101ff60048036038101906101fa919061179f565b6107d7565b60405161020c9190611809565b60405180910390f35b61022f600480360381019061022a91906118da565b61087e565b60405161023c9190611914565b60405180910390f35b61024d610932565b60405161025a919061174c565b60405180910390f35b61027d60048036038101906102789190611957565b6109be565b005b61029960048036038101906102949190611ac1565b610ab6565b005b6102a3610b20565b6040516102b09190611914565b60405180910390f35b6102d360048036038101906102ce919061179f565b610b26565b6040516102e0919061174c565b60405180910390f35b61030360048036038101906102fe9190611b41565b610c20565b60405161031091906116c3565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461045e90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611bac565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390611c26565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106a3575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990611c8e565b60405180910390fd5b6106ed818484610cae565b505050565b5f6106fc826107d7565b9050610709813384610d5d565b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90611cf6565b60405180910390fd5b61075481858585610e88565b50505050565b5f811015801561076b575060065481105b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190611d5e565b60405180910390fd5b6107b482826110c7565b5050565b6107d283838360405180602001604052805f815250610ab6565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087090611c26565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611dc6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6001805461093f90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461096b90611bac565b80156109b65780601f1061098d576101008083540402835291602001916109b6565b820191905f5260205f20905b81548152906001019060200180831161099957829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610aaa91906116c3565b60405180910390a35050565b5f610ac0836107d7565b9050610acd813385610d5d565b610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390611cf6565b60405180910390fd5b610b1981868686866112d5565b5050505050565b60065481565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611e2e565b60405180910390fd5b5f610bcf6112f4565b90505f815111610bed5760405180602001604052805f815250610c18565b80610bf784611314565b604051602001610c08929190611e86565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610df357508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e7f575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90611ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90611f5b565b60405180910390fd5b610f6f845f83610cae565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fbc9190611fa6565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110109190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612056565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906120be565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112209190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6112e185858585610e88565b6112ed8484848461146d565b5050505050565b60606040518060600160405280603681526020016122b960369139905090565b60605f820361135a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611468565b5f8290505f5b5f8214611389578080611372906120dc565b915050600a826113829190612150565b9150611360565b5f8167ffffffffffffffff8111156113a4576113a361199d565b5b6040519080825280601f01601f1916602001820160405280156113d65781602001600182028036833780820191505090505b5090505b5f8514611461576001826113ee9190611fa6565b9150600a856113fd9190612180565b60306114099190611fd9565b60f81b81838151811061141f5761141e6121b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561145a9190612150565b94506113da565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611612578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114cb949392919061222f565b6020604051808303815f875af192505050801561150657506040513d601f19601f82011682018060405250810190611503919061228d565b60015b611587573d805f8114611534576040519150601f19603f3d011682016040523d82523d5f602084013e611539565b606091505b505f81510361157f57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115769190611809565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461161057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116079190611809565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61165d81611629565b8114611667575f5ffd5b50565b5f8135905061167881611654565b92915050565b5f6020828403121561169357611692611621565b5b5f6116a08482850161166a565b91505092915050565b5f8115159050919050565b6116bd816116a9565b82525050565b5f6020820190506116d65f8301846116b4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61171e826116dc565b61172881856116e6565b93506117388185602086016116f6565b61174181611704565b840191505092915050565b5f6020820190508181035f8301526117648184611714565b905092915050565b5f819050919050565b61177e8161176c565b8114611788575f5ffd5b50565b5f8135905061179981611775565b92915050565b5f602082840312156117b4576117b3611621565b5b5f6117c18482850161178b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f3826117ca565b9050919050565b611803816117e9565b82525050565b5f60208201905061181c5f8301846117fa565b92915050565b61182b816117e9565b8114611835575f5ffd5b50565b5f8135905061184681611822565b92915050565b5f5f6040838503121561186257611861611621565b5b5f61186f85828601611838565b92505060206118808582860161178b565b9150509250929050565b5f5f5f606084860312156118a1576118a0611621565b5b5f6118ae86828701611838565b93505060206118bf86828701611838565b92505060406118d08682870161178b565b9150509250925092565b5f602082840312156118ef576118ee611621565b5b5f6118fc84828501611838565b91505092915050565b61190e8161176c565b82525050565b5f6020820190506119275f830184611905565b92915050565b611936816116a9565b8114611940575f5ffd5b50565b5f813590506119518161192d565b92915050565b5f5f6040838503121561196d5761196c611621565b5b5f61197a85828601611838565b925050602061198b85828601611943565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119d382611704565b810181811067ffffffffffffffff821117156119f2576119f161199d565b5b80604052505050565b5f611a04611618565b9050611a1082826119ca565b919050565b5f67ffffffffffffffff821115611a2f57611a2e61199d565b5b611a3882611704565b9050602081019050919050565b828183375f83830152505050565b5f611a65611a6084611a15565b6119fb565b905082815260208101848484011115611a8157611a80611999565b5b611a8c848285611a45565b509392505050565b5f82601f830112611aa857611aa7611995565b5b8135611ab8848260208601611a53565b91505092915050565b5f5f5f5f60808587031215611ad957611ad8611621565b5b5f611ae687828801611838565b9450506020611af787828801611838565b9350506040611b088782880161178b565b925050606085013567ffffffffffffffff811115611b2957611b28611625565b5b611b3587828801611a94565b91505092959194509250565b5f5f60408385031215611b5757611b56611621565b5b5f611b6485828601611838565b9250506020611b7585828601611838565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bc357607f821691505b602082108103611bd657611bd5611b7f565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c106013836116e6565b9150611c1b82611bdc565b602082019050919050565b5f6020820190508181035f830152611c3d81611c04565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c78601e836116e6565b9150611c8382611c44565b602082019050919050565b5f6020820190508181035f830152611ca581611c6c565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611ce06016836116e6565b9150611ceb82611cac565b602082019050919050565b5f6020820190508181035f830152611d0d81611cd4565b9050919050565b7f746f6b656e4964206f7574206f662072616e67650000000000000000000000005f82015250565b5f611d486014836116e6565b9150611d5382611d14565b602082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611db06014836116e6565b9150611dbb82611d7c565b602082019050919050565b5f6020820190508181035f830152611ddd81611da4565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611e18600f836116e6565b9150611e2382611de4565b602082019050919050565b5f6020820190508181035f830152611e4581611e0c565b9050919050565b5f81905092915050565b5f611e60826116dc565b611e6a8185611e4c565b9350611e7a8185602086016116f6565b80840191505092915050565b5f611e918285611e56565b9150611e9d8284611e56565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611edd6009836116e6565b9150611ee882611ea9565b602082019050919050565b5f6020820190508181035f830152611f0a81611ed1565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611f45601c836116e6565b9150611f5082611f11565b602082019050919050565b5f6020820190508181035f830152611f7281611f39565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fb08261176c565b9150611fbb8361176c565b9250828203905081811115611fd357611fd2611f79565b5b92915050565b5f611fe38261176c565b9150611fee8361176c565b925082820190508082111561200657612005611f79565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6120406014836116e6565b915061204b8261200c565b602082019050919050565b5f6020820190508181035f83015261206d81612034565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6120a86014836116e6565b91506120b382612074565b602082019050919050565b5f6020820190508181035f8301526120d58161209c565b9050919050565b5f6120e68261176c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361211857612117611f79565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61215a8261176c565b91506121658361176c565b92508261217557612174612123565b5b828204905092915050565b5f61218a8261176c565b91506121958361176c565b9250826121a5576121a4612123565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f612201826121dd565b61220b81856121e7565b935061221b8185602086016116f6565b61222481611704565b840191505092915050565b5f6080820190506122425f8301876117fa565b61224f60208301866117fa565b61225c6040830185611905565b818103606083015261226e81846121f7565b905095945050505050565b5f8151905061228781611654565b92915050565b5f602082840312156122a2576122a1611621565b5b5f6122af84828501612279565b9150509291505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa264697066735822122089fde2d4f293f8a5a4447ea368291af8f775dfdc596b30567e673f1a2995800a64736f6c63430008220033","sourceMap":"93:606:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;536:161:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;124:28:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8844:311:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;536:161:90:-;614:1;603:7;:12;;:34;;;;;629:8;;619:7;:18;603:34;595:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;672:18;678:2;682:7;672:5;:18::i;:::-;536:161;;:::o;6437:170:84:-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;124:28:90:-;;;;:::o;8844:311:84:-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;359:147:90:-;411:13;436:63;;;;;;;;;;;;;;;;;;;359:147;:::o;393:703:89:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:84:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:145:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:170::-;14921:22;14917:1;14909:6;14905:14;14898:46;14781:170;:::o;14957:366::-;15099:3;15120:67;15184:2;15179:3;15120:67;:::i;:::-;15113:74;;15196:93;15285:3;15196:93;:::i;:::-;15314:2;15309:3;15305:12;15298:19;;14957:366;;;:::o;15329:419::-;15495:4;15533:2;15522:9;15518:18;15510:26;;15582:9;15576:4;15572:20;15568:1;15557:9;15553:17;15546:47;15610:131;15736:4;15610:131;:::i;:::-;15602:139;;15329:419;;;:::o;15754:165::-;15894:17;15890:1;15882:6;15878:14;15871:41;15754:165;:::o;15925:366::-;16067:3;16088:67;16152:2;16147:3;16088:67;:::i;:::-;16081:74;;16164:93;16253:3;16164:93;:::i;:::-;16282:2;16277:3;16273:12;16266:19;;15925:366;;;:::o;16297:419::-;16463:4;16501:2;16490:9;16486:18;16478:26;;16550:9;16544:4;16540:20;16536:1;16525:9;16521:17;16514:47;16578:131;16704:4;16578:131;:::i;:::-;16570:139;;16297:419;;;:::o;16722:148::-;16824:11;16861:3;16846:18;;16722:148;;;;:::o;16876:390::-;16982:3;17010:39;17043:5;17010:39;:::i;:::-;17065:89;17147:6;17142:3;17065:89;:::i;:::-;17058:96;;17163:65;17221:6;17216:3;17209:4;17202:5;17198:16;17163:65;:::i;:::-;17253:6;17248:3;17244:16;17237:23;;16986:280;16876:390;;;;:::o;17272:435::-;17452:3;17474:95;17565:3;17556:6;17474:95;:::i;:::-;17467:102;;17586:95;17677:3;17668:6;17586:95;:::i;:::-;17579:102;;17698:3;17691:10;;17272:435;;;;;:::o;17713:159::-;17853:11;17849:1;17841:6;17837:14;17830:35;17713:159;:::o;17878:365::-;18020:3;18041:66;18105:1;18100:3;18041:66;:::i;:::-;18034:73;;18116:93;18205:3;18116:93;:::i;:::-;18234:2;18229:3;18225:12;18218:19;;17878:365;;;:::o;18249:419::-;18415:4;18453:2;18442:9;18438:18;18430:26;;18502:9;18496:4;18492:20;18488:1;18477:9;18473:17;18466:47;18530:131;18656:4;18530:131;:::i;:::-;18522:139;;18249:419;;;:::o;18674:178::-;18814:30;18810:1;18802:6;18798:14;18791:54;18674:178;:::o;18858:366::-;19000:3;19021:67;19085:2;19080:3;19021:67;:::i;:::-;19014:74;;19097:93;19186:3;19097:93;:::i;:::-;19215:2;19210:3;19206:12;19199:19;;18858:366;;;:::o;19230:419::-;19396:4;19434:2;19423:9;19419:18;19411:26;;19483:9;19477:4;19473:20;19469:1;19458:9;19454:17;19447:47;19511:131;19637:4;19511:131;:::i;:::-;19503:139;;19230:419;;;:::o;19655:180::-;19703:77;19700:1;19693:88;19800:4;19797:1;19790:15;19824:4;19821:1;19814:15;19841:194;19881:4;19901:20;19919:1;19901:20;:::i;:::-;19896:25;;19935:20;19953:1;19935:20;:::i;:::-;19930:25;;19979:1;19976;19972:9;19964:17;;20003:1;19997:4;19994:11;19991:37;;;20008:18;;:::i;:::-;19991:37;19841:194;;;;:::o;20041:191::-;20081:3;20100:20;20118:1;20100:20;:::i;:::-;20095:25;;20134:20;20152:1;20134:20;:::i;:::-;20129:25;;20177:1;20174;20170:9;20163:16;;20198:3;20195:1;20192:10;20189:36;;;20205:18;;:::i;:::-;20189:36;20041:191;;;;:::o;20238:170::-;20378:22;20374:1;20366:6;20362:14;20355:46;20238:170;:::o;20414:366::-;20556:3;20577:67;20641:2;20636:3;20577:67;:::i;:::-;20570:74;;20653:93;20742:3;20653:93;:::i;:::-;20771:2;20766:3;20762:12;20755:19;;20414:366;;;:::o;20786:419::-;20952:4;20990:2;20979:9;20975:18;20967:26;;21039:9;21033:4;21029:20;21025:1;21014:9;21010:17;21003:47;21067:131;21193:4;21067:131;:::i;:::-;21059:139;;20786:419;;;:::o;21211:170::-;21351:22;21347:1;21339:6;21335:14;21328:46;21211:170;:::o;21387:366::-;21529:3;21550:67;21614:2;21609:3;21550:67;:::i;:::-;21543:74;;21626:93;21715:3;21626:93;:::i;:::-;21744:2;21739:3;21735:12;21728:19;;21387:366;;;:::o;21759:419::-;21925:4;21963:2;21952:9;21948:18;21940:26;;22012:9;22006:4;22002:20;21998:1;21987:9;21983:17;21976:47;22040:131;22166:4;22040:131;:::i;:::-;22032:139;;21759:419;;;:::o;22184:233::-;22223:3;22246:24;22264:5;22246:24;:::i;:::-;22237:33;;22292:66;22285:5;22282:77;22279:103;;22362:18;;:::i;:::-;22279:103;22409:1;22402:5;22398:13;22391:20;;22184:233;;;:::o;22423:180::-;22471:77;22468:1;22461:88;22568:4;22565:1;22558:15;22592:4;22589:1;22582:15;22609:185;22649:1;22666:20;22684:1;22666:20;:::i;:::-;22661:25;;22700:20;22718:1;22700:20;:::i;:::-;22695:25;;22739:1;22729:35;;22744:18;;:::i;:::-;22729:35;22786:1;22783;22779:9;22774:14;;22609:185;;;;:::o;22800:176::-;22832:1;22849:20;22867:1;22849:20;:::i;:::-;22844:25;;22883:20;22901:1;22883:20;:::i;:::-;22878:25;;22922:1;22912:35;;22927:18;;:::i;:::-;22912:35;22968:1;22965;22961:9;22956:14;;22800:176;;;;:::o;22982:180::-;23030:77;23027:1;23020:88;23127:4;23124:1;23117:15;23151:4;23148:1;23141:15;23168:98;23219:6;23253:5;23247:12;23237:22;;23168:98;;;:::o;23272:168::-;23355:11;23389:6;23384:3;23377:19;23429:4;23424:3;23420:14;23405:29;;23272:168;;;;:::o;23446:373::-;23532:3;23560:38;23592:5;23560:38;:::i;:::-;23614:70;23677:6;23672:3;23614:70;:::i;:::-;23607:77;;23693:65;23751:6;23746:3;23739:4;23732:5;23728:16;23693:65;:::i;:::-;23783:29;23805:6;23783:29;:::i;:::-;23778:3;23774:39;23767:46;;23536:283;23446:373;;;;:::o;23825:640::-;24020:4;24058:3;24047:9;24043:19;24035:27;;24072:71;24140:1;24129:9;24125:17;24116:6;24072:71;:::i;:::-;24153:72;24221:2;24210:9;24206:18;24197:6;24153:72;:::i;:::-;24235;24303:2;24292:9;24288:18;24279:6;24235:72;:::i;:::-;24354:9;24348:4;24344:20;24339:2;24328:9;24324:18;24317:48;24382:76;24453:4;24444:6;24382:76;:::i;:::-;24374:84;;23825:640;;;;;;;:::o;24471:141::-;24527:5;24558:6;24552:13;24543:22;;24574:32;24600:5;24574:32;:::i;:::-;24471:141;;;;:::o;24618:349::-;24687:6;24736:2;24724:9;24715:7;24711:23;24707:32;24704:119;;;24742:79;;:::i;:::-;24704:119;24862:1;24887:63;24942:7;24933:6;24922:9;24918:22;24887:63;:::i;:::-;24877:73;;24833:127;24618:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MAX_APES()":"bb8a16bd","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_APES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/WTFApe.sol\":\"WTFApe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/34_ERC721/WTFApe.sol\":{\"keccak256\":\"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f\",\"dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_APES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/WTFApe.sol":"WTFApe"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/34_ERC721/WTFApe.sol":{"keccak256":"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175","urls":["bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f","dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_APES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052612710600655348015610015575f5ffd5b50604051612845380380612845833981810160405281019061003791906101ae565b8181815f90816100479190610445565b5080600190816100579190610445565b5050505050610514565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100c08261007a565b810181811067ffffffffffffffff821117156100df576100de61008a565b5b80604052505050565b5f6100f1610061565b90506100fd82826100b7565b919050565b5f67ffffffffffffffff82111561011c5761011b61008a565b5b6101258261007a565b9050602081019050919050565b8281835e5f83830152505050565b5f61015261014d84610102565b6100e8565b90508281526020810184848401111561016e5761016d610076565b5b610179848285610132565b509392505050565b5f82601f83011261019557610194610072565b5b81516101a5848260208601610140565b91505092915050565b5f5f604083850312156101c4576101c361006a565b5b5f83015167ffffffffffffffff8111156101e1576101e061006e565b5b6101ed85828601610181565b925050602083015167ffffffffffffffff81111561020e5761020d61006e565b5b61021a85828601610181565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061027257607f821691505b6020821081036102855761028461022e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ac565b6102f186836102ac565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61033561033061032b84610309565b610312565b610309565b9050919050565b5f819050919050565b61034e8361031b565b61036261035a8261033c565b8484546102b8565b825550505050565b5f5f905090565b61037961036a565b610384818484610345565b505050565b5f5b828110156103aa5761039f5f828401610371565b60018101905061038b565b505050565b601f8211156103fd57828211156103fc576103c98161028b565b6103d28361029d565b6103db8561029d565b60208610156103e8575f90505b8083016103f782840382610389565b505050505b5b505050565b5f82821c905092915050565b5f61041d5f1984600802610402565b1980831691505092915050565b5f610435838361040e565b9150826002028217905092915050565b61044e82610224565b67ffffffffffffffff8111156104675761046661008a565b5b610471825461025b565b61047c8282856103af565b5f60209050601f8311600181146104ad575f841561049b578287015190505b6104a5858261042a565b86555061050c565b601f1984166104bb8661028b565b5f5b828110156104e2578489015182556001820191506020850194506020810190506104bd565b868310156104ff57848901516104fb601f89168261040e565b8355505b6001600288020188555050505b505050505050565b612324806105215f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c80636352211e11610095578063b88d4fde11610064578063b88d4fde1461027f578063bb8a16bd1461029b578063c87b56dd146102b9578063e985e9c5146102e9576100f3565b80636352211e146101e557806370a082311461021557806395d89b4114610245578063a22cb46514610263576100f3565b8063095ea7b3116100d1578063095ea7b31461017557806323b872dd1461019157806340c10f19146101ad57806342842e0e146101c9576100f3565b806301ffc9a7146100f757806306fdde0314610127578063081812fc14610145575b5f5ffd5b610111600480360381019061010c919061167e565b610319565b60405161011e91906116c3565b60405180910390f35b61012f610452565b60405161013c919061174c565b60405180910390f35b61015f600480360381019061015a919061179f565b6104dd565b60405161016c9190611809565b60405180910390f35b61018f600480360381019061018a919061184c565b6105b4565b005b6101ab60048036038101906101a6919061188a565b6106f2565b005b6101c760048036038101906101c2919061184c565b61075a565b005b6101e360048036038101906101de919061188a565b6107b8565b005b6101ff60048036038101906101fa919061179f565b6107d7565b60405161020c9190611809565b60405180910390f35b61022f600480360381019061022a91906118da565b61087e565b60405161023c9190611914565b60405180910390f35b61024d610932565b60405161025a919061174c565b60405180910390f35b61027d60048036038101906102789190611957565b6109be565b005b61029960048036038101906102949190611ac1565b610ab6565b005b6102a3610b20565b6040516102b09190611914565b60405180910390f35b6102d360048036038101906102ce919061179f565b610b26565b6040516102e0919061174c565b60405180910390f35b61030360048036038101906102fe9190611b41565b610c20565b60405161031091906116c3565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461045e90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611bac565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390611c26565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106a3575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990611c8e565b60405180910390fd5b6106ed818484610cae565b505050565b5f6106fc826107d7565b9050610709813384610d5d565b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90611cf6565b60405180910390fd5b61075481858585610e88565b50505050565b5f811015801561076b575060065481105b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190611d5e565b60405180910390fd5b6107b482826110c7565b5050565b6107d283838360405180602001604052805f815250610ab6565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087090611c26565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611dc6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6001805461093f90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461096b90611bac565b80156109b65780601f1061098d576101008083540402835291602001916109b6565b820191905f5260205f20905b81548152906001019060200180831161099957829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610aaa91906116c3565b60405180910390a35050565b5f610ac0836107d7565b9050610acd813385610d5d565b610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390611cf6565b60405180910390fd5b610b1981868686866112d5565b5050505050565b60065481565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611e2e565b60405180910390fd5b5f610bcf6112f4565b90505f815111610bed5760405180602001604052805f815250610c18565b80610bf784611314565b604051602001610c08929190611e86565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610df357508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e7f575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90611ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90611f5b565b60405180910390fd5b610f6f845f83610cae565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fbc9190611fa6565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110109190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612056565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906120be565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112209190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6112e185858585610e88565b6112ed8484848461146d565b5050505050565b60606040518060600160405280603681526020016122b960369139905090565b60605f820361135a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611468565b5f8290505f5b5f8214611389578080611372906120dc565b915050600a826113829190612150565b9150611360565b5f8167ffffffffffffffff8111156113a4576113a361199d565b5b6040519080825280601f01601f1916602001820160405280156113d65781602001600182028036833780820191505090505b5090505b5f8514611461576001826113ee9190611fa6565b9150600a856113fd9190612180565b60306114099190611fd9565b60f81b81838151811061141f5761141e6121b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561145a9190612150565b94506113da565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611612578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114cb949392919061222f565b6020604051808303815f875af192505050801561150657506040513d601f19601f82011682018060405250810190611503919061228d565b60015b611587573d805f8114611534576040519150601f19603f3d011682016040523d82523d5f602084013e611539565b606091505b505f81510361157f57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115769190611809565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461161057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116079190611809565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61165d81611629565b8114611667575f5ffd5b50565b5f8135905061167881611654565b92915050565b5f6020828403121561169357611692611621565b5b5f6116a08482850161166a565b91505092915050565b5f8115159050919050565b6116bd816116a9565b82525050565b5f6020820190506116d65f8301846116b4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61171e826116dc565b61172881856116e6565b93506117388185602086016116f6565b61174181611704565b840191505092915050565b5f6020820190508181035f8301526117648184611714565b905092915050565b5f819050919050565b61177e8161176c565b8114611788575f5ffd5b50565b5f8135905061179981611775565b92915050565b5f602082840312156117b4576117b3611621565b5b5f6117c18482850161178b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f3826117ca565b9050919050565b611803816117e9565b82525050565b5f60208201905061181c5f8301846117fa565b92915050565b61182b816117e9565b8114611835575f5ffd5b50565b5f8135905061184681611822565b92915050565b5f5f6040838503121561186257611861611621565b5b5f61186f85828601611838565b92505060206118808582860161178b565b9150509250929050565b5f5f5f606084860312156118a1576118a0611621565b5b5f6118ae86828701611838565b93505060206118bf86828701611838565b92505060406118d08682870161178b565b9150509250925092565b5f602082840312156118ef576118ee611621565b5b5f6118fc84828501611838565b91505092915050565b61190e8161176c565b82525050565b5f6020820190506119275f830184611905565b92915050565b611936816116a9565b8114611940575f5ffd5b50565b5f813590506119518161192d565b92915050565b5f5f6040838503121561196d5761196c611621565b5b5f61197a85828601611838565b925050602061198b85828601611943565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119d382611704565b810181811067ffffffffffffffff821117156119f2576119f161199d565b5b80604052505050565b5f611a04611618565b9050611a1082826119ca565b919050565b5f67ffffffffffffffff821115611a2f57611a2e61199d565b5b611a3882611704565b9050602081019050919050565b828183375f83830152505050565b5f611a65611a6084611a15565b6119fb565b905082815260208101848484011115611a8157611a80611999565b5b611a8c848285611a45565b509392505050565b5f82601f830112611aa857611aa7611995565b5b8135611ab8848260208601611a53565b91505092915050565b5f5f5f5f60808587031215611ad957611ad8611621565b5b5f611ae687828801611838565b9450506020611af787828801611838565b9350506040611b088782880161178b565b925050606085013567ffffffffffffffff811115611b2957611b28611625565b5b611b3587828801611a94565b91505092959194509250565b5f5f60408385031215611b5757611b56611621565b5b5f611b6485828601611838565b9250506020611b7585828601611838565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bc357607f821691505b602082108103611bd657611bd5611b7f565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c106013836116e6565b9150611c1b82611bdc565b602082019050919050565b5f6020820190508181035f830152611c3d81611c04565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c78601e836116e6565b9150611c8382611c44565b602082019050919050565b5f6020820190508181035f830152611ca581611c6c565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611ce06016836116e6565b9150611ceb82611cac565b602082019050919050565b5f6020820190508181035f830152611d0d81611cd4565b9050919050565b7f746f6b656e4964206f7574206f662072616e67650000000000000000000000005f82015250565b5f611d486014836116e6565b9150611d5382611d14565b602082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611db06014836116e6565b9150611dbb82611d7c565b602082019050919050565b5f6020820190508181035f830152611ddd81611da4565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611e18600f836116e6565b9150611e2382611de4565b602082019050919050565b5f6020820190508181035f830152611e4581611e0c565b9050919050565b5f81905092915050565b5f611e60826116dc565b611e6a8185611e4c565b9350611e7a8185602086016116f6565b80840191505092915050565b5f611e918285611e56565b9150611e9d8284611e56565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611edd6009836116e6565b9150611ee882611ea9565b602082019050919050565b5f6020820190508181035f830152611f0a81611ed1565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611f45601c836116e6565b9150611f5082611f11565b602082019050919050565b5f6020820190508181035f830152611f7281611f39565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fb08261176c565b9150611fbb8361176c565b9250828203905081811115611fd357611fd2611f79565b5b92915050565b5f611fe38261176c565b9150611fee8361176c565b925082820190508082111561200657612005611f79565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6120406014836116e6565b915061204b8261200c565b602082019050919050565b5f6020820190508181035f83015261206d81612034565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6120a86014836116e6565b91506120b382612074565b602082019050919050565b5f6020820190508181035f8301526120d58161209c565b9050919050565b5f6120e68261176c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361211857612117611f79565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61215a8261176c565b91506121658361176c565b92508261217557612174612123565b5b828204905092915050565b5f61218a8261176c565b91506121958361176c565b9250826121a5576121a4612123565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f612201826121dd565b61220b81856121e7565b935061221b8185602086016116f6565b61222481611704565b840191505092915050565b5f6080820190506122425f8301876117fa565b61224f60208301866117fa565b61225c6040830185611905565b818103606083015261226e81846121f7565b905095945050505050565b5f8151905061228781611654565b92915050565b5f602082840312156122a2576122a1611621565b5b5f6122af84828501612279565b9150509291505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa264697066735822122089fde2d4f293f8a5a4447ea368291af8f775dfdc596b30567e673f1a2995800a64736f6c63430008220033","sourceMap":"93:606:84:-:0;;;147:5;124:28;;189:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;252:5;259:7;1078:5:78;1071:4;:12;;;;;;:::i;:::-;;1102:7;1093:6;:16;;;;;;:::i;:::-;;1005:111;;189:85:84;;93:606;;7:75:139;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:139::-;1699:6;1694:3;1689;1683:23;1740:1;1731:6;1726:3;1722:16;1715:27;1610:139;;;:::o;1755:434::-;1844:5;1869:66;1885:49;1927:6;1885:49;:::i;:::-;1869:66;:::i;:::-;1860:75;;1958:6;1951:5;1944:21;1996:4;1989:5;1985:16;2034:3;2025:6;2020:3;2016:16;2013:25;2010:112;;;2041:79;;:::i;:::-;2010:112;2131:52;2176:6;2171:3;2166;2131:52;:::i;:::-;1850:339;1755:434;;;;;:::o;2209:355::-;2276:5;2325:3;2318:4;2310:6;2306:17;2302:27;2292:122;;2333:79;;:::i;:::-;2292:122;2443:6;2437:13;2468:90;2554:3;2546:6;2539:4;2531:6;2527:17;2468:90;:::i;:::-;2459:99;;2282:282;2209:355;;;;:::o;2570:853::-;2669:6;2677;2726:2;2714:9;2705:7;2701:23;2697:32;2694:119;;;2732:79;;:::i;:::-;2694:119;2873:1;2862:9;2858:17;2852:24;2903:18;2895:6;2892:30;2889:117;;;2925:79;;:::i;:::-;2889:117;3030:74;3096:7;3087:6;3076:9;3072:22;3030:74;:::i;:::-;3020:84;;2823:291;3174:2;3163:9;3159:18;3153:25;3205:18;3197:6;3194:30;3191:117;;;3227:79;;:::i;:::-;3191:117;3332:74;3398:7;3389:6;3378:9;3374:22;3332:74;:::i;:::-;3322:84;;3124:292;2570:853;;;;;:::o;3429:99::-;3481:6;3515:5;3509:12;3499:22;;3429:99;;;:::o;3534:180::-;3582:77;3579:1;3572:88;3679:4;3676:1;3669:15;3703:4;3700:1;3693:15;3720:320;3764:6;3801:1;3795:4;3791:12;3781:22;;3848:1;3842:4;3838:12;3869:18;3859:81;;3925:4;3917:6;3913:17;3903:27;;3859:81;3987:2;3979:6;3976:14;3956:18;3953:38;3950:84;;4006:18;;:::i;:::-;3950:84;3771:269;3720:320;;;:::o;4046:141::-;4095:4;4118:3;4110:11;;4141:3;4138:1;4131:14;4175:4;4172:1;4162:18;4154:26;;4046:141;;;:::o;4193:93::-;4230:6;4277:2;4272;4265:5;4261:14;4257:23;4247:33;;4193:93;;;:::o;4292:107::-;4336:8;4386:5;4380:4;4376:16;4355:37;;4292:107;;;;:::o;4405:393::-;4474:6;4524:1;4512:10;4508:18;4547:97;4577:66;4566:9;4547:97;:::i;:::-;4665:39;4695:8;4684:9;4665:39;:::i;:::-;4653:51;;4737:4;4733:9;4726:5;4722:21;4713:30;;4786:4;4776:8;4772:19;4765:5;4762:30;4752:40;;4481:317;;4405:393;;;;;:::o;4804:77::-;4841:7;4870:5;4859:16;;4804:77;;;:::o;4887:60::-;4915:3;4936:5;4929:12;;4887:60;;;:::o;4953:142::-;5003:9;5036:53;5054:34;5063:24;5081:5;5063:24;:::i;:::-;5054:34;:::i;:::-;5036:53;:::i;:::-;5023:66;;4953:142;;;:::o;5101:75::-;5144:3;5165:5;5158:12;;5101:75;;;:::o;5182:269::-;5292:39;5323:7;5292:39;:::i;:::-;5353:91;5402:41;5426:16;5402:41;:::i;:::-;5394:6;5387:4;5381:11;5353:91;:::i;:::-;5347:4;5340:105;5258:193;5182:269;;;:::o;5457:73::-;5502:3;5523:1;5516:8;;5457:73;:::o;5536:189::-;5613:32;;:::i;:::-;5654:65;5712:6;5704;5698:4;5654:65;:::i;:::-;5589:136;5536:189;;:::o;5731:214::-;5816:1;5801:138;5826:9;5823:1;5820:16;5801:138;;;5878:51;5927:1;5923;5912:9;5908:17;5878:51;:::i;:::-;5851:1;5848;5844:9;5839:14;;5801:138;;;5805:14;5731:214;;:::o;5951:746::-;6052:2;6047:3;6044:11;6041:649;;;6081:10;6076:3;6073:19;6070:610;;;6127:38;6159:5;6127:38;:::i;:::-;6202:22;6220:3;6202:22;:::i;:::-;6261:29;6279:10;6261:29;:::i;:::-;6451:2;6439:10;6436:18;6433:79;;;6493:1;6477:17;;6433:79;6562:12;6552:8;6548:27;6592:74;6652:12;6638;6634:31;6621:11;6592:74;:::i;:::-;6093:587;;;;6070:610;6041:649;5951:746;;;:::o;6703:117::-;6757:8;6807:5;6801:4;6797:16;6776:37;;6703:117;;;;:::o;6826:169::-;6870:6;6903:51;6951:1;6947:6;6939:5;6936:1;6932:13;6903:51;:::i;:::-;6899:56;6984:4;6978;6974:15;6964:25;;6877:118;6826:169;;;;:::o;7000:295::-;7076:4;7222:29;7247:3;7241:4;7222:29;:::i;:::-;7214:37;;7284:3;7281:1;7277:11;7271:4;7268:21;7260:29;;7000:295;;;;:::o;7300:1395::-;7417:37;7450:3;7417:37;:::i;:::-;7519:18;7511:6;7508:30;7505:56;;;7541:18;;:::i;:::-;7505:56;7585:38;7617:4;7611:11;7585:38;:::i;:::-;7670:67;7730:6;7722;7716:4;7670:67;:::i;:::-;7764:1;7788:4;7775:17;;7820:2;7812:6;7809:14;7837:1;7832:618;;;;8494:1;8511:6;8508:77;;;8560:9;8555:3;8551:19;8545:26;8536:35;;8508:77;8611:67;8671:6;8664:5;8611:67;:::i;:::-;8605:4;8598:81;8467:222;7802:887;;7832:618;7884:4;7880:9;7872:6;7868:22;7918:37;7950:4;7918:37;:::i;:::-;7977:1;7991:208;8005:7;8002:1;7999:14;7991:208;;;8084:9;8079:3;8075:19;8069:26;8061:6;8054:42;8135:1;8127:6;8123:14;8113:24;;8182:2;8171:9;8167:18;8154:31;;8028:4;8025:1;8021:12;8016:17;;7991:208;;;8227:6;8218:7;8215:19;8212:179;;;8285:9;8280:3;8276:19;8270:26;8328:48;8370:4;8362:6;8358:17;8347:9;8328:48;:::i;:::-;8320:6;8313:64;8235:156;8212:179;8437:1;8433;8425:6;8421:14;8417:22;8411:4;8404:36;7839:611;;;7802:887;;7392:1303;;;7300:1395;;:::o;93:606:84:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c80636352211e11610095578063b88d4fde11610064578063b88d4fde1461027f578063bb8a16bd1461029b578063c87b56dd146102b9578063e985e9c5146102e9576100f3565b80636352211e146101e557806370a082311461021557806395d89b4114610245578063a22cb46514610263576100f3565b8063095ea7b3116100d1578063095ea7b31461017557806323b872dd1461019157806340c10f19146101ad57806342842e0e146101c9576100f3565b806301ffc9a7146100f757806306fdde0314610127578063081812fc14610145575b5f5ffd5b610111600480360381019061010c919061167e565b610319565b60405161011e91906116c3565b60405180910390f35b61012f610452565b60405161013c919061174c565b60405180910390f35b61015f600480360381019061015a919061179f565b6104dd565b60405161016c9190611809565b60405180910390f35b61018f600480360381019061018a919061184c565b6105b4565b005b6101ab60048036038101906101a6919061188a565b6106f2565b005b6101c760048036038101906101c2919061184c565b61075a565b005b6101e360048036038101906101de919061188a565b6107b8565b005b6101ff60048036038101906101fa919061179f565b6107d7565b60405161020c9190611809565b60405180910390f35b61022f600480360381019061022a91906118da565b61087e565b60405161023c9190611914565b60405180910390f35b61024d610932565b60405161025a919061174c565b60405180910390f35b61027d60048036038101906102789190611957565b6109be565b005b61029960048036038101906102949190611ac1565b610ab6565b005b6102a3610b20565b6040516102b09190611914565b60405180910390f35b6102d360048036038101906102ce919061179f565b610b26565b6040516102e0919061174c565b60405180910390f35b61030360048036038101906102fe9190611b41565b610c20565b60405161031091906116c3565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e357507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061044b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b5f805461045e90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611bac565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b505050505081565b5f5f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390611c26565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106a3575060055f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d990611c8e565b60405180910390fd5b6106ed818484610cae565b505050565b5f6106fc826107d7565b9050610709813384610d5d565b610748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073f90611cf6565b60405180910390fd5b61075481858585610e88565b50505050565b5f811015801561076b575060065481105b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190611d5e565b60405180910390fd5b6107b482826110c7565b5050565b6107d283838360405180602001604052805f815250610ab6565b505050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087090611c26565b60405180910390fd5b919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611dc6565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6001805461093f90611bac565b80601f016020809104026020016040519081016040528092919081815260200182805461096b90611bac565b80156109b65780601f1061098d576101008083540402835291602001916109b6565b820191905f5260205f20905b81548152906001019060200180831161099957829003601f168201915b505050505081565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610aaa91906116c3565b60405180910390a35050565b5f610ac0836107d7565b9050610acd813385610d5d565b610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390611cf6565b60405180910390fd5b610b1981868686866112d5565b5050505050565b60065481565b60605f73ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90611e2e565b60405180910390fd5b5f610bcf6112f4565b90505f815111610bed5760405180602001604052805f815250610c18565b80610bf784611314565b604051602001610c08929190611e86565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b5f8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610df357508273ffffffffffffffffffffffffffffffffffffffff1660045f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610e7f575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90509392505050565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eed90611ef3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b90611f5b565b60405180910390fd5b610f6f845f83610cae565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610fbc9190611fa6565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110109190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c90612056565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906120be565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112209190611fd9565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6112e185858585610e88565b6112ed8484848461146d565b5050505050565b60606040518060600160405280603681526020016122b960369139905090565b60605f820361135a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611468565b5f8290505f5b5f8214611389578080611372906120dc565b915050600a826113829190612150565b9150611360565b5f8167ffffffffffffffff8111156113a4576113a361199d565b5b6040519080825280601f01601f1916602001820160405280156113d65781602001600182028036833780820191505090505b5090505b5f8514611461576001826113ee9190611fa6565b9150600a856113fd9190612180565b60306114099190611fd9565b60f81b81838151811061141f5761141e6121b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a8561145a9190612150565b94506113da565b8093505050505b919050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611612578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02338685856040518563ffffffff1660e01b81526004016114cb949392919061222f565b6020604051808303815f875af192505050801561150657506040513d601f19601f82011682018060405250810190611503919061228d565b60015b611587573d805f8114611534576040519150601f19603f3d011682016040523d82523d5f602084013e611539565b606091505b505f81510361157f57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115769190611809565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461161057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016116079190611809565b60405180910390fd5b505b50505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61165d81611629565b8114611667575f5ffd5b50565b5f8135905061167881611654565b92915050565b5f6020828403121561169357611692611621565b5b5f6116a08482850161166a565b91505092915050565b5f8115159050919050565b6116bd816116a9565b82525050565b5f6020820190506116d65f8301846116b4565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61171e826116dc565b61172881856116e6565b93506117388185602086016116f6565b61174181611704565b840191505092915050565b5f6020820190508181035f8301526117648184611714565b905092915050565b5f819050919050565b61177e8161176c565b8114611788575f5ffd5b50565b5f8135905061179981611775565b92915050565b5f602082840312156117b4576117b3611621565b5b5f6117c18482850161178b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117f3826117ca565b9050919050565b611803816117e9565b82525050565b5f60208201905061181c5f8301846117fa565b92915050565b61182b816117e9565b8114611835575f5ffd5b50565b5f8135905061184681611822565b92915050565b5f5f6040838503121561186257611861611621565b5b5f61186f85828601611838565b92505060206118808582860161178b565b9150509250929050565b5f5f5f606084860312156118a1576118a0611621565b5b5f6118ae86828701611838565b93505060206118bf86828701611838565b92505060406118d08682870161178b565b9150509250925092565b5f602082840312156118ef576118ee611621565b5b5f6118fc84828501611838565b91505092915050565b61190e8161176c565b82525050565b5f6020820190506119275f830184611905565b92915050565b611936816116a9565b8114611940575f5ffd5b50565b5f813590506119518161192d565b92915050565b5f5f6040838503121561196d5761196c611621565b5b5f61197a85828601611838565b925050602061198b85828601611943565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119d382611704565b810181811067ffffffffffffffff821117156119f2576119f161199d565b5b80604052505050565b5f611a04611618565b9050611a1082826119ca565b919050565b5f67ffffffffffffffff821115611a2f57611a2e61199d565b5b611a3882611704565b9050602081019050919050565b828183375f83830152505050565b5f611a65611a6084611a15565b6119fb565b905082815260208101848484011115611a8157611a80611999565b5b611a8c848285611a45565b509392505050565b5f82601f830112611aa857611aa7611995565b5b8135611ab8848260208601611a53565b91505092915050565b5f5f5f5f60808587031215611ad957611ad8611621565b5b5f611ae687828801611838565b9450506020611af787828801611838565b9350506040611b088782880161178b565b925050606085013567ffffffffffffffff811115611b2957611b28611625565b5b611b3587828801611a94565b91505092959194509250565b5f5f60408385031215611b5757611b56611621565b5b5f611b6485828601611838565b9250506020611b7585828601611838565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611bc357607f821691505b602082108103611bd657611bd5611b7f565b5b50919050565b7f746f6b656e20646f65736e2774206578697374000000000000000000000000005f82015250565b5f611c106013836116e6565b9150611c1b82611bdc565b602082019050919050565b5f6020820190508181035f830152611c3d81611c04565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c00005f82015250565b5f611c78601e836116e6565b9150611c8382611c44565b602082019050919050565b5f6020820190508181035f830152611ca581611c6c565b9050919050565b7f6e6f74206f776e6572206e6f7220617070726f766564000000000000000000005f82015250565b5f611ce06016836116e6565b9150611ceb82611cac565b602082019050919050565b5f6020820190508181035f830152611d0d81611cd4565b9050919050565b7f746f6b656e4964206f7574206f662072616e67650000000000000000000000005f82015250565b5f611d486014836116e6565b9150611d5382611d14565b602082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f6f776e6572203d207a65726f20616464726573730000000000000000000000005f82015250565b5f611db06014836116e6565b9150611dbb82611d7c565b602082019050919050565b5f6020820190508181035f830152611ddd81611da4565b9050919050565b7f546f6b656e204e6f7420457869737400000000000000000000000000000000005f82015250565b5f611e18600f836116e6565b9150611e2382611de4565b602082019050919050565b5f6020820190508181035f830152611e4581611e0c565b9050919050565b5f81905092915050565b5f611e60826116dc565b611e6a8185611e4c565b9350611e7a8185602086016116f6565b80840191505092915050565b5f611e918285611e56565b9150611e9d8284611e56565b91508190509392505050565b7f6e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f611edd6009836116e6565b9150611ee882611ea9565b602082019050919050565b5f6020820190508181035f830152611f0a81611ed1565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611f45601c836116e6565b9150611f5082611f11565b602082019050919050565b5f6020820190508181035f830152611f7281611f39565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fb08261176c565b9150611fbb8361176c565b9250828203905081811115611fd357611fd2611f79565b5b92915050565b5f611fe38261176c565b9150611fee8361176c565b925082820190508082111561200657612005611f79565b5b92915050565b7f6d696e7420746f207a65726f20616464726573730000000000000000000000005f82015250565b5f6120406014836116e6565b915061204b8261200c565b602082019050919050565b5f6020820190508181035f83015261206d81612034565b9050919050565b7f746f6b656e20616c7265616479206d696e7465640000000000000000000000005f82015250565b5f6120a86014836116e6565b91506120b382612074565b602082019050919050565b5f6020820190508181035f8301526120d58161209c565b9050919050565b5f6120e68261176c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361211857612117611f79565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61215a8261176c565b91506121658361176c565b92508261217557612174612123565b5b828204905092915050565b5f61218a8261176c565b91506121958361176c565b9250826121a5576121a4612123565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f612201826121dd565b61220b81856121e7565b935061221b8185602086016116f6565b61222481611704565b840191505092915050565b5f6080820190506122425f8301876117fa565b61224f60208301866117fa565b61225c6040830185611905565b818103606083015261226e81846121f7565b905095945050505050565b5f8151905061228781611654565b92915050565b5f602082840312156122a2576122a1611621565b5b5f6122af84828501612279565b9150509291505056fe697066733a2f2f516d65536a53696e4870506e6d586d73704d6a776958794e367a533445397a63636172694752336a7863615774712fa264697066735822122089fde2d4f293f8a5a4447ea368291af8f775dfdc596b30567e673f1a2995800a64736f6c63430008220033","sourceMap":"93:606:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:317:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;328:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2791:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4874:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;536:161:84;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6437:170:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1576:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;380:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6025:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;124:28:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8844:311:78;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:317;1277:4;1331:25;1316:40;;;:11;:40;;;;:96;;;;1387:25;1372:40;;;:11;:40;;;;1316:96;:160;;;;1443:33;1428:48;;;:11;:48;;;;1316:160;1297:179;;1166:317;;;:::o;328:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2791:196::-;2858:7;2913:1;2885:30;;:7;:16;2893:7;2885:16;;;;;;;;;;;;;;;;;;;;;:30;;;2877:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:15;:24;2972:7;2956:24;;;;;;;;;;;;;;;;;;;;;2949:31;;2791:196;;;:::o;3461:295::-;3532:13;3548:7;:16;3556:7;3548:16;;;;;;;;;;;;;;;;;;;;;3532:32;;3609:5;3595:19;;:10;:19;;;:60;;;;3618:18;:25;3637:5;3618:25;;;;;;;;;;;;;;;:37;3644:10;3618:37;;;;;;;;;;;;;;;;;;;;;;;;;3595:60;3574:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;3721:28;3730:5;3737:2;3741:7;3721:8;:28::i;:::-;3522:234;3461:295;;:::o;4874:329::-;4994:13;5010:16;5018:7;5010;:16::i;:::-;4994:32;;5057:46;5076:5;5083:10;5095:7;5057:18;:46::i;:::-;5036:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;5161:35;5171:5;5178:4;5184:2;5188:7;5161:9;:35::i;:::-;4984:219;4874:329;;;:::o;536:161:84:-;614:1;603:7;:12;;:34;;;;;629:8;;619:7;:18;603:34;595:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;672:18;678:2;682:7;672:5;:18::i;:::-;536:161;;:::o;6437:170:78:-;6561:39;6578:4;6584:2;6588:7;6561:39;;;;;;;;;;;;:16;:39::i;:::-;6437:170;;;:::o;1833:178::-;1894:13;1927:7;:16;1935:7;1927:16;;;;;;;;;;;;;;;;;;;;;1919:24;;1978:1;1961:19;;:5;:19;;;1953:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:178;;;:::o;1576:174::-;1642:4;1683:1;1666:19;;:5;:19;;;1658:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;1727:9;:16;1737:5;1727:16;;;;;;;;;;;;;;;;1720:23;;1576:174;;;:::o;380:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2482:207::-;2613:8;2570:18;:30;2589:10;2570:30;;;;;;;;;;;;;;;:40;2601:8;2570:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2663:8;2636:46;;2651:10;2636:46;;;2673:8;2636:46;;;;;;:::i;:::-;;;;;;;;2482:207;;:::o;6025:370::-;6175:13;6191:16;6199:7;6191;:16::i;:::-;6175:32;;6238:46;6257:5;6264:10;6276:7;6238:18;:46::i;:::-;6217:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6342:46;6356:5;6363:4;6369:2;6373:7;6382:5;6342:13;:46::i;:::-;6165:230;6025:370;;;;:::o;124:28:84:-;;;;:::o;8844:311:78:-;8917:13;8978:1;8950:30;;:7;:16;8958:7;8950:16;;;;;;;;;;;;;;;;;;;;;:30;;;8942:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:21;9035:10;:8;:10::i;:::-;9011:34;;9086:1;9068:7;9062:21;:25;:86;;;;;;;;;;;;;;;;;9114:7;9123:18;:7;:16;:18::i;:::-;9097:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:86;9055:93;;;8844:311;;;:::o;2160:192::-;2283:4;2310:18;:25;2329:5;2310:25;;;;;;;;;;;;;;;:35;2336:8;2310:35;;;;;;;;;;;;;;;;;;;;;;;;;2303:42;;2160:192;;;;:::o;3116:186::-;3250:2;3223:15;:24;3239:7;3223:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3287:7;3283:2;3267:28;;3276:5;3267:28;;;;;;;;;;;;3116:186;;;:::o;3853:275::-;3979:4;4014:5;4003:16;;:7;:16;;;:67;;;;4063:7;4035:35;;:15;:24;4051:7;4035:24;;;;;;;;;;;;;;;;;;;;;:35;;;4003:67;:117;;;;4086:18;:25;4105:5;4086:25;;;;;;;;;;;;;;;:34;4112:7;4086:34;;;;;;;;;;;;;;;;;;;;;;;;;4003:117;3995:126;;3853:275;;;;;:::o;4349:419::-;4495:5;4487:13;;:4;:13;;;4479:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;4546:1;4532:16;;:2;:16;;;4524:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:36;4601:5;4616:1;4620:7;4592:8;:36::i;:::-;4658:1;4639:9;:15;4649:4;4639:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;4686:1;4669:9;:13;4679:2;4669:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;4716:2;4697:7;:16;4705:7;4697:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4753:7;4749:2;4734:27;;4743:4;4734:27;;;;;;;;;;;;4349:419;;;;:::o;7051:306::-;7141:1;7127:16;;:2;:16;;;7119:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;7214:1;7186:30;;:7;:16;7194:7;7186:16;;;;;;;;;;;;;;;;;;;;;:30;;;7178:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7269:1;7252:9;:13;7262:2;7252:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;7299:2;7280:7;:16;7288:7;7280:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;7342:7;7338:2;7317:33;;7334:1;7317:33;;;;;;;;;;;;7051:306;;:::o;5652:262::-;5814:35;5824:5;5831:4;5837:2;5841:7;5814:9;:35::i;:::-;5859:48;5882:4;5888:2;5892:7;5901:5;5859:22;:48::i;:::-;5652:262;;;;;:::o;359:147:84:-;411:13;436:63;;;;;;;;;;;;;;;;;;;359:147;:::o;393:703:83:-;449:13;675:1;666:5;:10;662:51;;692:10;;;;;;;;;;;;;;;;;;;;;662:51;722:12;737:5;722:20;;752:14;776:75;791:1;783:4;:9;776:75;;808:8;;;;;:::i;:::-;;;;838:2;830:10;;;;;:::i;:::-;;;776:75;;;860:19;892:6;882:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;860:39;;909:150;925:1;916:5;:10;909:150;;952:1;942:11;;;;;:::i;:::-;;;1018:2;1010:5;:10;;;;:::i;:::-;997:2;:24;;;;:::i;:::-;984:39;;967:6;974;967:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1046:2;1037:11;;;;;:::i;:::-;;;909:150;;;1082:6;1068:21;;;;;393:703;;;;:::o;7976:780:78:-;8109:1;8092:2;:14;;;:18;8088:662;;;8146:2;8130:36;;;8167:10;8179:4;8185:7;8194:4;8130:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8126:614;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:1;8437:6;:13;:18;8433:293;;8508:2;8486:25;;;;;;;;;;;:::i;:::-;;;;;;;;8433:293;8678:6;8672:13;8663:6;8659:2;8655:15;8648:38;8126:614;8256:41;;;8246:51;;;:6;:51;;;;8242:130;;8350:2;8328:25;;;;;;;;;;;:::i;:::-;;;;;;;;8242:130;8200:186;8088:662;7976:780;;;;:::o;7:75:139:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:329::-;5467:6;5516:2;5504:9;5495:7;5491:23;5487:32;5484:119;;;5522:79;;:::i;:::-;5484:119;5642:1;5667:53;5712:7;5703:6;5692:9;5688:22;5667:53;:::i;:::-;5657:63;;5613:117;5408:329;;;;:::o;5743:118::-;5830:24;5848:5;5830:24;:::i;:::-;5825:3;5818:37;5743:118;;:::o;5867:222::-;5960:4;5998:2;5987:9;5983:18;5975:26;;6011:71;6079:1;6068:9;6064:17;6055:6;6011:71;:::i;:::-;5867:222;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:180;7124:77;7121:1;7114:88;7221:4;7218:1;7211:15;7245:4;7242:1;7235:15;7262:281;7345:27;7367:4;7345:27;:::i;:::-;7337:6;7333:40;7475:6;7463:10;7460:22;7439:18;7427:10;7424:34;7421:62;7418:88;;;7486:18;;:::i;:::-;7418:88;7526:10;7522:2;7515:22;7305:238;7262:281;;:::o;7549:129::-;7583:6;7610:20;;:::i;:::-;7600:30;;7639:33;7667:4;7659:6;7639:33;:::i;:::-;7549:129;;;:::o;7684:307::-;7745:4;7835:18;7827:6;7824:30;7821:56;;;7857:18;;:::i;:::-;7821:56;7895:29;7917:6;7895:29;:::i;:::-;7887:37;;7979:4;7973;7969:15;7961:23;;7684:307;;;:::o;7997:148::-;8095:6;8090:3;8085;8072:30;8136:1;8127:6;8122:3;8118:16;8111:27;7997:148;;;:::o;8151:423::-;8228:5;8253:65;8269:48;8310:6;8269:48;:::i;:::-;8253:65;:::i;:::-;8244:74;;8341:6;8334:5;8327:21;8379:4;8372:5;8368:16;8417:3;8408:6;8403:3;8399:16;8396:25;8393:112;;;8424:79;;:::i;:::-;8393:112;8514:54;8561:6;8556:3;8551;8514:54;:::i;:::-;8234:340;8151:423;;;;;:::o;8593:338::-;8648:5;8697:3;8690:4;8682:6;8678:17;8674:27;8664:122;;8705:79;;:::i;:::-;8664:122;8822:6;8809:20;8847:78;8921:3;8913:6;8906:4;8898:6;8894:17;8847:78;:::i;:::-;8838:87;;8654:277;8593:338;;;;:::o;8937:943::-;9032:6;9040;9048;9056;9105:3;9093:9;9084:7;9080:23;9076:33;9073:120;;;9112:79;;:::i;:::-;9073:120;9232:1;9257:53;9302:7;9293:6;9282:9;9278:22;9257:53;:::i;:::-;9247:63;;9203:117;9359:2;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9330:118;9487:2;9513:53;9558:7;9549:6;9538:9;9534:22;9513:53;:::i;:::-;9503:63;;9458:118;9643:2;9632:9;9628:18;9615:32;9674:18;9666:6;9663:30;9660:117;;;9696:79;;:::i;:::-;9660:117;9801:62;9855:7;9846:6;9835:9;9831:22;9801:62;:::i;:::-;9791:72;;9586:287;8937:943;;;;;;;:::o;9886:474::-;9954:6;9962;10011:2;9999:9;9990:7;9986:23;9982:32;9979:119;;;10017:79;;:::i;:::-;9979:119;10137:1;10162:53;10207:7;10198:6;10187:9;10183:22;10162:53;:::i;:::-;10152:63;;10108:117;10264:2;10290:53;10335:7;10326:6;10315:9;10311:22;10290:53;:::i;:::-;10280:63;;10235:118;9886:474;;;;;:::o;10366:180::-;10414:77;10411:1;10404:88;10511:4;10508:1;10501:15;10535:4;10532:1;10525:15;10552:320;10596:6;10633:1;10627:4;10623:12;10613:22;;10680:1;10674:4;10670:12;10701:18;10691:81;;10757:4;10749:6;10745:17;10735:27;;10691:81;10819:2;10811:6;10808:14;10788:18;10785:38;10782:84;;10838:18;;:::i;:::-;10782:84;10603:269;10552:320;;;:::o;10878:169::-;11018:21;11014:1;11006:6;11002:14;10995:45;10878:169;:::o;11053:366::-;11195:3;11216:67;11280:2;11275:3;11216:67;:::i;:::-;11209:74;;11292:93;11381:3;11292:93;:::i;:::-;11410:2;11405:3;11401:12;11394:19;;11053:366;;;:::o;11425:419::-;11591:4;11629:2;11618:9;11614:18;11606:26;;11678:9;11672:4;11668:20;11664:1;11653:9;11649:17;11642:47;11706:131;11832:4;11706:131;:::i;:::-;11698:139;;11425:419;;;:::o;11850:180::-;11990:32;11986:1;11978:6;11974:14;11967:56;11850:180;:::o;12036:366::-;12178:3;12199:67;12263:2;12258:3;12199:67;:::i;:::-;12192:74;;12275:93;12364:3;12275:93;:::i;:::-;12393:2;12388:3;12384:12;12377:19;;12036:366;;;:::o;12408:419::-;12574:4;12612:2;12601:9;12597:18;12589:26;;12661:9;12655:4;12651:20;12647:1;12636:9;12632:17;12625:47;12689:131;12815:4;12689:131;:::i;:::-;12681:139;;12408:419;;;:::o;12833:172::-;12973:24;12969:1;12961:6;12957:14;12950:48;12833:172;:::o;13011:366::-;13153:3;13174:67;13238:2;13233:3;13174:67;:::i;:::-;13167:74;;13250:93;13339:3;13250:93;:::i;:::-;13368:2;13363:3;13359:12;13352:19;;13011:366;;;:::o;13383:419::-;13549:4;13587:2;13576:9;13572:18;13564:26;;13636:9;13630:4;13626:20;13622:1;13611:9;13607:17;13600:47;13664:131;13790:4;13664:131;:::i;:::-;13656:139;;13383:419;;;:::o;13808:170::-;13948:22;13944:1;13936:6;13932:14;13925:46;13808:170;:::o;13984:366::-;14126:3;14147:67;14211:2;14206:3;14147:67;:::i;:::-;14140:74;;14223:93;14312:3;14223:93;:::i;:::-;14341:2;14336:3;14332:12;14325:19;;13984:366;;;:::o;14356:419::-;14522:4;14560:2;14549:9;14545:18;14537:26;;14609:9;14603:4;14599:20;14595:1;14584:9;14580:17;14573:47;14637:131;14763:4;14637:131;:::i;:::-;14629:139;;14356:419;;;:::o;14781:170::-;14921:22;14917:1;14909:6;14905:14;14898:46;14781:170;:::o;14957:366::-;15099:3;15120:67;15184:2;15179:3;15120:67;:::i;:::-;15113:74;;15196:93;15285:3;15196:93;:::i;:::-;15314:2;15309:3;15305:12;15298:19;;14957:366;;;:::o;15329:419::-;15495:4;15533:2;15522:9;15518:18;15510:26;;15582:9;15576:4;15572:20;15568:1;15557:9;15553:17;15546:47;15610:131;15736:4;15610:131;:::i;:::-;15602:139;;15329:419;;;:::o;15754:165::-;15894:17;15890:1;15882:6;15878:14;15871:41;15754:165;:::o;15925:366::-;16067:3;16088:67;16152:2;16147:3;16088:67;:::i;:::-;16081:74;;16164:93;16253:3;16164:93;:::i;:::-;16282:2;16277:3;16273:12;16266:19;;15925:366;;;:::o;16297:419::-;16463:4;16501:2;16490:9;16486:18;16478:26;;16550:9;16544:4;16540:20;16536:1;16525:9;16521:17;16514:47;16578:131;16704:4;16578:131;:::i;:::-;16570:139;;16297:419;;;:::o;16722:148::-;16824:11;16861:3;16846:18;;16722:148;;;;:::o;16876:390::-;16982:3;17010:39;17043:5;17010:39;:::i;:::-;17065:89;17147:6;17142:3;17065:89;:::i;:::-;17058:96;;17163:65;17221:6;17216:3;17209:4;17202:5;17198:16;17163:65;:::i;:::-;17253:6;17248:3;17244:16;17237:23;;16986:280;16876:390;;;;:::o;17272:435::-;17452:3;17474:95;17565:3;17556:6;17474:95;:::i;:::-;17467:102;;17586:95;17677:3;17668:6;17586:95;:::i;:::-;17579:102;;17698:3;17691:10;;17272:435;;;;;:::o;17713:159::-;17853:11;17849:1;17841:6;17837:14;17830:35;17713:159;:::o;17878:365::-;18020:3;18041:66;18105:1;18100:3;18041:66;:::i;:::-;18034:73;;18116:93;18205:3;18116:93;:::i;:::-;18234:2;18229:3;18225:12;18218:19;;17878:365;;;:::o;18249:419::-;18415:4;18453:2;18442:9;18438:18;18430:26;;18502:9;18496:4;18492:20;18488:1;18477:9;18473:17;18466:47;18530:131;18656:4;18530:131;:::i;:::-;18522:139;;18249:419;;;:::o;18674:178::-;18814:30;18810:1;18802:6;18798:14;18791:54;18674:178;:::o;18858:366::-;19000:3;19021:67;19085:2;19080:3;19021:67;:::i;:::-;19014:74;;19097:93;19186:3;19097:93;:::i;:::-;19215:2;19210:3;19206:12;19199:19;;18858:366;;;:::o;19230:419::-;19396:4;19434:2;19423:9;19419:18;19411:26;;19483:9;19477:4;19473:20;19469:1;19458:9;19454:17;19447:47;19511:131;19637:4;19511:131;:::i;:::-;19503:139;;19230:419;;;:::o;19655:180::-;19703:77;19700:1;19693:88;19800:4;19797:1;19790:15;19824:4;19821:1;19814:15;19841:194;19881:4;19901:20;19919:1;19901:20;:::i;:::-;19896:25;;19935:20;19953:1;19935:20;:::i;:::-;19930:25;;19979:1;19976;19972:9;19964:17;;20003:1;19997:4;19994:11;19991:37;;;20008:18;;:::i;:::-;19991:37;19841:194;;;;:::o;20041:191::-;20081:3;20100:20;20118:1;20100:20;:::i;:::-;20095:25;;20134:20;20152:1;20134:20;:::i;:::-;20129:25;;20177:1;20174;20170:9;20163:16;;20198:3;20195:1;20192:10;20189:36;;;20205:18;;:::i;:::-;20189:36;20041:191;;;;:::o;20238:170::-;20378:22;20374:1;20366:6;20362:14;20355:46;20238:170;:::o;20414:366::-;20556:3;20577:67;20641:2;20636:3;20577:67;:::i;:::-;20570:74;;20653:93;20742:3;20653:93;:::i;:::-;20771:2;20766:3;20762:12;20755:19;;20414:366;;;:::o;20786:419::-;20952:4;20990:2;20979:9;20975:18;20967:26;;21039:9;21033:4;21029:20;21025:1;21014:9;21010:17;21003:47;21067:131;21193:4;21067:131;:::i;:::-;21059:139;;20786:419;;;:::o;21211:170::-;21351:22;21347:1;21339:6;21335:14;21328:46;21211:170;:::o;21387:366::-;21529:3;21550:67;21614:2;21609:3;21550:67;:::i;:::-;21543:74;;21626:93;21715:3;21626:93;:::i;:::-;21744:2;21739:3;21735:12;21728:19;;21387:366;;;:::o;21759:419::-;21925:4;21963:2;21952:9;21948:18;21940:26;;22012:9;22006:4;22002:20;21998:1;21987:9;21983:17;21976:47;22040:131;22166:4;22040:131;:::i;:::-;22032:139;;21759:419;;;:::o;22184:233::-;22223:3;22246:24;22264:5;22246:24;:::i;:::-;22237:33;;22292:66;22285:5;22282:77;22279:103;;22362:18;;:::i;:::-;22279:103;22409:1;22402:5;22398:13;22391:20;;22184:233;;;:::o;22423:180::-;22471:77;22468:1;22461:88;22568:4;22565:1;22558:15;22592:4;22589:1;22582:15;22609:185;22649:1;22666:20;22684:1;22666:20;:::i;:::-;22661:25;;22700:20;22718:1;22700:20;:::i;:::-;22695:25;;22739:1;22729:35;;22744:18;;:::i;:::-;22729:35;22786:1;22783;22779:9;22774:14;;22609:185;;;;:::o;22800:176::-;22832:1;22849:20;22867:1;22849:20;:::i;:::-;22844:25;;22883:20;22901:1;22883:20;:::i;:::-;22878:25;;22922:1;22912:35;;22927:18;;:::i;:::-;22912:35;22968:1;22965;22961:9;22956:14;;22800:176;;;;:::o;22982:180::-;23030:77;23027:1;23020:88;23127:4;23124:1;23117:15;23151:4;23148:1;23141:15;23168:98;23219:6;23253:5;23247:12;23237:22;;23168:98;;;:::o;23272:168::-;23355:11;23389:6;23384:3;23377:19;23429:4;23424:3;23420:14;23405:29;;23272:168;;;;:::o;23446:373::-;23532:3;23560:38;23592:5;23560:38;:::i;:::-;23614:70;23677:6;23672:3;23614:70;:::i;:::-;23607:77;;23693:65;23751:6;23746:3;23739:4;23732:5;23728:16;23693:65;:::i;:::-;23783:29;23805:6;23783:29;:::i;:::-;23778:3;23774:39;23767:46;;23536:283;23446:373;;;;:::o;23825:640::-;24020:4;24058:3;24047:9;24043:19;24035:27;;24072:71;24140:1;24129:9;24125:17;24116:6;24072:71;:::i;:::-;24153:72;24221:2;24210:9;24206:18;24197:6;24153:72;:::i;:::-;24235;24303:2;24292:9;24288:18;24279:6;24235:72;:::i;:::-;24354:9;24348:4;24344:20;24339:2;24328:9;24324:18;24317:48;24382:76;24453:4;24444:6;24382:76;:::i;:::-;24374:84;;23825:640;;;;;;;:::o;24471:141::-;24527:5;24558:6;24552:13;24543:22;;24574:32;24600:5;24574:32;:::i;:::-;24471:141;;;;:::o;24618:349::-;24687:6;24736:2;24724:9;24715:7;24711:23;24707:32;24704:119;;;24742:79;;:::i;:::-;24704:119;24862:1;24887:63;24942:7;24933:6;24922:9;24918:22;24887:63;:::i;:::-;24877:73;;24833:127;24618:349;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MAX_APES()":"bb8a16bd","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256)":"40c10f19","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_APES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"\\u5982\\u679c\\u5408\\u7ea6\\u5b9e\\u73b0\\u4e86\\u67e5\\u8be2\\u7684`interfaceId`\\uff0c\\u5219\\u8fd4\\u56detrue \\u89c4\\u5219\\u8be6\\u89c1\\uff1ahttps://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"\\u5b9e\\u73b0IERC721\\u7684safeTransferFrom\\uff0c\\u5b89\\u5168\\u8f6c\\u8d26\\uff0c\\u8c03\\u7528\\u4e86_safeTransfer\\u51fd\\u6570\\u3002\"},\"tokenURI(uint256)\":{\"notice\":\"\\u5b9e\\u73b0IERC721Metadata\\u7684tokenURI\\u51fd\\u6570\\uff0c\\u67e5\\u8be2metadata\\u3002\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/34_ERC721/WTFApe.sol\":\"WTFApe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":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/contracts/\"]},\"sources\":{\"src/34_ERC721/ERC721.sol\":{\"keccak256\":\"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64\",\"dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR\"]},\"src/34_ERC721/IERC165.sol\":{\"keccak256\":\"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102\",\"dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw\"]},\"src/34_ERC721/IERC721.sol\":{\"keccak256\":\"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b\",\"dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2\"]},\"src/34_ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6\",\"dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP\"]},\"src/34_ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61\",\"dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad\"]},\"src/34_ERC721/String.sol\":{\"keccak256\":\"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4\",\"dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE\"]},\"src/34_ERC721/WTFApe.sol\":{\"keccak256\":\"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f\",\"dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_APES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"如果合约实现了查询的`interfaceId`,则返回true 规则详见:https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]"}},"version":1},"userdoc":{"kind":"user","methods":{"safeTransferFrom(address,address,uint256,bytes)":{"notice":"实现IERC721的safeTransferFrom,安全转账,调用了_safeTransfer函数。"},"tokenURI(uint256)":{"notice":"实现IERC721Metadata的tokenURI函数,查询metadata。"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","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/contracts/"],"optimizer":{"enabled":false,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/34_ERC721/WTFApe.sol":"WTFApe"},"evmVersion":"prague","libraries":{}},"sources":{"src/34_ERC721/ERC721.sol":{"keccak256":"0x248d59f79042c28f2617451aff1e44e7270fa5f45d7da835b1b08a0b0705c3d7","urls":["bzz-raw://40fd666d1db27e717f9bbe1381b945e2643ea25de3f96bd0f12123480bb01e64","dweb:/ipfs/QmVPpFHfB4NBkpkc3AQb4XwmvcvXuYuZDUj4CHxgFau3NR"],"license":"MIT"},"src/34_ERC721/IERC165.sol":{"keccak256":"0x0f5ca5795e32d799a20314e301141685428916187124f79ecba42c3bc9eca3d4","urls":["bzz-raw://231effbf6abbe141341b8b05b3b55a132ed0f0d61a9917d0e833b22b72a12102","dweb:/ipfs/QmdfmxZiKtBpshdbQQ1Xngrufi4Uy6fAdgZ2PrvTDCvLiw"],"license":"MIT"},"src/34_ERC721/IERC721.sol":{"keccak256":"0x46a50bdaee8c714d911413719a91c1322ea595e5e9f3497d91a88d37a4c07022","urls":["bzz-raw://277f42d0d4a680dd821df711c157d7350d282041d6cc78a0d886d63d11f6605b","dweb:/ipfs/QmYciALDPib9aFXdKGmnZZJoAx8cUBRYj7h3Q1xk5P1bb2"],"license":"MIT"},"src/34_ERC721/IERC721Metadata.sol":{"keccak256":"0x84a7803643c7106d39bd20f4dbbd7bb844f19b65e5e18059825990fd05d41de9","urls":["bzz-raw://a9996050095753a7f234a9d7d6c85774cd7846cfa1184f5440fb515c34bfcbb6","dweb:/ipfs/QmYXiW7pR8eCTZGNdcfjoX4NVe6J8gbGHP2M3vAAFVX2oP"],"license":"MIT"},"src/34_ERC721/IERC721Receiver.sol":{"keccak256":"0xf3abeb0571450ae0c1493466bdfe7a2363ad469e74d903bbab5274c01a05f8bb","urls":["bzz-raw://caacd05ab09ef1902740b09a6853dfee009cc673b67c27b050d1e4432f3e9f61","dweb:/ipfs/QmYM6MHWHijxxTFREQ4ExBhozVs9FWS3tRFwe9bLjnB4Ad"],"license":"MIT"},"src/34_ERC721/String.sol":{"keccak256":"0x8bf376c4707eafe2a87123335368f7fdd3d9212b263a3fbf32476fbf5bdf089a","urls":["bzz-raw://8311dc956bb7c891670ac8561ca30681ab0d9d9047fd496f2aee7fa6b491d0d4","dweb:/ipfs/QmQztBUttYeHmUjFf8Pzh9ZbbfNkTemHjTiFUbCFMhU2VE"],"license":"MIT"},"src/34_ERC721/WTFApe.sol":{"keccak256":"0x0766ab518c94447b01eb9429d95d279f71514833a4915cdd5c8518a05e20b175","urls":["bzz-raw://6499f43823d053ad134a87901449c108deedab4bc3638e50fd6cc3a3b785664f","dweb:/ipfs/QmcCFBzs7KNi5tRejgBh8St6bjTauTsqKF3fJZejBScG2i"],"license":"MIT"}},"version":1},"id":84} \ No newline at end of file diff --git a/out/build-info/6b329c4b3cc64aea.json b/out/build-info/6b329c4b3cc64aea.json new file mode 100644 index 00000000..70ff386d --- /dev/null +++ b/out/build-info/6b329c4b3cc64aea.json @@ -0,0 +1 @@ +{"id":"6b329c4b3cc64aea","source_id_to_path":{"0":"lib/forge-std/src/Base.sol","1":"lib/forge-std/src/StdAssertions.sol","2":"lib/forge-std/src/StdChains.sol","3":"lib/forge-std/src/StdCheats.sol","4":"lib/forge-std/src/StdConstants.sol","5":"lib/forge-std/src/StdError.sol","6":"lib/forge-std/src/StdInvariant.sol","7":"lib/forge-std/src/StdJson.sol","8":"lib/forge-std/src/StdMath.sol","9":"lib/forge-std/src/StdStorage.sol","10":"lib/forge-std/src/StdStyle.sol","11":"lib/forge-std/src/StdToml.sol","12":"lib/forge-std/src/StdUtils.sol","13":"lib/forge-std/src/Test.sol","14":"lib/forge-std/src/Vm.sol","15":"lib/forge-std/src/console.sol","16":"lib/forge-std/src/console2.sol","17":"lib/forge-std/src/interfaces/IMulticall3.sol","18":"lib/forge-std/src/safeconsole.sol","19":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","20":"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol","21":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","22":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","23":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","24":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","25":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","26":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","27":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","28":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","29":"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol","30":"lib/openzeppelin-contracts/contracts/utils/Bytes.sol","31":"lib/openzeppelin-contracts/contracts/utils/Context.sol","32":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","33":"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol","34":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","35":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","36":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","37":"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol","38":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","39":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","40":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","41":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","42":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","43":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","44":"src/01_HelloWeb3/HelloWeb3.sol","45":"src/02_ValueTypes/ValueTypes.sol","46":"src/03_Function/Function.sol","47":"src/04_Return/Return.sol","48":"src/05_DataStorage/DataStorage.sol","49":"src/06_ArrayAndStruct/ArrayAndStruct.sol","50":"src/07_Mapping/Mapping.sol","51":"src/08_InitialValue/InitialValue.sol","52":"src/09_Constant/Constant.sol","53":"src/11_Modifier/Owner.sol","54":"src/12_Event/Event.sol","55":"src/14_Interface/AbstractDemo.sol","56":"src/14_Interface/Interface.sol","57":"src/14_Interface/InterfaceDemo.sol","58":"src/15_Errors/Error.sol","59":"src/16_Overloading/Overloading.sol","60":"src/17_Library/Library.sol","61":"src/19_Fallback/Fallback.sol","62":"src/20_SendETH/SendETH.sol","63":"src/21_CallContract/CallContract.sol","64":"src/22_Call/Call.sol","65":"src/23_Delegatecall/Delegatecall.sol","66":"src/26_DeleteContract/DeleteContract.sol","67":"src/26_DeleteContract/DeployContract.sol","68":"src/27_ABIEncode/ABIEncode.sol","69":"src/28_Hash/Hash.sol","70":"src/29_Selector/Selector.sol","71":"src/30_TryCatch/TryCatch.sol","72":"src/31_ERC20/ERC20.sol","73":"src/31_ERC20/IERC20.sol","74":"src/32_Faucet/Faucet.sol","75":"src/32_Faucet/IERC20.sol","76":"src/33_Airdrop/Airdrop.sol","77":"src/33_Airdrop/IERC20.sol","78":"src/34_ERC721/ERC721.sol","79":"src/34_ERC721/IERC165.sol","80":"src/34_ERC721/IERC721.sol","81":"src/34_ERC721/IERC721Metadata.sol","82":"src/34_ERC721/IERC721Receiver.sol","83":"src/34_ERC721/String.sol","84":"src/34_ERC721/WTFApe.sol","85":"src/35_DutchAuction/DutchAuction.sol","86":"src/36_MerkleTree/MerkleTree.sol","87":"src/37_Signature/Signature.sol","88":"src/38_NFTSwap/NFTSwap.sol","89":"src/40_ERC1155/BAYC1155.sol","90":"src/40_ERC1155/ERC1155.sol","91":"src/40_ERC1155/IERC1155.sol","92":"src/40_ERC1155/IERC1155MetadataURI.sol","93":"src/40_ERC1155/IERC1155Receiver.sol","94":"src/41_WETH/WETH.sol","95":"src/42_PaymentSplit/PaymentSplit.sol","96":"src/43_TokenVesting/TokenVesting.sol","97":"src/44_TokenLocker/TokenLocker.sol","98":"src/45_Timelock/Timelock.sol","99":"src/46_ProxyContract/ProxyContract.sol","100":"src/47_Upgrade/Upgrade.sol","101":"src/48_TransparentProxy/TransparentProxy.sol","102":"src/49_UUPS/UUPS.sol","103":"src/50_MultisigWallet/MultisigWallet.sol","104":"src/51_ERC4626/ERC20.sol","105":"src/51_ERC4626/ERC4626.sol","106":"src/51_ERC4626/IERC4626.sol","107":"src/52_EIP712/EIP712Storage.sol","108":"src/53_ERC20Permit/ERC20Permit.sol","109":"src/53_ERC20Permit/IERC20Permit.sol","110":"src/54_CrossChainBridge/CrosschainERC20.sol","111":"src/55_MultiCall/MCERC20.sol","112":"src/55_MultiCall/MultiCall.sol","113":"src/56_DEX/SimpleSwap.sol","114":"src/57_Flashloan/src/AaveV3Flashloan.sol","115":"src/57_Flashloan/src/Lib.sol","116":"src/57_Flashloan/src/UniswapV2Flashloan.sol","117":"src/57_Flashloan/src/UniswapV3Flashloan.sol","118":"src/57_Flashloan/test/AaveV3Flashloan.t.sol","119":"src/57_Flashloan/test/UniswapV2Flashloan.t.sol","120":"src/57_Flashloan/test/UniswapV3Flashloan.t.sol","121":"src/S01_ReentrancyAttack/ReentrancyAttack.sol","122":"src/S02_SelectorClash/SelectorClash.sol","123":"src/S03_Centralization/Centralization.sol","124":"src/S04_AccessControlExploit/AccessControlExploit.sol","125":"src/S05_Overflow/Overflow.sol","126":"src/S06_SignatureReplay/SingatureReplay.sol","127":"src/S07_BadRandomness/BadRandomness.sol","128":"src/S08_ContractCheck/ContractCheck.sol","129":"src/S09_DoS/DoS.sol","130":"src/S10_Honeypot/Honeypot.sol","131":"src/S11_Frontrun/Frontrun.sol","132":"src/S12_TxOrigin/PhishingWithTxOrigin.sol","133":"src/S13_UncheckedCall/UncheckedCall.sol","134":"src/S14_TimeManipulation/src/TimeManipulation.sol","135":"src/S14_TimeManipulation/test/TimeManipulation.t.sol","136":"src/S15_OracleManipulation/src/Oracle.sol","137":"src/S15_OracleManipulation/test/Oracle.t.sol","138":"src/S16_NFTReentrancy/NFTReentrancy.sol"},"language":"Solidity"} \ No newline at end of file